You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by notsure <l....@gmail.com> on 2009/03/30 18:29:42 UTC

Camel Transport for CXF

I have a jaxws endpoint which im trying to generate an http endpoint to
transport soap messages to a secondary service(request/response). I'm using
eclipse 3.4.2, cxf 2.1.4 and camel 2.0 m1. The secondary service has five
endpoints so I've been trying to use pipeline with filter using xpath.
However, when I add camel:destination to my applicationcontext
eclipse/tomcat cannot find it. 

snippets

xmlns:camel="http://cxf.apache.org/transports/camel"

http://cxf.apache.org/transports/camel
    http://cxf.apache.org/transports/camel/camel.xsd"

<camel:destination
		name="{http://localhost:8080}ServiceSoapPort.http-destination">
		<camelContext id="context" xmlns="http://camel.apache.org/schema/spring/">
			<route>

I know the url doesn't resolve and I've copied the xsd from the jar file,
what can i do to resolve this?

-- 
View this message in context: http://www.nabble.com/Camel-Transport-for-CXF-tp22787141p22787141.html
Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.


Re: Camel Transport for CXF

Posted by notsure <l....@gmail.com>.
Fixed... Thanks for your help. Great work BTW.


notsure wrote:
> 
> Thanks for the validation, I did switch to the jetty component after
> reading the documentation a few times. However I can no longer access my
> wsdl file, how do I fix that?
> 
> 
> 
> willem.jiang wrote:
>> 
>> No, you should not use the Camel transport for CXF for your case
>> Basically, if you want to leverage the Camel's component to implement a
>> new transport for CXF  , you can use this Camel Transport for CXF.
>> 
>> But for your case, you just need to route the SOAP request to different
>> service endpoints. You can use the jetty endpoint to listen for soap
>> request, and then route the request to different base on the namespace.
>> 
>> from(jetty://YourServiceAddress).choice(xxx)...
>> 
>> Willem
>> 
>> notsure wrote:
>>> Thank you for the timely response, I have the camel-cxf.jar in the
>>> classpath.
>>> I'm trying to set my routes and I get a looping issue. I would like to
>>> achieve the 
>>> following:
>>> 
>>> Service A receives a soap message and routes it to an outside service
>>> based
>>> on content
>>> of the soap (namespace most likely) it could go to several ports 
>>> B (namespace B) 
>>> C (namespace C)
>>> D (namespace D)
>>> E (namespace E)
>>> 
>>> and the response is routed back to the service and forwarded to the
>>> original
>>> requestor.
>>> I'm currently using Camel Transport for CXF and route looks like
>>> <camel:destination
>>> 	
>>> name="{http://service.acme.train.com}ServiceSoapPort.http-destination">
>>> 		<camelContext id="context"
>>> xmlns="http://camel.apache.org/schema/spring">
>>> 			<route>
>>> 				<from uri="direct:ServiceSoapPort" />
>>> 				<pipeline>
>>> 					<choice>
>>> 						<when>
>>> 							<xpath>$axe='uri:AXE/ACTION=SOAPACTIONwsdl'
>>> 							</xpath>
>>> 							<inOut uri="http://localhost:9010/ACTION=SOAPACTION" />
>>> 						</when>
>>> 						<when>
>>> 							<xpath>$cl =
>>> 								'uri:CLASSSERVER/ACTION=SOAPACTIONwsdl'</xpath>
>>> 							<inOut uri="http://localhost:9020/ACTION=SOAPACTION" />
>>> 						</when>
>>> 						<when>
>>> 							<xpath>$ua = 'uri:UASERVER/ACTION=SOAPACTIONwsdl'</xpath>
>>> 							<inOut uri="http://localhost:9030/ACTION=SOAPACTION" />
>>> 						</when>
>>> 						<when>
>>> 							<xpath>$vw = 'uri:VIEW/ACTION=SOAPACTIONwsdl'</xpath>
>>> 							<inOut uri="http://localhost:9080/ACTION=SOAPACTION" />
>>> 						</when>
>>> 						<otherwise>
>>> 							<inOut uri="http://localhost:9000/ACTION=SOAPACTION" />
>>> 						</otherwise>
>>> 					</choice>
>>> 				</pipeline>
>>> 			</route>
>>> 		</camelContext>
>>> 	</camel:destination>
>>> 
>>> 
>>> 
>>> willem.jiang wrote:
>>>> Hi,
>>>>
>>>> Did you put the camel-cxf.jar into your class path?
>>>> BTW, Since we use the Spring customer namespace handler to deal with
>>>> the
>>>> camel:destination please make sure the camel-cxf.jar's
>>>> META-INF/spring.handlers and META-INF/spring.schemas are loadable by
>>>> Spring.
>>>>
>>>> Willem
>>>>
>>>> notsure wrote:
>>>>> I have a jaxws endpoint which im trying to generate an http endpoint
>>>>> to
>>>>> transport soap messages to a secondary service(request/response). I'm
>>>>> using
>>>>> eclipse 3.4.2, cxf 2.1.4 and camel 2.0 m1. The secondary service has
>>>>> five
>>>>> endpoints so I've been trying to use pipeline with filter using xpath.
>>>>> However, when I add camel:destination to my applicationcontext
>>>>> eclipse/tomcat cannot find it. 
>>>>>
>>>>> snippets
>>>>>
>>>>> xmlns:camel="http://cxf.apache.org/transports/camel"
>>>>>
>>>>> http://cxf.apache.org/transports/camel
>>>>>     http://cxf.apache.org/transports/camel/camel.xsd"
>>>>>
>>>>> <camel:destination
>>>>> 		name="{http://localhost:8080}ServiceSoapPort.http-destination">
>>>>> 		<camelContext id="context"
>>>>> xmlns="http://camel.apache.org/schema/spring/">
>>>>> 			<route>
>>>>>
>>>> Any feedback would be greatly appreaciated.
>>>>
>>>> Thanks,
>>>> Terry
>>>>
>>>>> I know the url doesn't resolve and I've copied the xsd from the jar
>>>>> file,
>>>>> what can i do to resolve this?
>>>>>
>>>>
>>>>
>>> 
>> 
>> 
>> 
> :-D:-D
> 

-- 
View this message in context: http://www.nabble.com/Camel-Transport-for-CXF-tp22787141p22810440.html
Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.


Re: Camel Transport for CXF

Posted by notsure <l....@gmail.com>.
Thanks for the validation, I did switch to the jetty component after reading
the documentation a few times. However I can no longer access my wsdl file,
how do I fix that?



willem.jiang wrote:
> 
> No, you should not use the Camel transport for CXF for your case
> Basically, if you want to leverage the Camel's component to implement a
> new transport for CXF  , you can use this Camel Transport for CXF.
> 
> But for your case, you just need to route the SOAP request to different
> service endpoints. You can use the jetty endpoint to listen for soap
> request, and then route the request to different base on the namespace.
> 
> from(jetty://YourServiceAddress).choice(xxx)...
> 
> Willem
> 
> notsure wrote:
>> Thank you for the timely response, I have the camel-cxf.jar in the
>> classpath.
>> I'm trying to set my routes and I get a looping issue. I would like to
>> achieve the 
>> following:
>> 
>> Service A receives a soap message and routes it to an outside service
>> based
>> on content
>> of the soap (namespace most likely) it could go to several ports 
>> B (namespace B) 
>> C (namespace C)
>> D (namespace D)
>> E (namespace E)
>> 
>> and the response is routed back to the service and forwarded to the
>> original
>> requestor.
>> I'm currently using Camel Transport for CXF and route looks like
>> <camel:destination
>> 		name="{http://service.acme.train.com}ServiceSoapPort.http-destination">
>> 		<camelContext id="context"
>> xmlns="http://camel.apache.org/schema/spring">
>> 			<route>
>> 				<from uri="direct:ServiceSoapPort" />
>> 				<pipeline>
>> 					<choice>
>> 						<when>
>> 							<xpath>$axe='uri:AXE/ACTION=SOAPACTIONwsdl'
>> 							</xpath>
>> 							<inOut uri="http://localhost:9010/ACTION=SOAPACTION" />
>> 						</when>
>> 						<when>
>> 							<xpath>$cl =
>> 								'uri:CLASSSERVER/ACTION=SOAPACTIONwsdl'</xpath>
>> 							<inOut uri="http://localhost:9020/ACTION=SOAPACTION" />
>> 						</when>
>> 						<when>
>> 							<xpath>$ua = 'uri:UASERVER/ACTION=SOAPACTIONwsdl'</xpath>
>> 							<inOut uri="http://localhost:9030/ACTION=SOAPACTION" />
>> 						</when>
>> 						<when>
>> 							<xpath>$vw = 'uri:VIEW/ACTION=SOAPACTIONwsdl'</xpath>
>> 							<inOut uri="http://localhost:9080/ACTION=SOAPACTION" />
>> 						</when>
>> 						<otherwise>
>> 							<inOut uri="http://localhost:9000/ACTION=SOAPACTION" />
>> 						</otherwise>
>> 					</choice>
>> 				</pipeline>
>> 			</route>
>> 		</camelContext>
>> 	</camel:destination>
>> 
>> 
>> 
>> willem.jiang wrote:
>>> Hi,
>>>
>>> Did you put the camel-cxf.jar into your class path?
>>> BTW, Since we use the Spring customer namespace handler to deal with the
>>> camel:destination please make sure the camel-cxf.jar's
>>> META-INF/spring.handlers and META-INF/spring.schemas are loadable by
>>> Spring.
>>>
>>> Willem
>>>
>>> notsure wrote:
>>>> I have a jaxws endpoint which im trying to generate an http endpoint to
>>>> transport soap messages to a secondary service(request/response). I'm
>>>> using
>>>> eclipse 3.4.2, cxf 2.1.4 and camel 2.0 m1. The secondary service has
>>>> five
>>>> endpoints so I've been trying to use pipeline with filter using xpath.
>>>> However, when I add camel:destination to my applicationcontext
>>>> eclipse/tomcat cannot find it. 
>>>>
>>>> snippets
>>>>
>>>> xmlns:camel="http://cxf.apache.org/transports/camel"
>>>>
>>>> http://cxf.apache.org/transports/camel
>>>>     http://cxf.apache.org/transports/camel/camel.xsd"
>>>>
>>>> <camel:destination
>>>> 		name="{http://localhost:8080}ServiceSoapPort.http-destination">
>>>> 		<camelContext id="context"
>>>> xmlns="http://camel.apache.org/schema/spring/">
>>>> 			<route>
>>>>
>>> Any feedback would be greatly appreaciated.
>>>
>>> Thanks,
>>> Terry
>>>
>>>> I know the url doesn't resolve and I've copied the xsd from the jar
>>>> file,
>>>> what can i do to resolve this?
>>>>
>>>
>>>
>> 
> 
> 
> 
:-D:-D
-- 
View this message in context: http://www.nabble.com/Camel-Transport-for-CXF-tp22787141p22809337.html
Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.


Re: Camel Transport for CXF

Posted by Willem Jiang <wi...@gmail.com>.
No, you should not use the Camel transport for CXF for your case
Basically, if you want to leverage the Camel's component to implement a
new transport for CXF  , you can use this Camel Transport for CXF.

But for your case, you just need to route the SOAP request to different
service endpoints. You can use the jetty endpoint to listen for soap
request, and then route the request to different base on the namespace.

from(jetty://YourServiceAddress).choice(xxx)...

Willem

notsure wrote:
> Thank you for the timely response, I have the camel-cxf.jar in the classpath.
> I'm trying to set my routes and I get a looping issue. I would like to
> achieve the 
> following:
> 
> Service A receives a soap message and routes it to an outside service based
> on content
> of the soap (namespace most likely) it could go to several ports 
> B (namespace B) 
> C (namespace C)
> D (namespace D)
> E (namespace E)
> 
> and the response is routed back to the service and forwarded to the original
> requestor.
> I'm currently using Camel Transport for CXF and route looks like
> <camel:destination
> 		name="{http://service.acme.train.com}ServiceSoapPort.http-destination">
> 		<camelContext id="context" xmlns="http://camel.apache.org/schema/spring">
> 			<route>
> 				<from uri="direct:ServiceSoapPort" />
> 				<pipeline>
> 					<choice>
> 						<when>
> 							<xpath>$axe='uri:AXE/ACTION=SOAPACTIONwsdl'
> 							</xpath>
> 							<inOut uri="http://localhost:9010/ACTION=SOAPACTION" />
> 						</when>
> 						<when>
> 							<xpath>$cl =
> 								'uri:CLASSSERVER/ACTION=SOAPACTIONwsdl'</xpath>
> 							<inOut uri="http://localhost:9020/ACTION=SOAPACTION" />
> 						</when>
> 						<when>
> 							<xpath>$ua = 'uri:UASERVER/ACTION=SOAPACTIONwsdl'</xpath>
> 							<inOut uri="http://localhost:9030/ACTION=SOAPACTION" />
> 						</when>
> 						<when>
> 							<xpath>$vw = 'uri:VIEW/ACTION=SOAPACTIONwsdl'</xpath>
> 							<inOut uri="http://localhost:9080/ACTION=SOAPACTION" />
> 						</when>
> 						<otherwise>
> 							<inOut uri="http://localhost:9000/ACTION=SOAPACTION" />
> 						</otherwise>
> 					</choice>
> 				</pipeline>
> 			</route>
> 		</camelContext>
> 	</camel:destination>
> 
> 
> 
> willem.jiang wrote:
>> Hi,
>>
>> Did you put the camel-cxf.jar into your class path?
>> BTW, Since we use the Spring customer namespace handler to deal with the
>> camel:destination please make sure the camel-cxf.jar's
>> META-INF/spring.handlers and META-INF/spring.schemas are loadable by
>> Spring.
>>
>> Willem
>>
>> notsure wrote:
>>> I have a jaxws endpoint which im trying to generate an http endpoint to
>>> transport soap messages to a secondary service(request/response). I'm
>>> using
>>> eclipse 3.4.2, cxf 2.1.4 and camel 2.0 m1. The secondary service has five
>>> endpoints so I've been trying to use pipeline with filter using xpath.
>>> However, when I add camel:destination to my applicationcontext
>>> eclipse/tomcat cannot find it. 
>>>
>>> snippets
>>>
>>> xmlns:camel="http://cxf.apache.org/transports/camel"
>>>
>>> http://cxf.apache.org/transports/camel
>>>     http://cxf.apache.org/transports/camel/camel.xsd"
>>>
>>> <camel:destination
>>> 		name="{http://localhost:8080}ServiceSoapPort.http-destination">
>>> 		<camelContext id="context"
>>> xmlns="http://camel.apache.org/schema/spring/">
>>> 			<route>
>>>
>> Any feedback would be greatly appreaciated.
>>
>> Thanks,
>> Terry
>>
>>> I know the url doesn't resolve and I've copied the xsd from the jar file,
>>> what can i do to resolve this?
>>>
>>
>>
> 


Re: Camel Transport for CXF

Posted by notsure <l....@gmail.com>.
Thank you for the timely response, I have the camel-cxf.jar in the classpath.
I'm trying to set my routes and I get a looping issue. I would like to
achieve the 
following:

Service A receives a soap message and routes it to an outside service based
on content
of the soap (namespace most likely) it could go to several ports 
B (namespace B) 
C (namespace C)
D (namespace D)
E (namespace E)

and the response is routed back to the service and forwarded to the original
requestor.
I'm currently using Camel Transport for CXF and route looks like
<camel:destination
		name="{http://service.acme.train.com}ServiceSoapPort.http-destination">
		<camelContext id="context" xmlns="http://camel.apache.org/schema/spring">
			<route>
				<from uri="direct:ServiceSoapPort" />
				<pipeline>
					<choice>
						<when>
							<xpath>$axe='uri:AXE/ACTION=SOAPACTIONwsdl'
							</xpath>
							<inOut uri="http://localhost:9010/ACTION=SOAPACTION" />
						</when>
						<when>
							<xpath>$cl =
								'uri:CLASSSERVER/ACTION=SOAPACTIONwsdl'</xpath>
							<inOut uri="http://localhost:9020/ACTION=SOAPACTION" />
						</when>
						<when>
							<xpath>$ua = 'uri:UASERVER/ACTION=SOAPACTIONwsdl'</xpath>
							<inOut uri="http://localhost:9030/ACTION=SOAPACTION" />
						</when>
						<when>
							<xpath>$vw = 'uri:VIEW/ACTION=SOAPACTIONwsdl'</xpath>
							<inOut uri="http://localhost:9080/ACTION=SOAPACTION" />
						</when>
						<otherwise>
							<inOut uri="http://localhost:9000/ACTION=SOAPACTION" />
						</otherwise>
					</choice>
				</pipeline>
			</route>
		</camelContext>
	</camel:destination>



willem.jiang wrote:
> 
> Hi,
> 
> Did you put the camel-cxf.jar into your class path?
> BTW, Since we use the Spring customer namespace handler to deal with the
> camel:destination please make sure the camel-cxf.jar's
> META-INF/spring.handlers and META-INF/spring.schemas are loadable by
> Spring.
> 
> Willem
> 
> notsure wrote:
>> I have a jaxws endpoint which im trying to generate an http endpoint to
>> transport soap messages to a secondary service(request/response). I'm
>> using
>> eclipse 3.4.2, cxf 2.1.4 and camel 2.0 m1. The secondary service has five
>> endpoints so I've been trying to use pipeline with filter using xpath.
>> However, when I add camel:destination to my applicationcontext
>> eclipse/tomcat cannot find it. 
>> 
>> snippets
>> 
>> xmlns:camel="http://cxf.apache.org/transports/camel"
>> 
>> http://cxf.apache.org/transports/camel
>>     http://cxf.apache.org/transports/camel/camel.xsd"
>> 
>> <camel:destination
>> 		name="{http://localhost:8080}ServiceSoapPort.http-destination">
>> 		<camelContext id="context"
>> xmlns="http://camel.apache.org/schema/spring/">
>> 			<route>
>> 
> Any feedback would be greatly appreaciated.
> 
> Thanks,
> Terry
> 
>> I know the url doesn't resolve and I've copied the xsd from the jar file,
>> what can i do to resolve this?
>> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Camel-Transport-for-CXF-tp22787141p22802542.html
Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.


Re: Camel Transport for CXF

Posted by Willem Jiang <wi...@gmail.com>.
Hi,

Did you put the camel-cxf.jar into your class path?
BTW, Since we use the Spring customer namespace handler to deal with the
camel:destination please make sure the camel-cxf.jar's
META-INF/spring.handlers and META-INF/spring.schemas are loadable by Spring.

Willem

notsure wrote:
> I have a jaxws endpoint which im trying to generate an http endpoint to
> transport soap messages to a secondary service(request/response). I'm using
> eclipse 3.4.2, cxf 2.1.4 and camel 2.0 m1. The secondary service has five
> endpoints so I've been trying to use pipeline with filter using xpath.
> However, when I add camel:destination to my applicationcontext
> eclipse/tomcat cannot find it. 
> 
> snippets
> 
> xmlns:camel="http://cxf.apache.org/transports/camel"
> 
> http://cxf.apache.org/transports/camel
>     http://cxf.apache.org/transports/camel/camel.xsd"
> 
> <camel:destination
> 		name="{http://localhost:8080}ServiceSoapPort.http-destination">
> 		<camelContext id="context" xmlns="http://camel.apache.org/schema/spring/">
> 			<route>
> 
> I know the url doesn't resolve and I've copied the xsd from the jar file,
> what can i do to resolve this?
>