You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Tom Purcell <tp...@chariotsolutions.com> on 2008/03/06 16:06:12 UTC

Call a RESTful service from ServiceMix

Hello

I have a messages that can come in over any one of several protocols. When I
get the message I need to call a RESTful service hosted on a Tomcat server.
I essentially have my simplest case working using the servicemix-http
component. Its a static URI with no variable fields in it. My problem is I
cannot figure out how to handle variables.

For instance, the RESTful service has the following URI: 
  http://somehost:8080/foo/1234

The service will return the "foo" that has the id of "1234".  

The xbean configuration of servicemix-http allows me to code a static URI
but how do I call a RESTful service the URI for which contains dynamic
elements?

Thanks
Tom

-- 
View this message in context: http://www.nabble.com/Call-a-RESTful-service-from-ServiceMix-tp15873186s12049p15873186.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Call a RESTful service from ServiceMix

Posted by Tom Purcell <tp...@chariotsolutions.com>.
Guillaume

I guess I'm back to my original question then. I had the simple case of a no
argument RESTful call working with servicemix-http configured with the
provider role. So getFoos() (http://localhost:8080/fooapp/foos) worked fine.
But I need to also do getFoo(fooId) (http://localhost:8080/fooapp/foo/1029).
The question is how does ServiceMix support the dynamic part of the RESTful
call (the /1029 part). 

I can understand using a marshaler to open the JMS message and extract the
fact that the call is to get Foo where fooId = 1029. Are you saying the the
Marshaler should also construct the actual URL? 

Thanks
Tom





gnodet wrote:
> 
> The idea of using a WSDL 2 won't work for consuming external services
> because this is not implemented yet.
> I would go back to a standard provider with a custom marshaler:
>    <http:provider marshaler="#marshaler" ... />
>    <bean id="marshaler" class="...">
>    </bean>
> That way, you should be able to control how the message exchange
> coming from the jms BC will be converted into an HTTP request.
> 
> On Tue, Mar 11, 2008 at 8:56 PM, Tom Purcell
> <tp...@chariotsolutions.com> wrote:
>>
>>  Okay
>>  Sorry. I got distracted for a few days but now I'm back. I've been
>> trying to
>>  get this to work today but I'm running into difficulty. This is what I'm
>>  trying to do:
>>
>>  JMS test client > servicemix-jms > servicemix-http > externally hosted
>>  RESTful service
>>
>>  The response from the RESTful service should be returned to the JMS test
>>  client.
>>
>>  Here's my sevicemix-jms xbean.xml:
>>  <?xml version="1.0" encoding="UTF-8"?>
>>  <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>>        xmlns:test="http://test"
>>        xmlns:amq="http://activemq.org/config/1.0">
>>
>>     <jms:endpoint service="test:MyJmsQueueToRestTest"
>>                   endpoint="jmsToRestQueue"
>>                   targetService="test:PersonService"
>>                   targetEndpoint="Person"
>>                   role="consumer"
>>                   destinationStyle="queue"
>>                   jmsProviderDestinationName="myJmsQueueToRestTest"
>>                   defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>>                   connectionFactory="#connectionFactory"/>
>>     <amq:connectionFactory id="connectionFactory"
>>  brokerURL="tcp://localhost:61616" />
>>  </beans>
>>
>>  Here's my sevicemix-http xbean.xml:
>>  <?xml version="1.0" encoding="UTF-8"?>
>>  <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>>        xmlns:person="http://example.org/Person">
>>
>>     <http:soap-consumer service="person:PersonService"
>>                         endpoint="person:Person"
>>                        
>> defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>>                         wsdl="classpath:person.wsdl2"/>
>>  </beans>
>>
>>  Note for the time being I am using the person.wsdl2 wsdl referenced in
>> the
>>  earlier response. This is not what I ultimately want but right now I
>> just
>>  want to get the config straight deploy.
>>
>>  What I'm getting on deploy is the following:
>>  <exception-info>
>>   <nesting-level>1</nesting-level>
>>   <msg-loc-info>
>>     <loc-token/>
>>
>> 
>> <loc-message>org/apache/ws/commons/schema/XmlSchemaException</loc-message>
>>     <stack-trace><![CDATA[java.lang.NoClassDefFoundError:
>>  org/apache/ws/commons/schema/XmlSchemaException
>>         at org.apache.woden.internal.DOMWSDLFactory.newWSDLReader(Unknown
>>  Source)
>>         at
>> 
>> org.apache.servicemix.http.endpoints.HttpSoapConsumerEndpoint.validateWsdl2(HttpSoapConsumerEndpoint.java:138)
>>         at
>> 
>> org.apache.servicemix.http.endpoints.HttpSoapConsumerEndpoint.validate(HttpSoapConsumerEndpoint.java:117)
>>         at
>> 
>> org.apache.servicemix.common.AbstractDeployer.validate(AbstractDeployer.java:58)
>>         at
>> 
>> org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(BaseXBeanDeployer.java:55)
>>         at
>> 
>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:96)
>>         at
>> 
>> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
>>         at
>> 
>> org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
>>         at
>> 
>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:508)
>>         at
>> 
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:350)
>>         at
>> 
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:253)
>>         at
>> 
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:647)
>>         at
>> 
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:60)
>>         at
>> 
>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:611)
>>         at java.util.TimerThread.mainLoop(Timer.java:512)
>>         at java.util.TimerThread.run(Timer.java:462)
>>  ]]></stack-trace>
>>   </msg-loc-info>
>>  </exception-info>
>>
>>  I'm sure I'm doing something wrong but I don't have a clue what.
>>  Specifically I'm not certain about the linkage between my JMS BC and the
>>  HTTP BC and the WSDL. And as to the NoClassDefFoundError, I've run quite
>> a
>>  lot through my install and have not run into any such problems in the
>> past.
>>  I'm using the binary install of 3.2.1 with the Sun jdk 1.5.0_14-b03 on a
>>  Suse 10.2 box. I built the 3.3 snapshot from source and got the same
>> error.
>>
>>  Any help would be appreciated.
>>
>>  Thanks
>>  Tom
>>
>>
>>
>>
>>
>>  gnodet wrote:
>>  >
>>  > Hey Tom!
>>  > There is currently no clean support for  RESTful services, but there
>>  > is an experimental
>>  > support for the WSDL2 HTTP Binding in servicemix-http.   It should be
>>  > available by
>>  > deploying an endpoint like:
>>  >   <http:soap-consumer wsdl="service.wsdl2" />
>>  > with the wsdl being a WSDL2 with an HTTP binding.
>>  > Here is an example of such a wsdl:
>>  >
>>  >
>> http://svn.apache.org/repos/asf/servicemix/smx3/trunk/common/servicemix-soap2/src/test/resources/org/apache/servicemix/soap/Person.wsdl2
>>  >
>>  > The http BC will produce an xml document compliant with the WSDL from
>>  > the HTTP request.
>>  >
>>  > On Thu, Mar 6, 2008 at 4:06 PM, Tom Purcell
>>  > <tp...@chariotsolutions.com> wrote
>>  >>
>>  >>  Hello
>>  >>
>>  >>  I have a messages that can come in over any one of several
>> protocols.
>>  >> When I
>>  >>  get the message I need to call a RESTful service hosted on a Tomcat
>>  >> server.
>>  >>  I essentially have my simplest case working using the
>> servicemix-http
>>  >>  component. Its a static URI with no variable fields in it. My
>> problem is
>>  >> I
>>  >>  cannot figure out how to handle variables.
>>  >>
>>  >>  For instance, the RESTful service has the following URI:
>>  >>   http://somehost:8080/foo/1234
>>  >>
>>  >>  The service will return the "foo" that has the id of "1234".
>>  >>
>>  >>  The xbean configuration of servicemix-http allows me to code a
>> static
>>  >> URI
>>  >>  but how do I call a RESTful service the URI for which contains
>> dynamic
>>  >>  elements?
>>  >>
>>  >>  Thanks
>>  >>  Tom
>>  >>
>>  >>  --
>>  >>  View this message in context:
>>  >>
>> http://www.nabble.com/Call-a-RESTful-service-from-ServiceMix-tp15873186s12049p15873186.html
>>  >>  Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>  >>
>>  >>
>>  >
>>  >
>>  >
>>  > --
>>  > Cheers,
>>  > Guillaume Nodet
>>  > ------------------------
>>  > Blog: http://gnodet.blogspot.com/
>>  >
>>  >
>>
>>  --
>>  View this message in context:
>> http://www.nabble.com/Call-a-RESTful-service-from-ServiceMix-tp15873186s12049p15988439.html
>>
>>
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> 
> 

