Thanks a lot Gert. How can I get the patch and build new camel jars ? I
wanted to add the deprecated method by mysel but i can't download the camel
source distribution from the official website... (The requested URL
/dist/activemq/apache-camel/1.4.0/apache-camel-1.4.0-src.zip was not found
on this server. for every mirror)

I tried mvn -X clean install but "camel-core:jar:1.3.0" appear 10 times, I
don't know how to change it. Here's my pom and i enclosed the log of mvn -X
( http://www.nabble.com/file/p18086666/log.txt log.txt ) :

<?xml version="1.0" encoding="UTF-8"?><project>
  <parent>
    <artifactId>parent</artifactId>
    <groupId>fr.mm.pocsoa.esb</groupId>
    <version>1.0</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>fr.mm.pocsoa.esb</groupId>
  <artifactId>camel-routage</artifactId>
  <packaging>jbi-service-unit</packaging>
  <name>SE : Camel</name>
  <version>1.0</version>
  <url>http://www.mipih.fr</url>
  <build>
    <defaultGoal>install</defaultGoal>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.servicemix.tooling</groupId>
        <artifactId>jbi-maven-plugin</artifactId>
        <version>${servicemix-version}</version>
        <extensions>true</extensions>
      </plugin>
      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-maven-plugin</artifactId>
        <version>${camel-version}</version>
      </plugin>
    </plugins>
  </build>
  <repositories>
    <repository>
      <releases />
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>apache</id>
      <name>Apache Repository</name>
      <url>http://people.apache.org/repo/m2-ibiblio-rsync-repository</url>
    </repository>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots />
      <id>apache.snapshots</id>
      <name>Apache Snapshots Repository</name>
      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <releases />
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>apache</id>
      <name>Apache Repository</name>
      <url>http://people.apache.org/repo/m2-ibiblio-rsync-repository</url>
    </pluginRepository>
    <pluginRepository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots />
      <id>apache.snapshots</id>
      <name>Apache Snapshots Repository</name>
      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
    </pluginRepository>
  </pluginRepositories>
  <dependencies>
    <dependency>
      <groupId>org.apache.servicemix</groupId>
      <artifactId>servicemix-camel</artifactId>
      <version>${servicemix-version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.servicemix</groupId>
      <artifactId>servicemix-core</artifactId>
      <version>${servicemix-version}</version>
    </dependency>
  </dependencies>
  <properties>
    <servicemix-version>3.3-SNAPSHOT</servicemix-version>
    <camel-version>1.4-SNAPSHOT</camel-version>
        <componentName>servicemix-camel</componentName> 
  </properties>
</project>



Gert Vanthienen wrote:
> 
> L.S.,
> 
> I have just committed a fix for this problem to Camel -- if you have 
> trouble finding the offending Camel 1.3 jar file, you can just rebuild 
> Camel yourself locally and the 1.4-SNAPSHOT you'll end up with in your 
> local repo will solve the issue for you.
> 
> Regards,
> 
> Gert
> 
> Gert Vanthienen wrote:
>> L.S.,
>>
>> With recent refactorings on Apache Camel, a method on the Endpoint 
>> interface was renamed from getCamelContext() to getContext().  Looking 
>> at the exception, it looks like you have some code that was compiled 
>> with Camel 1.3 and you're now running it on Camel 1.4.  Make sure you 
>> have changed every single reference to Camel 1.3 with Camel 1.4 
>> SNAPSHOT -- just use mvn -X clean install jbi:servicemix to check out 
>> classpaths and dependencies used.  I was actually just creating a JIRA 
>> issue to re-add the missing methods and mark them deprecated instead, 
>> just to avoid this particular problem...
>>
>> Gert
>>
>> John MIPIH wrote:
>>> Thanks a lot for your quick answer, I am going nut with this issue.
>>>
>>> I changed my camel-context (logs are now before to:jbi...) and enabled
>>> logging on my CXF web service. The log shows that camel sends an 
>>> empty soap
>>> enveloppe to my web service when content-based routing is activated.
>>>
>>> As you recommended I tried to use servicemix 3.3-SNAPSHOT and Camel
>>> 1.4-SNAPSHOT. I changed all my pom's to have
>>>     <servicemix-version>3.3-SNAPSHOT</servicemix-version>
>>>     <camel-version>1.4-SNAPSHOT</camel-version>
>>>
>>> I launch my SA using "mvn clean install jbi:servicemix", deploying is 
>>> fine
>>> but when I send a message to camel I have :
>>>
>>> java.lang.NoSuchMethodError:
>>> org.apache.camel.Endpoint.getCamelContext()Lorg/apache/camel/CamelContext; 
>>>
>>>         at
>>> org.apache.servicemix.camel.CamelJbiEndpoint.handleActiveProviderExchange(CamelJbiEndpoint.java:100)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.camel.CamelJbiEndpoint.process(CamelJbiEndpoint.java:74)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:582)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:533)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:487)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) 
>>>
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>>  
>>>
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>>  
>>>
>>>         at java.lang.Thread.run(Thread.java:595)
>>> 2008-06-23 14:40:30,028 [btpool1-1      ] WARN  
>>> jetty                         - /ProcessusAdmissionConsumer/
>>> java.lang.IllegalStateException: Exchange not found
>>>         at
>>> org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:190)
>>>  
>>>
>>>         at
>>> org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71)
>>>  
>>>
>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>>         at
>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>>>         at
>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
>>>         at
>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722)
>>>         at
>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
>>>  
>>>
>>>         at
>>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>>>  
>>>
>>>         at
>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>>>         at org.mortbay.jetty.Server.handle(Server.java:324)
>>>         at
>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>>>         at 
>>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:374)
>>>         at
>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
>>>  
>>>
>>>         at
>>> org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:506)
>>>  
>>>
>>>         at
>>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
>>>  
>>>
>>>
>>>
>>> Any idea ?
>>>
>>>
>>>
>>>
>>> Gert Vanthienen wrote:
>>>  
>>>> L.S.,
>>>>
>>>> If you put the <to uri="log:..."> after the routing step to CXF in 
>>>> your camel file, you implicitly create a pipeline that first sends 
>>>> an in-out exchange to CXF and afterwards logs the out message from 
>>>> the CXF service call, that's why you see the StaxSource at that 
>>>> point.  To see what Camel is sending to the endpoint, you'll need to 
>>>> add a <to uri="log..."> before the jbi:endpoint. 
>>>> Could you enable DEBUG logging to see what the MessageExchanges 
>>>> going to/from your CXF endpoints look like?  You probably want to 
>>>> get the latest SNAPSHOT version of the servicemix-camel component in 
>>>> ServiceMix as well because it has some fixes with regards to MEP 
>>>> processing you're going to need for this scenario to work.
>>>>
>>>> Regards,
>>>>
>>>> Gert
>>>>
>>>> John MIPIH wrote:
>>>>    
>>>>> Hello,
>>>>>
>>>>> Here is my camel config file :
>>>>>
>>>>>     <camelContext 
>>>>> xmlns="http://activemq.apache.org/camel/schema/spring";>
>>>>>       <route>
>>>>>         <from
>>>>> uri="jbi:endpoint:urn:fr:mipih:poc:soa:Routage:RouteVersAdmission"/>
>>>>>         <to uri="log:Before-routing"/>
>>>>>         <choice>
>>>>>           <when>
>>>>>             <xpath>.//prenom = 'John'</xpath>
>>>>>             <to
>>>>> uri="jbi:endpoint:urn:fr:mipih:poc:soa:ProcessusAdmissionImplService:ProcessusAdmissionImplPort?mep=in-out"/>
>>>>>  
>>>>>
>>>>>             <to uri="log:Routage-vers-reference"/>
>>>>>           </when>
>>>>>           <otherwise>
>>>>>             <to
>>>>> uri="jbi:endpoint:urn:fr:mipih:poc:soa:ProcessusAdmissionImplBisService:ProcessusAdmissionImplBisPort?mep=in-out"/>
>>>>>  
>>>>>
>>>>>             <to uri="log:Routage-vers-convergence"/>
>>>>>           </otherwise>
>>>>>         </choice>
>>>>>       </route>
>>>>>     </camelContext>
>>>>>
>>>>>
>>>>> When an incoming message comes I get in the console :
>>>>> 2008-06-23 11:27:07,892 [-camel-thread-1] INFO  Avant-routage -
>>>>> Exchange[JbiMessage:
>>>>> [EMAIL PROTECTED]: 
>>>>>
>>>>> {}}]
>>>>> 2008-06-23 11:27:08,282 [-camel-thread-1] INFO  
>>>>> Routage-vers-convergence
>>>>> -
>>>>> Exchange[Message: [EMAIL PROTECTED]
>>>>>
>>>>> or
>>>>>
>>>>> 2008-06-23 11:27:16,048 [-camel-thread-4] INFO  Avant-routage -
>>>>> Exchange[JbiMessage:
>>>>> [EMAIL PROTECTED]: 
>>>>>
>>>>> {}}]
>>>>> 2008-06-23 11:27:16,079 [-camel-thread-4] INFO  
>>>>> Routage-vers-reference -
>>>>> Exchange[Message: [EMAIL PROTECTED]
>>>>>
>>>>> according to the message content (so the routing works fine !)
>>>>>
>>>>> This is good but the target service (cxf webservice) receives a bad
>>>>> message
>>>>> (nullpointer exception). Why do the message change between my first 
>>>>> log
>>>>> and
>>>>> the second from NormalizedMessage to StaxSource ? The problem is this
>>>>> change
>>>>> because when I change my camel context to :
>>>>>
>>>>> <camelContext xmlns="http://activemq.apache.org/camel/schema/spring";>
>>>>> <route>
>>>>> <from
>>>>> uri="jbi:endpoint:urn:fr:mipih:poc:soa:Routage:RouteVersAdmission"/>
>>>>> <to
>>>>> uri="jbi:endpoint:urn:fr:mipih:poc:soa:ProcessusAdmissionImplBisService:ProcessusAdmissionImplBisPort?mep=in-out"/>
>>>>>  
>>>>>
>>>>> </route>
>>>>> </camelContext>
>>>>>
>>>>> everything works fine (but no routing...)
>>>>>
>>>>>
>>>>>
>>>>>         
>>>>
>>>> -----
>>>> ---
>>>> Gert Vanthienen
>>>> http://www.anova.be
>>>>
>>>>     
>>>
>>>   
>>
>>
> 
> 
> 
> -----
> ---
> Gert Vanthienen
> http://www.anova.be
> 

-- 
View this message in context: 
http://www.nabble.com/Content-Based-Routing-with-Camel-tp18065614p18086666.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to