Thank you for your help. It is not exactly right but it helped me to see
where was my mistake.
from("jbi:myService/my-service-http-endpoint").to("log:in_message"); isn't
working.

I just mess up when I post the content of the xbean.xml from in-http-bc
(1b). My file is:
<beans xmlns:http="http://servicemix.apache.org/http/1.0";
       xmlns:myService="http://www.servicemix.org/example";> 
       <http:consumer service="myService:my-service-http"
                      endpoint="myService:my-service-http-endpoint"
                      targetService="myService/my-service-camel"
                      targetEndpoint="camel-in"
                      locationURI="http://0.0.0.0:8192/example"; 
                      defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
                      />
</beans>

Here is something I don't understand: if I want to create a jbi route from
the consumer.
<My_supposition>
To me, the message is coming from the external world to
"http://0.0.0.0:8192/example";, using the endpoint
"myService:my-service-http-endpoint" and the service
"myService:my-service-http".
Then, once received by HTTP SU, it is send to the targetService
"myService/my-service-camel" throught the endpoint "camel-in".
So camel-in should be the name of the endpoint used for camel SU entry, and
myService/my-service-camel his service.
</My_supposition>
Is this supposition right?

it seems to work when I put :
from("jbi:service:myService/my-service-http").to("log:tutorial");
but an error is traced in servicemix console :
WARN  - HttpComponent                  - Target service
(myService/my-service-camel) and endpoint (camel-in) specified, but no
matching endpoint found.  Only the service will be used for routing.
WARN  - DefaultBroker                  - ServiceName
(myService/my-service-camel) specified for routing, but can't find it
registered

Can you help me understanding what is the comportment of this http consumer?



