微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebService CXF

1:到  http://cxf.apache.org/download.html 去下载最新的 Apache CXF 包,下载好后解压到某个目录中,比如:d:/apache/cxf-2.1.4 中;

2:在控制台中进入 d:/apache/cxf-2.1.4/bin 目录,执行这个命令:

wsdl2java -p com.bao.ws -d d:/ws -verbose http://www.ayandy.com/Service.asmx?WSDL

wsdl2java 命令会生成一些封装的类和 SOAP 接口。

-p 参数是个包名,表示生成的类、接口放在什么包下面
-d 是个目录名,生成的包放在什么目录下
-verbose 是在生成代码时产生一些日志输出
最后一个是 WSDL 地址

3:生成好后把这些文件复制到 Eclipse 某个工程的相同包下面去。

4:到 CXF 的 lib 目录中把这些文件加载到 Eclipse 的 classpath 中去:

cxf-2.2.3.jar
geronimo-activation_1.1_spec-1.0.2.jar
geronimo-annotation_1.0_spec-1.1.1.jar
geronimo-jaxws_2.1_spec-1.0.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
geronimo-ws-Metadata_2.0_spec-1.1.2.jar
jaxb-api-2.1.jar
jaxb-impl-2.1.12.jar
saaj-api-1.3.jar
wsdl4j-1.6.2.jar
wstx-asl-3.2.8.jar
XmlSchema-1.4.5.jar

4:写个 Test 类测试一下:

Java code ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import  javax.xml.namespace.QName;
import  javax.xml.ws.Service;
import  javax.xml.ws.soap.soAPBinding;
 
public  class  WebServiceTest {
 
     private  static  final  QName SERVICE_NAME =  new  QName( "http://tempuri.org/" "ServiceSoap" );
     private  static  final  QName PORT_NAME =  new  QName( "http://tempuri.org/" "ServiceSoapPort" );
     
     public  static  void  main(String[] args) {
         Service service = Service.create(SERVICE_NAME);
         String endpointAddress =  "http://www.ayandy.com/Service.asmx" ;
         service.addPort(PORT_NAME, SOAPBinding.soAP11HTTP_BINDING, endpointAddress);
         ServiceSoap hw = service.getPort(ServiceSoap. class );
         arrayofstring as = hw.getWeatherbyCityName( "上海" , TheDayFlagEnum.TODAY);
         for (String str : as.getString()) {
             System.out.println(str);
         }
     }
}

(摘自:http://bbs.csdn.net/topics/320099094)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