• 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访问该地址

    知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得
  • 相关阅读:
    【笔记】rocketMQ了解
    【笔记】正则表达式·记②贪婪匹配、非贪婪匹配、独占模式和量词
    source 1.5 中不支持 diamond 运算符(中文版idea)
    【笔记】Linux基础指令
    maven BUILD FAILURE
    SELECT...FROM 表 a,( SELECT...FROM...WHERE...) tc...的一些注意
    dbeaver导出结果集中乱码
    【笔记】正则表达式·记①元字符
    maven报错:501 HTTPS Required
    【笔记】正则表达式·记③分组与引用
  • 原文地址:https://www.cnblogs.com/taoHongFei/p/8953390.html
Copyright © 2020-2023  润新知