[ 
https://issues.apache.org/jira/browse/CXF-3508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13033489#comment-13033489
 ] 

Willem Jiang commented on CXF-3508:
-----------------------------------

Hi Monish,

I did some tests and found out if you don't use the spring configure to inject 
the transport factory which is CXF 2.4.0 wants to achieve , CXF can load the 
load  local transport factory rightly. The SoapTransportFactory will be used by 
default as the transportId will be set to 
"http://schemas.xmlsoap.org/soap/http"; by default.
But if you configure the HTTPTransportFactory and LocalTransportFactory as 
below the SoapTransportFactory will not be load, and the HTTPTransportFactory 
will mass up the transport factory loading of the "local://xxx".

Willem

> Local Transport Factory and HTTP Transport Factory not compatible in 
> cxf-2.4.0 was working  in cxf-2.3.3
> --------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-3508
>                 URL: https://issues.apache.org/jira/browse/CXF-3508
>             Project: CXF
>          Issue Type: Bug
>          Components: Integration, JAX-WS Runtime
>    Affects Versions: 2.4
>         Environment: any JVM based OS that can run cxf stack
>            Reporter: Monish Unni
>              Labels: test
>
> with the following definition if i try to use the "local://" protocol , i get 
> the  error as stated below ( the spring definition ) 
>    <import resource="classpath:META-INF/cxf/cxf.xml" />
>    <bean class="org.apache.cxf.transport.http.HTTPTransportFactory" 
> lazy-init="true">
>         <property name="transportIds">
>             <list>
>                 <value>http://cxf.apache.org/bindings/xformat</value>
>                 <value>http://schemas.xmlsoap.org/soap/http</value>
>                 <value>http://schemas.xmlsoap.org/wsdl/soap/http</value>
>             </list>
>         </property>
>     </bean>
>     <bean class="org.apache.cxf.transport.local.LocalTransportFactory" 
> lazy-init="true">
>         <property name="transportIds">
>             <list>
>                 <value>http://cxf.apache.org/transports/local</value>
>             </list>
>         </property>
>     </bean>
> WARN  org.apache.cxf.phase.PhaseInterceptorChain  - Interceptor for 
> {http://web.state.org/}Echo#{http://web.state.org/}echo has thrown exception, 
> unwinding now
> org.apache.cxf.interceptor.Fault: Could not send Message.
>   at 
> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:48)
>     at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
>     at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:484)
>     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:414)
>     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:317)
>     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:269)
>     at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
>     at $Proxy39.echo(Unknown Source)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at 
> org.state.gov.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
>     at 
> org.state.gov.cxf.jaxws.JaxwsClientProxyTest.testJaxWsProxy(JaxwsClientProxyTest.java:49)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>     at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>     at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>     at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>     at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>     at 
> org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
>     at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>     at 
> org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
>     at 
> org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
>     at 
> org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:240)
>     at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>     at 
> org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
>     at 
> org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
>     at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>     at 
> org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180)
>     at 
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>     at 
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>     at 
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>     at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at 
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
>     at 
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
> Caused by: java.net.MalformedURLException: unknown protocol: local
>     at java.net.URL.<init>(URL.java:574)
>     at java.net.URL.<init>(URL.java:464)
>     at java.net.URL.<init>(URL.java:413)
>     at 
> org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:655)
>     at org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:455)
>     at 
> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
>     ... 48 more

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to