On Fri, Nov 12, 2010 at 10:43 AM, Willem Jiang <[email protected]>wrote:

>
>
> The SoapTransportFactory will try to locat the real TransportFactory by
> checking the address.
> You can find the code from SoapTransportFactory.getDestination() method.
>
> Can you just set the break point on the JettyHTTPTransportFactory?


Here is more information about this. In SoapTransportFactory#getDestination

* bi [BindingInfo http://schemas.xmlsoap.org/wsdl/soap/]
* address = http://localhost:7171/MathWebService
* transId= http://schemas.xmlsoap.org/soap/http

Which leads to a call on DestinationFactoryManagerImpl#getDestinationFactory
with the "http://cxf.apache.org/transports/http"; namespace. The problem is
that these are my destination factories:


   - [0] = {java.util.concurrent.concurrenthashmap$writethroughen...@3059}
   http://www.w3.org/2003/05/soap/bindings/HTTP/ ->
   org.apache.cxf.binding.soap.soaptransportfact...@12284af
   - [1] = {java.util.concurrent.concurrenthashmap$writethroughen...@3067}
   http://schemas.xmlsoap.org/soap/http ->
   org.apache.cxf.binding.soap.soaptransportfact...@12284af
   - [2] = {java.util.concurrent.concurrenthashmap$writethroughen...@3075}
   http://schemas.xmlsoap.org/wsdl/soap12/ ->
   org.apache.cxf.binding.soap.soaptransportfact...@12284af
   - [3] = {java.util.concurrent.concurrenthashmap$writethroughen...@3083}
   http://www.w3.org/2010/soapjms/ ->
   org.apache.cxf.binding.soap.soaptransportfact...@12284af
   - [4] = {java.util.concurrent.concurrenthashmap$writethroughen...@3091}
   http://schemas.xmlsoap.org/wsdl/http ->
   org.apache.cxf.transport.servlet.servlettransportfact...@b20090
   - [5] = {java.util.concurrent.concurrenthashmap$writethroughen...@3100}
   http://schemas.xmlsoap.org/wsdl/soap/http ->
   org.apache.cxf.binding.soap.soaptransportfact...@12284af
   - [6] = {java.util.concurrent.concurrenthashmap$writethroughen...@3108}
   http://cxf.apache.org/transports/http ->
   org.apache.cxf.transport.servlet.servlettransportfact...@b20090
   - [7] = {java.util.concurrent.concurrenthashmap$writethroughen...@3116}
   http://schemas.xmlsoap.org/soap/ ->
   org.apache.cxf.binding.soap.soaptransportfact...@12284af
   - [8] = {java.util.concurrent.concurrenthashmap$writethroughen...@3124}
   http://cxf.apache.org/transports/http/configuration ->
   org.apache.cxf.transport.servlet.servlettransportfact...@b20090
   - [9] = {java.util.concurrent.concurrenthashmap$writethroughen...@3132}
   http://schemas.xmlsoap.org/wsdl/http/ ->
   org.apache.cxf.transport.servlet.servlettransportfact...@b20090
   - [10] = {java.util.concurrent.concurrenthashmap$writethroughen...@3140}
   http://schemas.xmlsoap.org/soap/http/ ->
   org.apache.cxf.binding.soap.soaptransportfact...@12284af
   - [11] = {java.util.concurrent.concurrenthashmap$writethroughen...@3148}
   http://schemas.xmlsoap.org/wsdl/soap/ ->
   org.apache.cxf.binding.soap.soaptransportfact...@12284af

No Jetty in there and the returned factory is
obviously org.apache.cxf.transport.servlet.servlettransportfact...@b20090

I don't understand what is happening. I have the http-jetty jar in my
classpath and I also explicitely added the following in my spring config
file:
<import resource="classpath*:/META-INF/cxf/cxf-extension-http-jetty.xml"/>

Can we use wildcards for this thing? Maybe I am loading another
configuration file that registers the same transportId with another
protocol? The imports of my project on CXF are:

<import resource="classpath*:META-INF/cxf/cxf-servlet.xml"/>
<import resource="classpath*:META-INF/cxf/cxf.xml"/>
<import resource="classpath*:META-INF/cxf/cxf-extension-*.xml"/>

HTH,
S.

Reply via email to