cxf-webservice客户端与服务端的注意事项及常见异常
2017-10-25 17:18
597 查看
1.创建webservice
如何生成服务端:1、使用soapui,通过wsdl文件生成服务端。
如何生成客户端:
1、使用soapui,通过wsdl文件生成客户端;
2、先发布服务端,通过apache-cxf的wsdl2java命令,生成客户端;
(如果条件允许,建议使用第二种)。
具体如何创建,请查看我的其他博客。
2.常见错误
1、警告: Interceptor for {http://impl.webservice.iTask.inspur.com/}SchedulerServiceC has thrown exception, unwinding noworg.apache.cxf.interceptor.Fault: No binding operation info while invoking unknown method with params unknown.
场景:报这个错时,说明你的服务端其实已经发布成功了。
目前我能想到的,出现这种错误的唯一情况只有手动在浏览器输入服务端地址的时候。
原因:输入的地址时候缺少?wsdl
解决:完整地址如:http://127.0.0.1:8080/task?wsdl
2、Exception in thread "main" javax.xml.ws.WebServiceException: javax.xml.ws.WebServiceException:Could not load Webservice SEI
场景:出现这种错误说明服务端发布失败。
原因:大意就是不能加载服务,简单的来说就是实现类找不到借口
解决:服务端一般会提供一个接口,例如叫SchedulerService,该接口一定会有一个实现类,例如叫SchedulerServicePortImpl。在该实现类中,会有一个@WebService的注解,其中的endpointInterface属性,必须指向其接口SchedulerService,例如endpointInterface = "com.lvxiaobu.webservice.service.SchedulerService",注意了,一定是指向了类,而不是仅仅指向了该接口所在的包,即应该加上该接口名称
3、Exception in thread "main" javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException:Could not find portType named
{http://tianyuan.com/}SchedulerService
场景:这种错误一般出现在使用客户端访问服务端的时候,且此时,服务端已成功发布。
原因:客户端的接口与服务端的接口没有关联起来,所以找不到。
解决:
1、在客户端中会有一个接口,例如SchedulerService,在该类上会有一个@WebService注解,其中的targetNameSpace属性和name属性,都必须和服务端对应接口类中的值一样;
2、在客户端提供的接口实现类中,会有QName对象的两个实例,其中的namesapceURI(http:// ************/)是有规定的。
3.2.1、如果服务端也是你启动的,那么这个namesapceURI与服务端接口实现类上的namespace的内容一致。
3.2.2、如果服务端不在你这,那么可以通过网页访问服务端,然后找到根节点wsdl:definitions下末尾的targetNameSpace,两者内容应该一致。
4、还有一种异常,是因为在调用服务端方法是,传入的参数是null,这种我就不说了。
最后,总而言之,webService的服务端与客户端的联系,一般要注意这几点:
1、通过输入地址访问服务端的时候,需要在地址末尾添加?wsdl;
2、服务端中,实现类的endpointInterface属性是否指向了其接口类;
3、服务端和客户端对应接口中,@WebService注解的targetNameSpace和name属性值应该一致,保证服务端和客户端两端的接口产生联系。
4、注意客户端实现类中,QName的namesapceURI 与 浏览器打开的服务端中的definitions根标签中的targetNameSpace一致。
疑问:
以上的3和4,好像只要满足一条,就不会异常4,比如,如果QName的namesapceURI与对应的targetNameSpace一致,那么客户端和服务端的targetNameSpace就不用一致了。还不知道为什么,如果有大神的话,希望可以留言告诉我。
如果有书写错误的地方,或者是有问题的地方请及时评论或者是私信,以免误导个别萌新。
虽然,我也是个萌新。
你好,我叫吕小布。
相关文章推荐
- C#客户端调用java CXF WebService注意事项
- 利用CXF发布restful WebService的注意事项(客户端)
- webservice接口常见问题1:客户端使用SOAP方式调用CXF服务时异常
- 使用CXF开发WebService程序的总结(五):基于Map数据类型处理的的客户端和服务端代码的编写
- .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- 关于cxf 连.net 的webservice生成客户端异常( undefined element declaration 's:schema')
- .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- cpc(国际专利标准)离线客户端文档制作公式失真(字体变粗变黑)问题解决方案以及常见注意事项
- 生成webservice客户端出现的常见异常
- CXF创建webservice客户端和服务端
- Cannot create a secure XMLInputFactory cxf写的服务端 客户端调用出异常
- CXF 开发RESTful WebService服务(Spring+JPA服务端,JAXRS2.0+WebClient客户端)
- Web Service (012---webservice使用CXF写基于Spring的WebService[服务端+客户端])
- webservice 完整 实现方式 服务端 客户端 (cxf)
- .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- CXF生成webservice服务端,httpclient客户端调用webservice服务端
- REST CXF Webservice 客户端调用服务端异常
- CXF创建webservice客户端和服务端
- net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常