[jbossws-cxf-users] [JBoss Web Services CXF] - HTTP conduit configuration for de-coupeld end-points

karypid do-not-reply at jboss.com
Thu Oct 22 05:10:10 EDT 2009


Hi,

I have a rather simple (I hope) problem trying to setup a WS-RM client as follows:

I need a separate connection to be used for the incoming traffic (de-coupled endpoint) towards the client (the CXF configuration to do this is explained here: http://cxf.apache.org/docs/configuration-of-runtime-constructed-objects.html).

My problem is this:

While creating the client proxy, CXF also tries to create the endpoint for receiving replies. Unfortunately it uses Jetty (as it is not aware that it is running in JBoss) and I get a ClassNotFoundException (see log below and notice how the HTTPConduit class tries to initialize and HTTP engine using Jetty).

11:45:57,875 INFO  [ReflectionServiceFactoryBean] Creating Service {http://messaging.cmr/}AsyncMessagingService from WSDL: http://localhost:8001/wls-cxf.wsrm.recipient-war/services/AsyncMessagingService?wsdl
  | 11:45:58,343 INFO  [HTTPConduit] creating decoupled endpoint: http://localhost:9999/decoupled_endpoint
  | 11:45:58,359 ERROR [[DebugServlet]] Servlet.service() for servlet DebugServlet threw exception
  | java.lang.ClassNotFoundException: org.mortbay.jetty.Connector from BaseClassLoader at 1816fb6{VFSClassLoaderPolicy at cd429b{...
  | 	at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
  | 	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
  | 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
  | 	at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory.createJettyHTTPServerEngine(JettyHTTPServerEngineFactory.java:217)
  | 	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.retrieveEngine(JettyHTTPDestination.java:114)
  | 	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.finalizeConfig(JettyHTTPDestination.java:142)
  | 	at org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.createDestination(JettyHTTPTransportFactory.java:123)
  | 	at org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.getDestination(JettyHTTPTransportFactory.java:103)
  | 	at org.apache.cxf.transport.http.HTTPConduit.getDestination(HTTPConduit.java:966)
  | 	at org.apache.cxf.transport.http.HTTPConduit.setUpDecoupledDestination(HTTPConduit.java:943)
  | 	at org.apache.cxf.transport.http.HTTPConduit.getBackChannel(HTTPConduit.java:747)
  | 

How can I configure CXF to delegate this task to JBoss? For example, to have JAX-WS web services published on JBoss, you need to configure an invoker from the JBoss integration layer:

	<jaxws:endpoint id='AsyncMessaging'
  | 		address='http://localhost:7180/jboss-cxf.wsrm.recipient/AsyncMessagingService'
  | 		implementor='svc.impl.messaging.AsyncMessagingServiceImpl'>
  | 		<jaxws:invoker>
  | 			<bean class='org.jboss.wsf.stack.cxf.InvokerJSE' />
  | 		</jaxws:invoker>

I hope somebody can point me in the right direction? My jbossws-cxf.xml currenty looks like this:

	<cxf:bus>
  | 		<cxf:features>
  | 			<cxf:logging />
  | 			<wsa:addressing />
  | 			<wsrm-mgr:reliableMessaging>
  | 				<wsrm-policy:RMAssertion>
  | 					<wsrm-policy:BaseRetransmissionInterval
  | 						Milliseconds="4000" />
  | 					<wsrm-policy:AcknowledgementInterval
  | 						Milliseconds="2000" />
  | 				</wsrm-policy:RMAssertion>
  | 				<wsrm-mgr:destinationPolicy>
  | 					<wsrm-mgr:acksPolicy intraMessageThreshold="0" />
  | 				</wsrm-mgr:destinationPolicy>
  | 			</wsrm-mgr:reliableMessaging>
  | 		</cxf:features>
  | 	</cxf:bus>
  | 
  | 	<http:conduit
  | 		name="{http://messaging.cmr/}AsyncMessagingImplPort.http-conduit">
  | 		<http:client DecoupledEndpoint="http://localhost:9999/decoupled_endpoint" />
  | 	</http:conduit>
  | 

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4261659#4261659

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4261659


More information about the jbossws-cxf-users mailing list