cxf调用报错Could not find conduit initiator for address:
2018-03-21 16:20
211 查看
依赖
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.2.2</version>
</dependency>
测试代码
@Test
public void test1() {
JaxWsProxyFactoryBean jaxWs = new JaxWsProxyFactoryBean();
jaxWs.setAddress("http://192.168.8.254:11090/artesia-ux-ws/services/ArtesiaLoginService");
jaxWs.setServiceClass(ArtesiaLoginService.class);
ArtesiaLoginService als = (ArtesiaLoginService) jaxWs.create();
LoginSession login = als.login("tsuper", "Passw0rd!");
System.out.println(login.getId().getIdString());
}
报错:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Could not find conduit initiator for address: http://192.168.8.254:11090/artesia-ux-ws/services/ArtesiaLoginService and transport: http://schemas.xmlsoap.org/soap/http at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:161)
at com.sun.proxy.$Proxy47.login(Unknown Source)
at com.zvn.test.hmc.WebServiceTest.main(WebServiceTest.java:16)
Caused by: java.lang.RuntimeException: Could not find conduit initiator for address: http://192.168.8.254:11090/artesia-ux-ws/services/ArtesiaLoginService and transport: http://schemas.xmlsoap.org/soap/http at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:228)
at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:233)
at org.apache.cxf.endpoint.AbstractConduitSelector.createConduit(AbstractConduitSelector.java:146)
at org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:108)
at org.apache.cxf.endpoint.UpfrontConduitSelector.prepare(UpfrontConduitSelector.java:63)
at org.apache.cxf.endpoint.ClientImpl.prepareConduitSelector(ClientImpl.java:870)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:528)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:442)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:343)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
... 2 more
接口地址没问题:所以问题是 transport: http://schemas.xmlsoap.org/soap/http
SOAP的传输协议是基于http协议的,需要相关依赖
报错解决方案:
添加依赖:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.2.2</version>
</dependency>
测试代码
@Test
public void test1() {
JaxWsProxyFactoryBean jaxWs = new JaxWsProxyFactoryBean();
jaxWs.setAddress("http://192.168.8.254:11090/artesia-ux-ws/services/ArtesiaLoginService");
jaxWs.setServiceClass(ArtesiaLoginService.class);
ArtesiaLoginService als = (ArtesiaLoginService) jaxWs.create();
LoginSession login = als.login("tsuper", "Passw0rd!");
System.out.println(login.getId().getIdString());
}
报错:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Could not find conduit initiator for address: http://192.168.8.254:11090/artesia-ux-ws/services/ArtesiaLoginService and transport: http://schemas.xmlsoap.org/soap/http at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:161)
at com.sun.proxy.$Proxy47.login(Unknown Source)
at com.zvn.test.hmc.WebServiceTest.main(WebServiceTest.java:16)
Caused by: java.lang.RuntimeException: Could not find conduit initiator for address: http://192.168.8.254:11090/artesia-ux-ws/services/ArtesiaLoginService and transport: http://schemas.xmlsoap.org/soap/http at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:228)
at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:233)
at org.apache.cxf.endpoint.AbstractConduitSelector.createConduit(AbstractConduitSelector.java:146)
at org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:108)
at org.apache.cxf.endpoint.UpfrontConduitSelector.prepare(UpfrontConduitSelector.java:63)
at org.apache.cxf.endpoint.ClientImpl.prepareConduitSelector(ClientImpl.java:870)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:528)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:442)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:343)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
... 2 more
接口地址没问题:所以问题是 transport: http://schemas.xmlsoap.org/soap/http
SOAP的传输协议是基于http协议的,需要相关依赖
报错解决方案:
添加依赖:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.2.2</version>
</dependency>
相关文章推荐
- cxf调用.net中的接口遇到的两个问题
- cxf调用webService时出错
- CXF客户端动态调用
- delphi调用cxf生成的webservice出错 message part name was not recognized.(does it exist in service wsdl?)
- CXF客户端动态调用--复杂类型参数传递
- cxf+spring发布webservice接口及接口的调用
- springboot整合cxf调用websrevice,带上用户名和密码验证。
- cxf开发webservice接口与调用
- cxf开发webservice接口与调用
- cxf与xfire互相调用,并且加验证机制
- CXF 发布WebService - 客户端调用
- CXF调用方式——使用wsdl2java(Windwos下)
- CXF之用Dispatch处理异步调用实例
- spring-cxf集成rest实现webservice以及调用过程
- cxf 调用webservice的方式
- 客户端axis调用cxf服务端webservice接口问题
- android调用web service(cxf)实例应用详解
- cxf-rs client 调用
- android调用web service(cxf)实例
- webservice发布服务:CXF及客户端调用