-- 
View this message in context: http://www.nabble.com/Call-a-RESTful-service-from-ServiceMix-tp15873186s12049p16002315.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Call a RESTful service from ServiceMix

Posted by Guillaume Nodet <gn...@gmail.com>.
The idea of using a WSDL 2 won't work for consuming external services
because this is not implemented yet.
I would go back to a standard provider with a custom marshaler:
   <http:provider marshaler="#marshaler" ... />
   <bean id="marshaler" class="...">
   </bean>
That way, you should be able to control how the message exchange
coming from the jms BC will be converted into an HTTP request.

On Tue, Mar 11, 2008 at 8:56 PM, Tom Purcell
<tp...@chariotsolutions.com> wrote:
>
>  Okay
>  Sorry. I got distracted for a few days but now I'm back. I've been trying to
>  get this to work today but I'm running into difficulty. This is what I'm
>  trying to do:
>
>  JMS test client > servicemix-jms > servicemix-http > externally hosted
>  RESTful service
>
>  The response from the RESTful service should be returned to the JMS test
>  client.
>
>  Here's my sevicemix-jms xbean.xml:
>  <?xml version="1.0" encoding="UTF-8"?>
>  <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>        xmlns:test="http://test"
>        xmlns:amq="http://activemq.org/config/1.0">
>
>     <jms:endpoint service="test:MyJmsQueueToRestTest"
>                   endpoint="jmsToRestQueue"
>                   targetService="test:PersonService"
>                   targetEndpoint="Person"
>                   role="consumer"
>                   destinationStyle="queue"
>                   jmsProviderDestinationName="myJmsQueueToRestTest"
>                   defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>                   connectionFactory="#connectionFactory"/>
>     <amq:connectionFactory id="connectionFactory"
>  brokerURL="tcp://localhost:61616" />
>  </beans>
>
>  Here's my sevicemix-http xbean.xml:
>  <?xml version="1.0" encoding="UTF-8"?>
>  <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>        xmlns:person="http://example.org/Person">
>
>     <http:soap-consumer service="person:PersonService"
>                         endpoint="person:Person"
>                         defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>                         wsdl="classpath:person.wsdl2"/>
>  </beans>
>
>  Note for the time being I am using the person.wsdl2 wsdl referenced in the
>  earlier response. This is not what I ultimately want but right now I just
>  want to get the config straight deploy.
>
>  What I'm getting on deploy is the following:
>  <exception-info>
>   <nesting-level>1</nesting-level>
>   <msg-loc-info>
>     <loc-token/>
>
>  <loc-message>org/apache/ws/commons/schema/XmlSchemaException</loc-message>
>     <stack-trace><![CDATA[java.lang.NoClassDefFoundError:
>  org/apache/ws/commons/schema/XmlSchemaException
>         at org.apache.woden.internal.DOMWSDLFactory.newWSDLReader(Unknown
>  Source)
>         at
>  org.apache.servicemix.http.endpoints.HttpSoapConsumerEndpoint.validateWsdl2(HttpSoapConsumerEndpoint.java:138)
>         at
>  org.apache.servicemix.http.endpoints.HttpSoapConsumerEndpoint.validate(HttpSoapConsumerEndpoint.java:117)
>         at
>  org.apache.servicemix.common.AbstractDeployer.validate(AbstractDeployer.java:58)
>         at
>  org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(BaseXBeanDeployer.java:55)
>         at
>  org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:96)
>         at
>  org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
>         at
>  org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
>         at
>  org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:508)
>         at
>  org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:350)
>         at
>  org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:253)
>         at
>  org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:647)
>         at
>  org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:60)
>         at
>  org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:611)
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>         at java.util.TimerThread.run(Timer.java:462)
>  ]]></stack-trace>
>   </msg-loc-info>
>  </exception-info>
>
>  I'm sure I'm doing something wrong but I don't have a clue what.
>  Specifically I'm not certain about the linkage between my JMS BC and the
>  HTTP BC and the WSDL. And as to the NoClassDefFoundError, I've run quite a
>  lot through my install and have not run into any such problems in the past.
>  I'm using the binary install of 3.2.1 with the Sun jdk 1.5.0_14-b03 on a
>  Suse 10.2 box. I built the 3.3 snapshot from source and got the same error.
>
>  Any help would be appreciated.
>
>  Thanks
>  Tom
>
>
>
>
>
>  gnodet wrote:
>  >
>  > Hey Tom!
>  > There is currently no clean support for  RESTful services, but there
>  > is an experimental
>  > support for the WSDL2 HTTP Binding in servicemix-http.   It should be
>  > available by
>  > deploying an endpoint like:
>  >   <http:soap-consumer wsdl="service.wsdl2" />
>  > with the wsdl being a WSDL2 with an HTTP binding.
>  > Here is an example of such a wsdl:
>  >
>  > http://svn.apache.org/repos/asf/servicemix/smx3/trunk/common/servicemix-soap2/src/test/resources/org/apache/servicemix/soap/Person.wsdl2
>  >
>  > The http BC will produce an xml document compliant with the WSDL from
>  > the HTTP request.
>  >
>  > On Thu, Mar 6, 2008 at 4:06 PM, Tom Purcell
>  > <tp...@chariotsolutions.com> wrote
>  >>
>  >>  Hello
>  >>
>  >>  I have a messages that can come in over any one of several protocols.
>  >> When I
>  >>  get the message I need to call a RESTful service hosted on a Tomcat
>  >> server.
>  >>  I essentially have my simplest case working using the servicemix-http
>  >>  component. Its a static URI with no variable fields in it. My problem is
>  >> I
>  >>  cannot figure out how to handle variables.
>  >>
>  >>  For instance, the RESTful service has the following URI:
>  >>   http://somehost:8080/foo/1234
>  >>
>  >>  The service will return the "foo" that has the id of "1234".
>  >>
>  >>  The xbean configuration of servicemix-http allows me to code a static
>  >> URI
>  >>  but how do I call a RESTful service the URI for which contains dynamic
>  >>  elements?
>  >>
>  >>  Thanks
>  >>  Tom
>  >>
>  >>  --
>  >>  View this message in context:
>  >> http://www.nabble.com/Call-a-RESTful-service-from-ServiceMix-tp15873186s12049p15873186.html
>  >>  Sent from the ServiceMix - User mailing list archive at Nabble.com.
>  >>
>  >>
>  >
>  >
>  >
>  > --
>  > Cheers,
>  > Guillaume Nodet
>  > ------------------------
>  > Blog: http://gnodet.blogspot.com/
>  >
>  >
>
>  --
>  View this message in context: http://www.nabble.com/Call-a-RESTful-service-from-ServiceMix-tp15873186s12049p15988439.html
>
>
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>



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