Jean-Baptiste Onofré wrote:
> 
> Hi,
> 
> Answer in line:
> 
>> 1) the http su:
>> I used this tutorial
>> (http://cwiki.apache.org/SM/704-intermediate-configuring-the-http-consumer-su.html)
>> 1a) I change the name in the pom.xml to "Wsdl distant :: IN HTTP SU" and
>> add
>> the dependency:
>> <dependency>
>>   <groupId>org.apache.servicemix</groupId>
>>   <artifactId>servicemix-core</artifactId>
>>   <version>${servicemix-version}</version>
>> </dependency>
> 
> Be careful, if you want to use the HTTP component, you need to add the 
> servicemix-http dependency in your pom.xml like this:
> <dependency>
>       <groupId>org.apache.servicemix</groupId>
>       <artifactId>servicemix-http</artifactId>
>       <version>2009.01</version>
> </dependency>
> 
> Basicly, you don't need the servicemix-core dependency in your SU.
> 
>> 
>> 1b) And then I set the xbean.xml to:
>> <beans  xmlns:http="http://servicemix.apache.org/http/1.0";
>>        xmlns:ex="http://www.servicemix.org/example";>
>> 
>>        <http:endpoint service="myService:my-service-http"
>>                       endpoint="myService:my-service-http-endpoint"
>>                       targetService="myService:my-service-camel"
>>                       targetEndpoint="camel-in"
>>                       locationURI="http://0.0.0.0:8181/myService"; />
>> 
>> </beans>
>> 
>> by the way, I have a question in my mind :
>> 1c) what is the difference between http:endpoint and http:consumer ? (I
>> tried to use http:endpoint but it wasn't working)
> 
> The HTTP component supports two kinds of endpoint: the old fashion and 
> the new one.
> 
> The old fashion uses the http:endpoint notation and the component role 
> is defined using the role attribute (consumer or provider). You can find 
> the old fashion documentation here: 
> http://servicemix.apache.org/servicemix-http.html.
> This usage should be deprecated soon.
> 
> On the other hand, the new fashion uses http:consumer and http:provider 
> notation and define the component role.
> You can find the new fashion documentation here: 
> http://servicemix.apache.org/servicemix-http-new-endpoints.html.
> 
> In your case, I think that the usage of the http:endpoint is not correct 
> as you haven't define the role attribute.
> 
>> 
>> ------------------------------------------------------------
>> 
>> 2) the camel se:
>> I used this tutorial
>> (http://servicemix.apache.org/32-using-the-camel-java-dsl-for-the-first-time.html)
>> 2a) I change the name in the pom.xml to "Wsdl distant :: CAMEL SE SU"
>> 2b) I change the camel-context.xml with :
>> <camelContext id="camel"
>> xmlns="http://activemq.apache.org/camel/schema/spring";>
>>   <package>org.apache.servicemix.test3</package>
>> </camelContext>
>> 2c) I change the org.apache.servicemix.test3.MyRouteBuilder.java
>> I add the line  from("ex:httphandler").to("log:tutorial"); in the
>> configure
>> method (just to test the two components)
>> 
>> ------------------------------------------------------------
>> 
>> 3a) I create the Service assembly
>> TestWsdlDistant3> mvn archetype:create
>> -DarchetypeArtifactId=servicemix-service-assembly
>> -DarchetypeGroupId=org.apache.servicemix.tooling
>> -DartifactId=wsdl-distant-sa
>> 3b) I add the http and camel SU dependencies in the pom.xml file
>> <dependency>
>>       <groupId>org.apache.servicemix.test3</groupId>
>>       <artifactId>in-http-bc</artifactId>
>>       <version>1.0-SNAPSHOT</version>
>>     </dependency>
>>     <dependency>
>>       <groupId>org.apache.servicemix.test3</groupId>
>>       <artifactId>camel-su</artifactId>
>>       <version>1.0-SNAPSHOT</version>
>>     </dependency>
>> 
> Be careful, in the camel se doesn't need to have your http SU in 
> dependency. The routing between the Camel SE and the HTTP BC will be 
> made by the container (SMX) using JBI routing.
> 
>> ------------------------------------------------------------
>> 
>> I run mvn install and I try to deploy the application
>> 
>> I  had the following error at deployment:
>> org.apache.camel.NoSuchEndpointException: No endpoint could be found for:
>> ex:httphandler
>> 
>> So I tryed to add
>> xmlns:ex="http://www.servicemix.org/example";
>> in the camel-context (2b) either in the bean and the camelContext
>> elements
>> but it didn't work.
>> Then, reading some topics, I tried to add the HTTP dependency into the
>> camel
>> pom.xml (2a). didn't work neither.
>> 
>> I saw that you were talking about classpath definition but I just can't
>> figure out:
>> How (meaning when) can I indicate the "ex:httphandler" import for camel
>> SU?
>> 
>> I hope I was clear... Thank you for you help
> 
> In your case, you have defined a http endpoint (consumer) 
> myService:my-service-http-endpoint.
> This endpoint is deployed into SMX as a JBI endpoint.
> 
> Your Camel route should wait for message coming from this endpoint. So 
> it should look like:
> from("jbi:myService/my-service-http-endpoint").to("log:in_message");
> 
> This route listens message coming from your HTTP endpoint (deployed into 
> SMX as a JBI endpoint) and put this message into the in_message log.
> 
> I hope it's clear :)
> 
> Regards
> JB
> 
>> 
>> 
>> the complete stackTrace is :
>> <loc-message>Could not deploy xbean service unit</loc-message>
>> </msg-loc-info>
>> </task-status-msg>
>>                         <exception-info>
>>                                 <nesting-level>1</nesting-level>
>>                                 <msg-loc-info>
>>                                         <loc-token/>
>>                                         <loc-message>No endpoint could be
>> found for: ex:httphandler</loc-message>
>>                                        
>> <stack-trace><![CDATA[org.apache.camel.NoSuchEndpointException: No
>> endpoint
>> could be found for: ex:httphandler
>>         at
>> org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:54)
>>         at
>> org.apache.camel.model.RouteType.resolveEndpoint(RouteType.java:100)
>>         at
>> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:102)
>>         at
>> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:108)
>>         at
>> org.apache.camel.model.FromType.resolveEndpoint(FromType.java:73)
>>         at
>> org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:77)
>>         at org.apache.camel.model.RouteType.addRoutes(RouteType.java:214)
>>         at org.apache.camel.model.RouteType.addRoutes(RouteType.java:90)
>>         at
>> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:537)
>>         at
>> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:529)
>>         at
>> org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:149)
>>         at
>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:47)
>>         at
>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:103)
>>         at
>> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
>>         at
>> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
>>         at
>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
>>         at
>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:275)
>>         at
>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:737)
>>         at
>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:384)
>>         at
>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:86)
>>         at
>> org.apache.servicemix.camel.CamelSpringDeployer.deploy(CamelSpringDeployer.java:71)
>>         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:353)
>>         at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:256)
>>         at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:667)
>>         at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:62)
>>         at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:631)
>>         at java.util.TimerThread.mainLoop(Timer.java:512)
>>         at java.util.TimerThread.run(Timer.java:462)
>> ]]></stack-trace>
>>                                 </msg-loc-info>
>>                         </exception-info>
>>                 </task-result-details>
>>         </component-task-result-details>
>> </component-task-result>
>> </jbi-task-result>
>> </jbi-task>
>> 
>>         at
>> org.apache.servicemix.jbi.framework.ManagementSupport.failure(ManagementSupport.java:125)
>>         at
>> org.apache.servicemix.jbi.framework.ManagementSupport.failure(ManagementSupport.java:111)
>>         at
>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:543)
>>         at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:353)
>>         ... 6 more
>> 
>> 
>> 
>> 
>> Fly13DW wrote:
>>> Thank you for your answer.
>>>
>>> I create the project as said in the tutorial:
>>>> mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling
>>>> -DarchetypeArtifactId=servicemix-project-root      
>>>> -DgroupId=org.apache.servicemix.test3 -DartifactId=TestWsdlDistant3
>>> ------------------------------------------------------------
>>>
>>> Then I create a HTTP SU consumer into the new created folder:
>>> TestWsdlDistant3> mvn archetype:create
>>> -DarchetypeGroupId=org.apache.servicemix.tooling
>>> -DarchetypeArtifactId=servicemix-http-consumer-service-unit
>>> -DgroupId=org.apache.servicemix.test3 -DartifactId=in-http-bc
>>> the Camel SU (the SE, I think?):
>>> TestWsdlDistant3> mvn archetype:create
>>> -DarchetypeGroupId=org.apache.servicemix.tooling
>>> -DarchetypeArtifactId=servicemix-camel-service-unit        
>>> -DgroupId=org.apache.servicemix.test3 -DartifactId=camel-su
>>> and finally the CXF SU provider:
>>> TestWsdlDistant3> mvn archetype:create
>>> -DarchetypeGroupId=org.apache.servicemix.tooling
>>> -DarchetypeArtifactId=servicemix-cxf-bc-service-unit        
>>> -DgroupId=org.apache.servicemix.test3 -DartifactId=out-cxf-bc
>>>
>>> ------------------------------------------------------------
>>>
>>> I try mvn install (just to see if everything is ok)
>>>
>>> I have a Build failed and these error messages :
>>> error: error reading
>>> D:\Users\itmaster\.m2\repository\org\springframework\spring-support\2.0.6\spring-support-2.0.6.jar;
>>> error in opening zip file
>>> error: error reading
>>> D:\Users\itmaster\.m2\repository\xerces\xerces\2.0.2\xerces-2.0.2.jar;
>>> error in opening zip file
>>>
>>> so I just try to delete these files and build again and I have the same
>>> error with another one:
>>> [INFO] Unable to find resource 'xerces:xerces:jar:2.0.2' in repository
>>> apache (http://people.apache.org/repo/m2-ibiblio-rsync-repository)
>>> Downloading:
>>> http://servicemix.org/m2-repo/xerces/xerces/2.0.2/xerces-2.0.2.jar
>>> 1K downloaded  (spring-support-2.0.6.jar)
>>> 1K downloaded  (xerces-2.0.2.jar)
>>> [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local =
>>> '000fe85014f41d2570499c0f861c6e98665499ec'; remote = '<!--
>>>        
>>> top.location="http://servicemix.org/?fp=kXHnDH0xDZIfzlzX%2BEMg2aI8qPN9TqlzHEvrAIivMgIVV8vmkUBX4h5fLLjpt9HdKiETENFLeq7LkY2rrQCF2FHRwxbQ0JOI5XstHCqgtkjkneSsbkG9g5TREzkc6g28z%2B3I&cifr=1";;
>>>         /*
>>> -->
>>> <script' - RETRYING
>>> Downloading:
>>> http://servicemix.org/m2-repo/org/springframework/spring-support/2.0.6/spring-support-2.0.6.jar
>>> [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local =
>>> 'd8139c47cb24b298407e36191473fa0a5ab8bbdd'; remote = '<!--
>>>        
>>> top.location="http://servicemix.org/?fp=kXHnDH0xDZIfzlzX%2BEMg2aI8qPN9TqlzHEvrAIivMgG0LVtTK53YbqdD8EHCEuJyd%2BkjnjI2WBtsvlBX76VzTsAnUF%2FzL%2BaLUNTBFrTXZaMDt3sXM13kSMp4Y56EJ3DCJUDA&cifr=1";;
>>>         /*
>>> -->
>>> <script' - RETRYING
>>> Downloading:
>>> http://servicemix.org/m2-repo/xerces/xerces/2.0.2/xerces-2.0.2.jar
>>> 1K downloaded  (spring-support-2.0.6.jar)
>>> 1K downloaded  (xerces-2.0.2.jar)
>>> [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local =
>>> 'f080208aea8ead70f558a477b75823eb2edf0528'; remote = '<!--
>>>        
>>> top.location="http://servicemix.org/?fp=kXHnDH0xDZIfzlzX%2BEMg2aI8qPN9TqlzHEvrAIivMgV6gYeVlYjq3NS%2BzAEK8w9wFtV%2FHPf%2BrPQZdHtrGqJHtifNu99Ejea0M8k2UkVu6zZn%2FCpaMZLYESTRe7Gfw%2FqxB90c&cifr=1";;
>>>         /*
>>> -->
>>> <script' - IGNORING
>>> [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local =
>>> '6bdc54056ba8980e25701c351629116897ace8ee'; remote = '<!--
>>>        
>>> top.location="http://servicemix.org/?fp=kXHnDH0xDZIfzlzX%2BEMg2aI8qPN9TqlzHEvrAIivMgRsfuksEv7MO3Rr1LS8rmxCcpQDTTFBgZnvXuESeWVrUW%2BLbGYnJsDy3WYHVnKIan6zcl7W08M%2Bmm6a3rJd0s20huUO&cifr=1";;
>>>         /*
>>> -->
>>> <script' - IGNORING
>>>
>>> (and the same for spring-support).
>>> I think this means that the source is not available. 
>>> Do I have to modify some configuration (resource server)?
>>> Does someone have a hint?
>>>
>>> Regards,
>>> Cedric
>>>
>>>
>>>
>>> Gert Vanthienen wrote:
>>>> L.S.,
>>>>
>>>> First of all, welcome to ServiceMix! ;)
>>>>
>>>> If you want to receive the non-soap XML message using a HTTP POST, an
>>>> HTTP consumer endpoint would be the ideal solution there.  For
>>>> invoking the external endpoint, you could use an HTTP provider
>>>> endpoint but we would generally recommend using the servicemix-cxfbc,
>>>> because it is specifically geared towards dealing with web services.
>>>>
>>>> Once you have these two set up, you could actually choose any
>>>> component that best suits your needs : servicemix-bean if you want to
>>>> use a POJO, servicemix-saxon if you are going for XSL, ...  My
>>>> personal favorite/recommendation would be to use Camel inbetween the
>>>> two endpoints: it has excellent EIP and POJO support and there are
>>>> components available for XSL, EL, ... to help you build the
>>>> transformations.
>>>>
>>>> So in a nutshell, I think the best solution for you would be:
>>>>  HTTP consumer -> Camel route -> CXF provider
>>>>
>>>> Regards,
>>>>
>>>> Gert Vanthienen
>>>> ------------------------
>>>> Open Source SOA: http://fusesource.com
>>>> Blog: http://gertvanthienen.blogspot.com/
>>>>
>>>>
>>>>
>>>> 2009/5/27 Fly13DW <[email protected]>:
>>>>> Hello,
>>>>>
>>>>> I'm new with Apache ServiceMix, and I'm asking questions concerning
>>>>> the>
>>>>> architecture I should use.
>>>>> 1) I have a XML message as entry (no-SOAP)
>>>>> <message>msg</message>
>>>>> 2) This message has to be converted to be passed to an external Web
>>>>> Service,
>>>>> using SOAP.
>>>>> 3) The Web Service returns a SOAP message that has to be converted
>>>>> back
>>>>> to
>>>>> XML
>>>>>
>>>>> I thought I use the servicemix-http for the Binding Component (1), and
>>>>> maybe
>>>>> the servicemix-jsr181 (2).
>>>>> My questions are :
>>>>> - do you think there is a better Binding Component (1) to do this job?
>>>>> - my servicemix-jsr181 will use a java pojo. Do I have to do a call to
>>>>> the
>>>>> Web Service in this implemented class, or should I use another
>>>>> architecture?
>>>>>
>>>>> thank you for your answers
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/components-to-use-for-an-XML-to-SOAP-request-tp23745527p23745527.html
>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>> -----
>>>> ---
>>>> Gert Vanthienen
>>>> http://gertvanthienen.blogspot.com
>>>>
>>>
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/components-to-use-for-an-XML-to-SOAP-request-tp23745527p23762708.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to