![](/img/trans.png)
[英]CXF webservice client, how to handle response from a called webservice?
[英]How to create a CXF webservice client with dynamic endpoint?
我们有一个描述Web服务的中央WSDL文件。 我们使用CXF生成客户端代码,但此代码似乎绑定到1个端点。 如何创建使用WSDL的CXF客户端,但我可以在哪里指定端点? 是否有办法将端点更改为实现相同WSD的URL:?
如果other
服务实现了相同的WSDL,那么在创建MyClientService
对象时,可以将URL传递给新服务的WSDL权限,然后将它传递给构造函数。 大多数服务都会将其wsdl暴露在?wsdl上,因此使用它可能“正常工作”。
或者,您可以通过以下方式覆盖端点URL:
((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_URL, "http://my.service.url.com/...")
其中proxy
是MyClientService
对象。
在cxf 2.6.1中工作
Client client = ClientProxy.getClient(port);
client.getRequestContext().put(Message.ENDPOINT_ADDRESS, "http://some-valid-endpoint") ;
您可以使用JaxWsProxyFactoryBean动态调用服务
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(ChangeStudentDetails.class);
factory.setAddress("http://localhost:8081/CXFTutorial/ChangeStudent");
javax.xml.ws.WebServiceException:找不到Web方法XXXX的wsdl:binding操作信息。
在org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:125)
在com.sun.proxy。$ Proxy82.getUser(未知来源)
如果发生此错误,则将注释Webservice添加到已在服务端开发的客户端界面。
我遇到了这个问题,我已经使用CXF配置了Spring。 我已经开发了该服务并从客户端调用它。
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.