Dan and Steven,

It's probably my fault.  (actually, I'm pretty sure it IS my fault)

The cxf-rt-transport-http module doesn't register any transports on any 
namespaces by default.   It kind of avoids the whole "which jar is 
first" issue.     Thus, if you don't have the http-jetty jar, nothing is 
registered to handle the http cases.    

Also, the factory in the http module is abstract.   It couldn't be 
instantiated anyway.  

So, I'm not sure how to proceed.   We could create a new http-conduitonly 
module that does do the registration with a factory that cannot do 
destinations.  That would be quick and easy.  There would be the issue 
of what happens if both are available.  

We could make the factory in http non-abstract and have it register it, 
but then we have the issue of how does the jetty version override that.   
What happens if http is before http-jetty and vice versa.

The last option would be to make the "Destination" stuff in http 
plugable.  The jetty stuff just provides a HttpDestinationProvider or 
something into the http module.   Jetty wouldn't subclass the http 
factory or anything.   It just provides functionality into the existing 
http one.


Any thoughts?

Dan




On Friday 04 May 2007 12:20, Steven E. Harris wrote:
> "Steven E. Harris" <[EMAIL PROTECTED]> writes:
> > I just tested this again against the latest snapshots, and the Jetty
> > dependency is no longer required.
>
> Wait, I'm wrong. I had edited the wrong POM. My client still fails if
> I remove the cxf-rt-transports-http-jetty dependency. Here is my
> intended dependency set:
>
>     <dependency>
>       <groupId>org.apache.cxf</groupId>
>       <artifactId>cxf-rt-frontend-jaxws</artifactId>
>       <scope>runtime</scope>
>     </dependency>
>     <dependency>
>       <groupId>org.apache.cxf</groupId>
>       <artifactId>cxf-rt-transports-http</artifactId>
>       <scope>runtime</scope>
>     </dependency>
>     <dependency>
>       <groupId>org.apache.cxf</groupId>
>       <artifactId>cxf-rt-bindings-soap</artifactId>
>       <scope>runtime</scope>
>     </dependency>
>     <dependency>
>       <groupId>org.apache.cxf</groupId>
>       <artifactId>cxf-rt-ws-addr</artifactId>
>       <scope>runtime</scope>
>     </dependency>
>     <dependency>
>       <groupId>org.apache.cxf</groupId>
>       <artifactId>cxf-rt-ws-policy</artifactId>
>       <scope>runtime</scope>
>     </dependency>
>
> When I run the client with these dependencies, I see the following
> error:
>
> ,----
>
> | javax.xml.ws.WebServiceException: org.apache.cxf.interceptor.Fault:
> | No conduit initiator was found for the namepsace
> | http://schemas.xmlsoap.org/soap/http. at
> | org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:1
> |42) at $Proxy38.myService(Unknown Source)
> |     at my.service.CXFClient.main(CXFClient.java:72)
> |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> |     at
> | sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl
> |.java:39) at
> | sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce
> |ssorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)
> |     at
> | com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
> | Caused by: org.apache.cxf.interceptor.Fault: No conduit initiator
> | was found for the namepsace http://schemas.xmlsoap.org/soap/http. at
> | org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(A
> |bstractConduitSelector.java:89) at
> | org.apache.cxf.endpoint.UpfrontConduitSelector.prepare(UpfrontCondui
> |tSelector.java:62) at
> | org.apache.cxf.endpoint.ClientImpl.prepareConduitSelector(ClientImpl
> |.java:393) at
> | org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:227) at
> | org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:181) at
> | org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> | at
> | org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:1
> |24) ... 8 more
> | Caused by: org.apache.cxf.BusException: No conduit initiator was
> | found for the namepsace http://schemas.xmlsoap.org/soap/http. at
> | org.apache.cxf.transport.ConduitInitiatorManagerImpl.getConduitIniti
> |ator(ConduitInitiatorManagerImpl.java:96) at
> | org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(A
> |bstractConduitSelector.java:70) ... 14 more
>
> `----
>
> I'm not sure if it matters, but I have an entry in my cxf.xml file
> defining a jaxws:client with id "{service namespace}port name" and the
> "createdFromAPI" attribute set to "true".
>
> Adding the Jetty dependency back in eliminates the problem.

-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to