You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Guillaume Nodet <gn...@gmail.com> on 2007/05/02 10:10:46 UTC

Re: jsr181 ochestration

The main difference is that if you use the XFire client code directly, your
service
(the orchestration one) is dependant on the protocol and location of the
services
it references, whereas if you use the JBI proxy, you could change one of the
service
to be itself a router on the bus, use JMS instead of HTTP ...
This is all about decoupled services and only reference the interface of a
service rather
than the binding.

On 4/30/07, Bummer <sa...@gmail.com> wrote:
>
>
> I have tried the jsr181 ochestration example(citytime) which invokes
> localtime and uszip webservices.
> It kind of worked except that I got the error saying :
>
> org.codehaus.xfire.XFireRuntimeException: Could not invoke service..
> Nested
> exception is org.codehaus.xfire.fault.XFireFault: Current state not
> START_ELEMENT, END_ELEMENT or ENTITY_REFERENCE ....
>
> But when I looked at the debug log, I found out that it actually invoked
> uszip webservice sucessfully and the localtime webservices was invoked ok
> at
> the server side.
>
> Instead using proxy in the xbean.xml, I have tried xfire proxy code (using
> generated LocalTimeClient class), and it worked great !!
>
> What is the difference between using proxy in the xbean.xml and client
> stub
> code ?
>
>
> Following is the my xbean.xml and debug log.
>
> --------
> <beans xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0"
>        xmlns:localtime="http://ripedev.com/xsd/ZipCodeResults.xsd"
>        xmlns:uszip="http://www.webserviceX.NET">
>
>    <jsr181:endpoint pojo="#citytime"
>                     wsdlResource="classpath:service.wsdl"
>                     typeMapping="jaxb2"
>                     annotations="jsr181"
>                     style="document" />
>
>    <bean id="citytime"
> class="org.apache.servicemix.samples.citytime.CityTimeImpl">
>       <property name="usZip">
>          <jsr181:proxy context="#context"
>                        type="net.webservicex.USZipSoap"
>                        service="uszip:USZip" />
>       </property>
>       <property name="localTime">
>          <jsr181:proxy context="#context"
>                        type="com.ripedev.xsd.zipcoderesults.LocalTimeSoap"
>                        service="localtime:LocalTime" />
>       </property>
>    </bean>
>
> </beans>
>
> --------
> ...
>
> DEBUG - header                         - << "X-AspNet-Version:
> 2.0.50727[\r][\n]"
> DEBUG - header                         - << "Cache-Control:
> no-cache[\r][\n]"
> DEBUG - header                         - << "Pragma: no-cache[\r][\n]"
> DEBUG - header                         - << "Expires: -1[\r][\n]"
> DEBUG - header                         - << "Content-Type: text/xml;
> charset=utf-8[\r][\n]"
> DEBUG - header                         - << "Content-Length: 427[\r][\n]"
> DEBUG - content                        - << "<?xml version="1.0"
> encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlso
> ap.org/soap/envelope/" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Bo
> dy><LocalTimeByZipCodeResponse
> xmlns="http://ripedev.com/xsd/ZipCodeResults.xsd
> "><LocalTimeByZipCodeResult>4/30/2007
> 10:38:07 AM</
>
> LocalTimeByZipCodeResult></LocalTimeByZipCodeResponse></soap:Body></soap:Envelope>"
> DEBUG - Client                         - Received message to
> urn:xfire:transport:jbi:1177929498140101796597126
> DEBUG - HandlerPipeline                - adding handler
> org.codehaus.xfire.client.CorrelatorHandler@c8a7c5 to phase pre-dispatch
> DEBUG - HandlerPipeline                - adding handler
> org.codehaus.xfire.handler.LocateBindingHandler@17e78f7 to phase dispatch
> DEBUG - HandlerPipeline                - adding handler
> org.codehaus.xfire.soap.handler.SoapBodyHandler@37a91a to phase dispatch
> DEBUG - HandlerPipeline                - Invoking phase transport
> DEBUG - HandlerPipeline                - Invoking phase parse
> DEBUG - HandlerPipeline                - Invoking phase pre-dispatch
> DEBUG - HandlerPipeline                - Invoking handler
> org.codehaus.xfire.client.CorrelatorHandler in phase pre-dispatch
> DEBUG - Client                         - Correlating context with ID
> 1177929498140111480716151
> DEBUG - Client                         - Found correlated context with ID
> 1177929498140111480716151
> DEBUG - HandlerPipeline                - adding handler
> org.codehaus.xfire.client.ClientReceiveHandler@3eed26 to phase service
> DEBUG - HandlerPipeline                - Invoking phase dispatch
> DEBUG - HandlerPipeline                - Invoking handler
> org.codehaus.xfire.handler.LocateBindingHandler in phase dispatch
> DEBUG - HandlerPipeline                - Invoking handler
> org.codehaus.xfire.soap.handler.SoapBodyHandler in phase dispatch
> DEBUG - HandlerPipeline                - adding handler
> org.codehaus.xfire.client.ClientFaultConverter@14afa30 to phase user
> DEBUG - HandlerPipeline                - adding handler
> org.codehaus.xfire.client.CorrelatorHandler@c8a7c5 to phase pre-dispatch
> DEBUG - HandlerPipeline                - Invoking phase transport
> DEBUG - HandlerPipeline                - Invoking phase parse
> DEBUG - HandlerPipeline                - Invoking phase pre-dispatch
> DEBUG - HandlerPipeline                - Invoking handler
> org.codehaus.xfire.client.CorrelatorHandler in phase pre-dispatch
> DEBUG - Client                         - Correlating context with ID
> 1177929498140111480716151
> DEBUG - Client                         - Found correlated context with ID
> 1177929498140111480716151
> DEBUG - HandlerPipeline                - adding handler
> org.codehaus.xfire.client.ClientReceiveHandler@16f7142 to phase service
> DEBUG - HandlerPipeline                - Invoking phase dispatch
> DEBUG - HandlerPipeline                - Invoking phase policy
> DEBUG - HandlerPipeline                - Invoking phase user
> DEBUG - HandlerPipeline                - Invoking handler
> org.codehaus.xfire.client.ClientFaultConverter in phase user
> DEBUG - HandlerPipeline                - Invoking phase pre-invoke
> DEBUG - HandlerPipeline                - Invoking phase service
> DEBUG - HandlerPipeline                - Invoking handler
> org.codehaus.xfire.client.ClientReceiveHandler in phase service
> ERROR - DefaultFaultHandler            - Fault occurred!
> org.codehaus.xfire.XFireRuntimeException: Could not invoke service..
> Nested
> exception is org.codehaus.xfire.fault.XFireFault: Curr
> ent state not START_ELEMENT, END_ELEMENT or ENTITY_REFERENCE
> org.codehaus.xfire.fault.XFireFault: Current state not START_ELEMENT,
> END_ELEMENT or ENTITY_REFERENCE
>         at
> org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
>         at org.codehaus.xfire.client.Client.onReceive(Client.java:391)
>         at
> org.apache.servicemix.jsr181.xfire.JbiChannel.send(JbiChannel.java:123)
>         at
> org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java
> :26)
>         at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java
> :131)
>         at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75)
>         at org.codehaus.xfire.client.Client.invoke(Client.java:335)
>         at
> org.apache.servicemix.jsr181.xfire.JbiProxy$JAXWSJBIClient.invoke(
> JbiProxy.java:199)
>         at
> org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
>         at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
>         at
> org.apache.servicemix.jsr181.xfire.JbiProxyFactoryBean$1.invoke(
> JbiProxyFactoryBean.java:75)
>         at $Proxy38.localTimeByZipCode(Unknown Source)
>         at
> org.apache.servicemix.samples.citytime.CityTimeImpl.getCityTime(
> CityTimeImpl.java:36)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java
> :39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> org.codehaus.xfire.service.invoker.AbstractInvoker.invoke(
> AbstractInvoker.java:54)
>         at
> org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessage(
> ServiceInvocationHandler.java:322)
>         at
> org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.run(
> ServiceInvocationHandler.java:86)
>         at
> org.codehaus.xfire.service.binding.ServiceInvocationHandler.execute(
> ServiceInvocationHandler.java:134)
>         at
> org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(
> ServiceInvocationHandler.java:109)
>         at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java
> :131)
>         at
> org.codehaus.xfire.transport.DefaultEndpoint.onReceive(
> DefaultEndpoint.java:64)
>         at
> org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java
> :38)
>         at
> org.apache.servicemix.jsr181.Jsr181ExchangeProcessor.process(
> Jsr181ExchangeProcessor.java:110)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(
> AsyncBaseLifeCycle.java:489)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
> AsyncBaseLifeCycle.java:441)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
> BaseLifeCycle.java:46)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
> DeliveryChannelImpl.java:593)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
> AbstractFlow.java:174)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java
> :176)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java
> :134)
>         at
>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask
> (ThreadPoolExecutor.java:665)
>         at
>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run
> (ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.IllegalStateException: Current state not
> START_ELEMENT,
> END_ELEMENT or ENTITY_REFERENCE
>         at
> com.ctc.wstx.sr.BasicStreamReader.getLocalName(BasicStreamReader.java:708)
>         at
> org.codehaus.xfire.util.stax.DepthXMLStreamReader.getLocalName(
> DepthXMLStreamReader.java:101)
>         at
> org.codehaus.xfire.aegis.stax.ElementReader.<init>(ElementReader.java:56)
>         at
> org.codehaus.xfire.aegis.stax.ElementReader.<init>(ElementReader.java:67)
>         at
>
> org.apache.servicemix.jsr181.xfire.ServiceFactoryHelper$FixedJAXWSOperationBinding.readMessage
> (ServiceFactoryHelper.jav
> a:383)
>         at
> org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(
> SoapBodyHandler.java:42)
>         at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java
> :131)
>         at org.codehaus.xfire.client.Client.onReceive(Client.java:387)
>         ... 34 more
> DEBUG - HandlerPipeline                - adding handler
> org.codehaus.xfire.fault.FaultSender@1fb8de1 to phase send
> DEBUG - HandlerPipeline                - adding handler
> org.codehaus.xfire.jaxws.handler.WebFaultHandler@1fdcee to phase user
> DEBUG - HandlerPipeline                - Invoking phase post-invoke
> DEBUG - HandlerPipeline                - Invoking phase policy
> DEBUG - HandlerPipeline                - Invoking phase user
> DEBUG - HandlerPipeline                - Invoking handler
> org.codehaus.xfire.jaxws.handler.WebFaultHandler in phase user
> DEBUG - HandlerPipeline                - Invoking phase transport
> DEBUG - HandlerPipeline                - Invoking phase send
> DEBUG - HandlerPipeline                - Invoking handler
> org.codehaus.xfire.fault.FaultSender in phase send
> DEBUG - jetty                          - resume continuation
> org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation@1793c8
> 2
> DEBUG - jetty                          - REQUEST /citytime/ on
> org.mortbay.jetty.HttpConnection@10c05b5
> DEBUG - jetty                          - servlet=jbiServlet
> DEBUG - jetty                          - chain=null
> DEBUG - jetty                          - servelet holder=jbiServlet
> DEBUG - jetty                          - RESPONSE /citytime/  400
> DEBUG - jetty                          - continuation
> org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation@1793c82
>
>
>
> --
> View this message in context:
> http://www.nabble.com/jsr181-ochestration-tf3669039s12049.html#a10251698
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/