黑马程序员技术交流社区

标题: 【济南中心】webservice 技术交流 [打印本页]

作者: 大山哥哥    时间: 2017-3-30 22:30
标题: 【济南中心】webservice 技术交流
                                                                   webservice 技术交流
       现在webservice技术比较多,像最开始的axis,cxf以及最近的hessian,dubbo等..都可以实现远程数据交互,今天我们重点介绍前两种:
        axis:
                1.环境方面:
                        首先需要一个axis环境,即一个axis的lib包就OK(下面有提供)
                2.代码方面:
                        2.1首先要有一个接口,代码如下:
                                package com.sumao.webservice.logistics.interfaces;

                                import javax.jws.WebMethod;
                                import javax.jws.WebParam;
                                import javax.jws.WebService;

                                @WebService
                                public interface SumaoLogisticsService {
                                        @WebMethod
                                        public String reciveCarriage(
                                                @WebParam(name = "arg0", targetNamespace = "")
                                                java.lang.String arg0
                                        );
                                        @WebMethod
                                        public String updateLogisticsState(
                                                @WebParam(name = "arg0", targetNamespace = "")
                                                java.lang.String arg0
                                        );
                                }
                                在接口上要添加@WebService注解
                                在方法上要添加@WebMethod注解
                                在参数上要添加@WebParam(name = "arg0", targetNamespace = ""),其中targetNamespace可以省略
                        2.2另外还要有一个main方法,可以根据接口生成wsdl文档,代码如下:
                                public static void main(String[] args) {
                                        JavaToWS.main(new String[]{"-o","D:\\deeSpService.wsdl","-wsdl","com.sumao.webservice.logistics.interfaces.SumaoLogisticsService"});
                                }
                                wsdl:WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,此处不做说明,想了解的可以单独去搜一下.
                                其中"-o","-wsdl"是固定写法
                                "com.sumao.webservice.logistics.interfaces.SumaoLogisticsService"根据那个接口来生成wsdl文档,接口的全限定名
                                "D:\\deeSpService.wsdl"代表生成的wsdl文档保存的路径
                        2.3根据wsdl文档生成客户端和服务的程序
                                2.3.1生成客户端代码
                                        新建一个wsdl2java_client.bat文件,里面存放如下内容:
                                        set Axis_lib=D:\lib
                                        set java_cmd=java -Djava.ext.dirs=%Axis_lib%
                                        %java_cmd% org.apache.axis.wsdl.WSDL2Java -p com.sumao.idm.provisioning.client -client D:\provisioningWSService.wsdl
                                2.3.1生成服务端代码
                                        新建一个wsdl2java_server.bat文件,里面存放如下内容:
                                        set Axis_lib=D:\lib
                                        set java_cmd=java -Djava.ext.dirs=%Axis_lib%
                                        %java_cmd% org.apache.axis.wsdl.WSDL2Java -p com.sumao.idm.provisioning.server -server D:\provisioningWSService.wsdl
                                以上两个bat文件只有两处不同
                                        一.生成的包的名称不同
                                        二.生成的方式不同一个是-client,一个是-server
        cxf:
                1.环境方面:下载apache cxf,安装并配置环境变量(这个比较简单可以自己去搜索一下如何配置)
                2.代码方面:
                        2.1首先要有一个接口,代码如上面axis
                        2.2另外还要有一个main方法,可以根据接口生成wsdl文档,代码如上面axis
                        2.3根据wsdl文档生成客户端和服务的程序
                                2.3.1生成客户端代码
                                        新建一个cxf_wsdl2java_client.bat文件,里面存放如下内容:
                                        set wsdl_path=D:\provisioningWSService.wsdl
                                        set serverCode_dir=D:\temp
                                        wsdl2java -p com.sumao.idm.provisioning.client -encoding utf-8 -d %serverCode_dir% -client %wsdl_path%
                                2.3.1生成服务端代码
                                        新建一个cxf_wsdl2java_server.bat文件,里面存放如下内容:
                                        set wsdl_path=D:\provisioningWSService.wsdl
                                        set serverCode_dir=D:\temp
                                        wsdl2java -p com.sumao.idm.provisioning -encoding utf-8 -d %serverCode_dir% -server %wsdl_path%
                        详细解释可以参考axis内容
        cxf和axis可以混用,可以使用cxf的客户端使用axis的服务的,反之也可以...,如有不足或错误之处欢迎补足指正.
       附件: webservices相关资料.zip (2.04 KB, 下载次数: 42)
               axis_lib.zip (7.77 MB, 下载次数: 51)






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2