Re: Call a RESTful service from ServiceMix

Posted by Tom Purcell <tp...@chariotsolutions.com>.
Okay
Sorry. I got distracted for a few days but now I'm back. I've been trying to
get this to work today but I'm running into difficulty. This is what I'm
trying to do:

JMS test client > servicemix-jms > servicemix-http > externally hosted
RESTful service

The response from the RESTful service should be returned to the JMS test
client.

Here's my sevicemix-jms xbean.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
       xmlns:test="http://test"
       xmlns:amq="http://activemq.org/config/1.0">

    <jms:endpoint service="test:MyJmsQueueToRestTest"
                  endpoint="jmsToRestQueue"
                  targetService="test:PersonService"
                  targetEndpoint="Person"
                  role="consumer"
                  destinationStyle="queue"
                  jmsProviderDestinationName="myJmsQueueToRestTest"                  
                  defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
                  connectionFactory="#connectionFactory"/>
    <amq:connectionFactory id="connectionFactory"
brokerURL="tcp://localhost:61616" />
</beans>

Here's my sevicemix-http xbean.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:http="http://servicemix.apache.org/http/1.0"
       xmlns:person="http://example.org/Person">
    
    <http:soap-consumer service="person:PersonService"
                        endpoint="person:Person"
                        defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
                        wsdl="classpath:person.wsdl2"/>
