当前位置: 首页 > 工具软件 > Conduit > 使用案例 >

cxf调用报错Could not find conduit initiator for address:

易祖鹤
2023-12-01

依赖

<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>

 类似资料: