web service----查看股票走势

接前面两个记录

项目需要用到web service相关技术,调研过程中的实例学习记录。

第一步:需要有股票服务的网址。。。网上自己百度

http://www.webxml.com.cn/webservices/ChinaStockSmallImageWS.asmx

第二步:在刚才的网址后面加?wsdl

第三部:找到资源后,开始建立项目

new 一个java项目,命名****_client,随意就行

然后在src下面新建一个包   stock

 然后在命令窗口里面执行如下

这条命令可以生成一个webservice 客户端,在解析wsdl的过程中可能有warning,只要不出现错误就可以不用管它

编译代码结束后,查看你刚刚建立的那个stock包下面,生成了很多文件

 

 之后的工作就是调用这些文件来实现自己的需求功能

package stock;

import java.util.List;

public class GetStockInfoTest {
    /**
     * 测试
     * */
    public static void main(String[] args){
        //调用股票的服务
        ChinaStockWebService service=new ChinaStockWebService();
        //创建ChinaStockWebServiceSoap对象
        ChinaStockWebServiceSoap serviceSoap=service.getChinaStockWebServiceSoap();
        //获取股票数据
        ArrayOfString array=serviceSoap.getStockInfoByCode("sz000001");
        //变量股票信息
        List<String> stockList=array.getString();
        for(String str:stockList)
        {
            System.out.println(str);
            System.out.println("********************************");

        }


    }
}

 运行结果如下:

为了更好的看看生成的那些文件的功能,再测试一下调用股票的走势图的信息

定义一个服务的接口StockService

package stock;

/**
 * @author thf
 * 自定义服务接口
 * */
public interface StockService {
    //显示股票的走势图
    public byte[] getStockByte(String stockCode);

}

定义实现服务接口的类

package stock;
/**
 * @author thf
 * 服务接口实现类
 * */
public class StockServiceImp implements StockService {

    @Override
    public byte[] getStockByte(String stockCode) {
        //调用股票的服务
        ChinaStockWebService service=new ChinaStockWebService();
        //创建ChinaStockWebServiceSoap对象
        ChinaStockWebServiceSoap serviceSoap=service.getChinaStockWebServiceSoap();

        return serviceSoap.getStockImageByteByCode(stockCode);
    }
}

控制层:

package stock;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;

@WebServlet(name = "GetStockImageServlet ")
public class GetStockImageServlet extends HttpServlet {
    private static final long serialVersionUID=1L;
    //new 一个服务接口实现类的对象ss
    private StockServiceImp ss=new StockServiceImp();

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    this.doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        byte[] imgeByte=ss.getStockByte("sh601169");
        response.setHeader("content-type","image/jpeg");
        OutputStream os=response.getOutputStream();
        os.write(imgeByte);
    }
}

这里要映射servlet的地址哈,然后启动tomcat访问该地址

知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得
原文地址:https://www.cnblogs.com/taoHongFei/p/8953390.html