</beans>

Note for the time being I am using the person.wsdl2 wsdl referenced in the
earlier response. This is not what I ultimately want but right now I just
want to get the config straight deploy. 

What I'm getting on deploy is the following:
<exception-info>
  <nesting-level>1</nesting-level>
  <msg-loc-info>
    <loc-token/>
   
<loc-message>org/apache/ws/commons/schema/XmlSchemaException</loc-message>
    <stack-trace><![CDATA[java.lang.NoClassDefFoundError:
org/apache/ws/commons/schema/XmlSchemaException
        at org.apache.woden.internal.DOMWSDLFactory.newWSDLReader(Unknown
Source)
        at
org.apache.servicemix.http.endpoints.HttpSoapConsumerEndpoint.validateWsdl2(HttpSoapConsumerEndpoint.java:138)
        at
org.apache.servicemix.http.endpoints.HttpSoapConsumerEndpoint.validate(HttpSoapConsumerEndpoint.java:117)
        at
org.apache.servicemix.common.AbstractDeployer.validate(AbstractDeployer.java:58)
        at
org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(BaseXBeanDeployer.java:55)
        at
org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:96)
        at
org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
        at
org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
        at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:508)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:350)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:253)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:647)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:60)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:611)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
]]></stack-trace>
  </msg-loc-info>
