一、自定义webservice类的服务端要在类上注解@WebService
如果没有带上@WebService,发布出来的wsdl文件是不完整的格式,客户端通过命令行生成的代码会缺少很多东西(比如关于方法的类)
@WebService
public class HelloWS {
public String sayHello(String name) {
System.out.println("执行了服务端");
return "Hello, " + name;
}
}
二、发布时使用了错的工厂类对象
JaxWsServiceFactoryBean 不是这个类,而是JaxWsServerFactoryBean
三、cxf命令配置问题
wsdl2java命令配置到PATH,但是还是执行不了。
原因:cxf的(包括wsdl2java)命令的运行依赖JDK环境,所以默认查找JAVA_HOME环境寻找JDK
解决方法:配置多一个JAVA_HOME环境变量,但是JAVA_HOME必须配置对!
JAVA_HOME=
C:\ProgramFiles\Java\jdk1.7.0_79
J
AVA_HOME=C:\Program Files\Java\jdk1.7.0_79\bin 这种错误的
四、建立项目的问题
独立使用CXF的项目,只能运行在java项目上的。
如果运行在tomcat服务器上面,不能使用独立的CXF的jar包
解决方法:spring最小包+下列cxf包
五、利用wsdl2java命令生成客户端代码
wsdl2java命令的参数:
-d 生成的代码所在目录,不指定则为当前目录(一般直接在项目的src路径下,然后打开命令行窗口)
-p 生成的代码所在包
-h 查看帮助
例如:wsdl2java -p 包路径 http://localhost:9080/cxf/hello?wsdl