1. 输入cmd进入控制台窗口
2. 进入cxf目录:D:\software\apache-cxf-2.2.12\bin>
3. 使用wsdl2java的命令行工具,生成java代码
D:\software\apache-cxf-2.2.12\bin>wsdl2java -d d:/src -all http://sms.dxyxt.com/sms-service-front/services/smsService?wsdl
-p可以指定生成的package
-d指定生成代码的目录
-client生成客户端测试web service代码
-server生成服务端启动web service代码
如果出现错误:两个类具有相同的 XML 类型名称 "{}computePSRStatisticByDept"。请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称
可以发现我的className一直引用的是我原来的包名,而我现在的包名是com.tyky.edu.infrastructure.sms.yxt.ws
修改方法,改接口显然不实际,所以重新生成接口,修改命令为:
D:\software\apache-cxf-2.2.12\bin>wsdl2java -pcom.tyky.edu.infrastructure.sms.yxt.ws -d d:/src -all http://sms.dxyxt.com/sms-service-front/services/smsService?wsdl
java调用代码:
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(SmsService.class);
factory.setAddress("http://sms.dxyxt.com/sms-service-front/services/smsService?wsdl");
SmsService webService = (SmsService) factory.create();
webService.send(account, password, receiver, extNumber, content, schoolNo, ecpNo, type, property);