Hi, Solved. The problem was that I was confusing the SEI class with the service class. Now, I can expose any route as a web service. Pretty cool ;).
On Mon, Aug 23, 2010 at 2:29 PM, M.Ismail [via Camel] < [email protected]<ml-node%[email protected]> > wrote: > Hi, > > I'm using Camel 2.3 and deploying it in a spring container and I'm trying > to create a route that publishes/consumes a SOAP endpoint to a SOAP client. > Here is my test route: > > from("cxf:bean:cxfHelloWorld") > .transform(constant("Hi Back")); > > and here is how I define the endpoint in camel-context.xml > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:camel="http://camel.apache.org/schema/spring" > xmlns:broker="http://activemq.apache.org/schema/core" > xmlns:cxf="http://camel.apache.org/schema/cxf" > xmlns:jaxws="http://cxf.apache.org/jaxws" > xmlns:osgi="http://www.springframework.org/schema/osgi" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd > http://camel.apache.org/schema/cxf > http://camel.apache.org/schema/cxf/camel-cxf.xsd > http://activemq.apache.org/schema/core > http://activemq.apache.org/schema/core/activemq-core.xsd"> > > <cxf:cxfEndpoint id="cxfHelloWorld" address=" > http://localhost/HelloWorld" > serviceClass="org.apache.cxf.bindings.SOAP.helloworld.SayHello" > endpointName="s:HelloApp.HelloSOAPPort" > serviceName="s:HelloApp.HelloSOAPService" > wsdlURL="src/main/resources/wsdl/HelloWorld.wsdl" > xmlns:s="http://cxf.apache.org/bindings/corba/idl/HelloWorld"> > <cxf:properties> > <entry key="dataFormat" value="POJO"/> > <entry key="loggingFeatureEnabled" value="true"/> > <entry key="wrapped" value="true"/> > </cxf:properties> > </cxf:cxfEndpoint> > > And I run this route using "mvn camel:run". > > However, when the routebuilder is being built I get the following WARN: > 14:12:47,015 5906 INFO [org.apache.camel.spring.Main.main()] > factory.ReflectionServiceFactoryBean - Creating Service { > http://cxf.apache.org/bindings/corba/idl/HelloWorld}HelloApp.HelloSOAPService > from WSDL: src/main/resources/wsdl/HelloWorld.wsdl > 14:12:47,031 5922 WARN [org.apache.camel.spring.Main.main()] > factory.ReflectionServiceFactoryBean - Could not find a matching method for > operation {http://cxf.apache.org/bindings/corba/idl/HelloWorld}shutdown. > Operation will be unavailable. > 14:12:47,031 5922 WARN [org.apache.camel.spring.Main.main()] > factory.ReflectionServiceFactoryBean - Could not find a matching method for > operation {http://cxf.apache.org/bindings/corba/idl/HelloWorld}greetMe. > Operation will be unavailable. > 14:12:47,031 5922 WARN [org.apache.camel.spring.Main.main()] > factory.ReflectionServiceFactoryBean - Could not find a matching method for > operation {http://cxf.apache.org/bindings/corba/idl/HelloWorld}sayHello. > Operation will be unavailable. > 14:12:47,031 5922 INFO [org.apache.camel.spring.Main.main()] > endpoint.ServerImpl - Setting the server's publish address to be > http://localhost:80/HelloWorld > > As you may guess, If I send a SOAP request to this endpoint, an exception > is thrown: > > 14:13:53,312 72203 INFO [24011...@qtp-3619676-0] > interceptor.LoggingInInterceptor - Inbound Message > ---------------------------- > ID: 1 > Address: /HelloWorld > Encoding: ISO-8859-1 > Content-Type: text/xml > Headers: {Content-Length=[376], Host=[localhost], User-Agent=[XML Spy], > connection=[Keep-Alive], SOAPAction=["urn:#sayHello"], > Content-Type=[text/xml], content-type=[text/xml], Cache-Control=[no-cache]} > Payload: <SOAP-ENV:Envelope xmlns:SOAP-ENV=" > http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC=" > http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" > http://www.w3.org/2001/XMLSchema"> > <SOAP-ENV:Body> > <m:sayHello xmlns:m=" > http://cxf.apache.org/bindings/corba/idl/HelloWorld"/> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > > -------------------------------------- > 14:13:53,453 72344 WARN [24011...@qtp-3619676-0] > phase.PhaseInterceptorChain - Interceptor for { > http://cxf.apache.org/bindings/corba/idl/HelloWorld}HelloApp.HelloSOAPService > has thrown exception, unwinding now > org.apache.cxf.interceptor.Fault: Message part { > http://cxf.apache.org/bindings/corba/idl/HelloWorld}sayHello was not > recognized. (Does it exist in service WSDL?) > at > org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:194) > > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243) > > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:110) > > at > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:312) > > at > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:276) > > at > org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70) > > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > at > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) > > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) > at > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930) > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) > > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > > at > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > > 14:13:53,484 72375 INFO [24011...@qtp-3619676-0] > interceptor.LoggingOutInterceptor - Outbound Message > --------------------------- > ID: 1 > Response-Code: 500 > Encoding: ISO-8859-1 > Content-Type: text/xml > Headers: {} > Payload: <soap:Envelope xmlns:soap=" > http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Message > part {http://cxf.apache.org/bindings/corba/idl/HelloWorld}sayHello was not > recognized. (Does it exist in service > WSDL?)</faultstring></soap:Fault></soap:Body></soap:Envelope> > -------------------------------------- > > Please, advise. > > Thanks, > > ------------------------------ > View message @ > http://camel.465427.n5.nabble.com/Operations-are-unavailable-when-defining-for-a-CXF-endpoint-tp2644645p2644645.html > To start a new topic under Camel - Users, email > [email protected]<ml-node%[email protected]> > To unsubscribe from Camel - Users, click > here<http://camel.465427.n5.nabble.com/template/NodeServlet.jtp?tpl=unsubscribe_by_code&node=465428&code=bW9oYW1tZWQuaGFueUBnbWFpbC5jb218NDY1NDI4fDIwNzI5Nzg2NDM=>. > > > -- View this message in context: http://camel.465427.n5.nabble.com/Operations-are-unavailable-when-defining-for-a-CXF-endpoint-tp2644645p2644869.html Sent from the Camel - Users mailing list archive at Nabble.com.
