1 Axis2 Service(aar文件)
1.1 创建工程
打开Developer Studio Dashboard,点击 Axis2 Service Project,点击next,只至出现如下界面,点击finish。
1.2 添加方法
在Service类中添加一个方法,如下图所示。
1.3 产生WSDL文件
右击工程,选择Generate WSDL,指定位置和名称,点击OK。
1.4 打包为aar文件
右击工程名,选择Export Project as Deployable Archive。结果如下图所示,点击finish,桌面生成Axis2ServiceTest_1.0.0.aar文件。
1.5 部署到WSO2 Application Server
打开WSO2 Application Server,选择services->Add->AAR Service,选择Axis2ServiceTest_1.0.0.aar文件,上传。
在services列表中可以看到部署的服务。
点击try this Service,结果如下。
2 CXF(war文件JAX-WS)
https://docs.wso2.com/display/AS510/JAX-WS+and+JAX-RS+Support
http://wso2.com/library/articles/2012/10/develop-cxf-based-jaxws-wso2-developer-studio/
2.1 创建工程
新建JAX-WS Service Project 工程。打开Developer Studio Dashboard,点击 JAX-WS Service Project ,点击next,只至出现如下界面,点击finish。填写工程名和类名。
2.2 创建Java服务类
右击刚才创建的工程,选择New -> JAX-WS Service Class ,如下图所示。
2.3 添加方法
默认类中已经存在一个Hello方法,可以根据需要添加方法。最简单可用的webService定义如下:
Wsdl与接口中定义的ServiceName一致。
但若将接口改为如下,删除action=”hello”,则报错误。<faultstring>The endpoint reference (EPR) for the Operation not found is /services/a4.a4HttpSoap11Endpoint and the WSA Action = . If this EPR was previously reachable, please contact the server administrator.</faultstring>
2.4 打包为war文件
右击工程名,选择“Export Project as Deployable Archive”。结果如下图所示,点击finish,桌面生成JAXWSTest_1.0.0.war文件。
2.5 部署到WSO2 Application Server
1)打开WSO2 Application Server,选择services->Add->JAX-WS/JAX-RSS,选择JAXWSTest_1.0.0.war文件,上传。
2)单击列表,在services列表中可以看到部署的服务。
3)单击find services
4)单击wsdl,可以查看服务部署成功
5)单击服务名称
6)单击尝试调用服务
3 可能出现的错误
No binding operation info while invoking unknown method with params unknown
CXF方法在创建完服务,定义代理服务时,可能报错:org.apache.cxf.interceptor.Fault: No binding operation info while invoking unknown method with param
如果soap方法与WSDL不匹配发生这个错误。Soap消息不能匹配到服务中一个方法
3.1 解决方法
在接口中定义方法的操作,而不是在实现类中定义。测试可用。