</exception-info>

I'm sure I'm doing something wrong but I don't have a clue what.
Specifically I'm not certain about the linkage between my JMS BC and the
HTTP BC and the WSDL. And as to the NoClassDefFoundError, I've run quite a
lot through my install and have not run into any such problems in the past.
I'm using the binary install of 3.2.1 with the Sun jdk 1.5.0_14-b03 on a
Suse 10.2 box. I built the 3.3 snapshot from source and got the same error.

Any help would be appreciated.

Thanks
Tom 



gnodet wrote:
> 
> Hey Tom!
> There is currently no clean support for  RESTful services, but there
> is an experimental
> support for the WSDL2 HTTP Binding in servicemix-http.   It should be
> available by
> deploying an endpoint like:
>   <http:soap-consumer wsdl="service.wsdl2" />
> with the wsdl being a WSDL2 with an HTTP binding.
> Here is an example of such a wsdl:
>  
> http://svn.apache.org/repos/asf/servicemix/smx3/trunk/common/servicemix-soap2/src/test/resources/org/apache/servicemix/soap/Person.wsdl2
> 
> The http BC will produce an xml document compliant with the WSDL from
> the HTTP request.
> 
> On Thu, Mar 6, 2008 at 4:06 PM, Tom Purcell
> <tp...@chariotsolutions.com> wrote
>>
>>  Hello
>>
>>  I have a messages that can come in over any one of several protocols.
>> When I
>>  get the message I need to call a RESTful service hosted on a Tomcat
>> server.
>>  I essentially have my simplest case working using the servicemix-http
>>  component. Its a static URI with no variable fields in it. My problem is
>> I
>>  cannot figure out how to handle variables.
>>
>>  For instance, the RESTful service has the following URI:
>>   http://somehost:8080/foo/1234
>>
>>  The service will return the "foo" that has the id of "1234".
>>
>>  The xbean configuration of servicemix-http allows me to code a static
>> URI
>>  but how do I call a RESTful service the URI for which contains dynamic
>>  elements?
>>
>>  Thanks
>>  Tom
>>
>>  --
>>  View this message in context:
>> http://www.nabble.com/Call-a-RESTful-service-from-ServiceMix-tp15873186s12049p15873186.html
>>  Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> 
> 

-- 
View this message in context: http://www.nabble.com/Call-a-RESTful-service-from-ServiceMix-tp15873186s12049p15988439.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Call a RESTful service from ServiceMix

Posted by Guillaume Nodet <gn...@gmail.com>.
Hey Tom!
There is currently no clean support for  RESTful services, but there
is an experimental
support for the WSDL2 HTTP Binding in servicemix-http.   It should be
available by
deploying an endpoint like:
  <http:soap-consumer wsdl="service.wsdl2" />
with the wsdl being a WSDL2 with an HTTP binding.
Here is an example of such a wsdl:
  http://svn.apache.org/repos/asf/servicemix/smx3/trunk/common/servicemix-soap2/src/test/resources/org/apache/servicemix/soap/Person.wsdl2

The http BC will produce an xml document compliant with the WSDL from
the HTTP request.

On Thu, Mar 6, 2008 at 4:06 PM, Tom Purcell
<tp...@chariotsolutions.com> wrote:
>
>  Hello
>
>  I have a messages that can come in over any one of several protocols. When I
>  get the message I need to call a RESTful service hosted on a Tomcat server.
>  I essentially have my simplest case working using the servicemix-http
>  component. Its a static URI with no variable fields in it. My problem is I
>  cannot figure out how to handle variables.
>
>  For instance, the RESTful service has the following URI:
>   http://somehost:8080/foo/1234
>
>  The service will return the "foo" that has the id of "1234".
>
>  The xbean configuration of servicemix-http allows me to code a static URI
>  but how do I call a RESTful service the URI for which contains dynamic
>  elements?
>
>  Thanks
>  Tom
>
>  --
>  View this message in context: http://www.nabble.com/Call-a-RESTful-service-from-ServiceMix-tp15873186s12049p15873186.html
>  Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>



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