2016-09-19 1 views
0

Rechts nicht ich kann einen einzelnen Verbraucher Einzel Rest Service Karte nach unten Code:Ist es möglich, alle Ruheanforderungen für einen einzelnen Verbraucher abzufangen und mit cxfrs an den tatsächlichen Rest-Webdienst weiterzuleiten?

Strecke Konfigurationen:

<bean class="com.x.ws.integration.route.SampleRouteProcessor" 
    id="sampleRouteProcessor" /> 
<camel:routeContext id="xyz"> 
    <camel:route xmlns="http://camel.apache.org/schema/spring"> 
     <camel:from 
      uri="cxfrs:bean:getSampleHoliDay?bindingStyle=SimpleConsumer" /> 
     <camel:setHeader headerName="CamelHttpMethod"> 
      <constant>GET</constant> 
     </camel:setHeader> 
     <camel:setHeader headerName="Content-Type"> 
      <constant>application/json</constant> 
     </camel:setHeader> 
     <camel:setHeader headerName="accept"> 
      <constant>application/json</constant> 
     </camel:setHeader> 

     <camel:to uri="cxfrs:bean:getSampleHoliDayClient" /> 
    </camel:route> 
</camel:routeContext> 
<cxf:rsServer id="getSampleHoliDay" loggingFeatureEnabled="true" 
    serviceClass="com.nucleus.rest.consumer.RestConsumerImpl"> 

    <cxf:providers> 
     <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" /> 
    </cxf:providers> 
</cxf:rsServer> 
<!--Create receipt REST service Producer service client --> 
<cxf:rsClient id="getSampleHoliDayClient" 
    address="http://10.*.*.*:*/sample-integration/rest/" 
    loggingFeatureEnabled="true"> 
    <cxf:providers> 
     <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" /> 

    </cxf:providers> 
</cxf:rsClient> 

Consumer bei Integration:

import java.util.Map; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("/") 
public interface RestConsumer 
{ 

    @GET 
    @Path("/getSampleRequest") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Map<String, Object> getSampleResponse(); 
} 

Jetzt, wenn ich @Path machen ("/ *") es wird nicht funktionieren. Ich möchte einen einzelnen RestConsumer erstellen, der in der Lage sein soll, alle Ruheanforderungen zu erfassen und entsprechend weiterzuleiten.

Antwort

2

Verwenden Sie einen Standard-Jetty-HTTP-Listener und leiten Sie dann Anforderungen an verschiedene Handler weiter. Sie müssen die REST-Aktionen und die Zuordnung selbst übernehmen oder den REST-DSL verwenden.

Siehe die Einstellung 'matchOnUriPrefix' von Kamel-Anlegesteg: http://camel.apache.org/jetty.html

REST DSL: http://camel.apache.org/rest-dsl.html

Verwandte Themen