2017-06-15 6 views
0

Ich habe eine Anwendung mit Kamel-Rest-Komponente. Ursprünglich verwende ich die camel Version v2.17.0 und jeder Rest-Endpunkt gibt beim Aufruf den http-Rückkehrcode 200 zurück.Apache Camel - Spring Rest Endpunkt Referenz

Eines Tages, wenn ich die Camel-Version meiner Anwendung auf v2.18.0 (ohne weitere Änderungen) aktualisiere, gibt der rest endpoint den HTTP-Returncode 404 beim Aufruf zurück. Der gleiche Fall passiert für v2.18.4 und v2.19.0.

Ich bezweifle, dass es eine Änderung in der Ruhelenkpunktpfadreferenz über Spring gibt. Kann jemand mein Setup korrigieren? Die Problemumgehung, die ich verwende, ist, Hardcode String zurück zu Spring zu verschieben, der meiner Absicht nicht entspricht.

Frühling Einrichtung für Ruhedienst

<endpoint id="httpAppRouteBuildRemainPath" uri="#{commonUtilService.getEpUtil().getHTTPAppJsonBuildRemainPath()}" /> 
<endpoint id="httpSysRouteBuildRemainPath" uri="#{commonUtilService.getEpUtil().getHTTPSysJsonBuildRemainPath()}" /> 
<endpoint id="httpJsonBuildManagementRouteEndPoint" uri="#{commonUtilService.getEpUtil().getHTTPJsonBuildManagementRouteEndpointPath()}" /> 

<rest path="#commonUtilService.getEpUtil().getHTTPJsonManagementRestPath()"> 
     <put uri="ref:httpAppRouteBuildRemainPath" id="appHttpRouteReceiver"> 
       <to uri="ref:httpJsonBuildManagementRouteEndPoint"/> 
     </put> 
     <put uri="ref:httpSysRouteBuildRemainPath" id="sysHttpRouteReceiver"> 
       <to uri="ref:httpJsonBuildManagementRouteEndPoint"/> 
     </put> 
</rest> 

Java-Setup

public String getHTTPJsonManagementRestPath() { 
     return "/worker/json"; 
} 

public String getHTTPAppJsonBuildRemainPath() { 
     return "/app/build"; 
} 

public String getHTTPSysJsonBuildRemainPath() { 
     return "/sys/build"; 
} 

Testergebnis

Unter Kamel Version v2.17.0

7. Juni 2017 11.10.16 org.restlet.engine.log.LogFilter afterHandle

INFO: 2017.06.07 11.10.16 0: 0: 0: 0: 0: 0: 0: 1 - - 9395 PUT /Arbeiter/json/app/build - - -

Unter Kamel Version v2.18.0

7. Juni 2017 11:11:33 AM org.restlet.routing.Template getRegexPattern

WARNUNG: Leere Mustervariablen sind nicht erlaubt: null 7. Juni 2017 11.11.33 org.restlet.routing.Template getRegexPattern

WARNUNG: Leere Mustervariablen sind nicht erlaubt: null 7. Juni 2017 11.11.33 org.restlet.routing.Template getRegexPattern

WARNUNG: Leere Mustervariablen sind nicht erlaubt: null 7. Juni 2017 11.11.33 org.restlet.routing.Template getRegexPattern

WARNUNG: Leere Mustervariablen sind nicht zulässig : null Jun 07, 2017 11:11:33 AM org.restlet.engine.log.LogFilter afterHandle

INFO: 2017.06.07 11.11.33 0: 0: 0: 0: 0: 0: 0: 1 - - 9395 PUT/Arbeiter/json/app/build - - -


aktualisieren

ich die Feder Setup

<rest path="/worker/json"> 
    <put uri="/app/build" id="appHttpRouteReceiver"> 
     <to uri="ref:httpJsonBuildManagementRouteEndPoint"/> 
    </put> 
    <put uri="ref:httpSysRouteBuildRemainPath" id="sysHttpRouteReceiver"> 
     <to uri="ref:httpJsonBuildManagementRouteEndPoint"/> 
    </put> 
</rest> 
zu

ändern

Tester

Unter Kamel Version v2.18.0

26 Jun, Jahr 2017 10.12.50 org.restlet.engine.log.LogFilter afterHandle

INFO: 2017- 06-26 10.12.50 0: 0: 0: 0: 0: 0: 0: 1 - - 9395 PUT/Arbeiter/json/ref: httpSysRouteBuildRemainPath - - -

Juni 2017 10.14.54 org.restlet.engine.log.LogFilter afterHandle

INFO: 2017.06.26 10.14.54 0: 0: 0: 0: 0: 0: 0: 1 - - 9395 PUT/Arbeiter/json/app/bauen - Jakarta Commons-Httpclient/3.1 -

26. Juni 2017 10.18.53 org.restlet. engine.log.LogFilter afterHandle

INFO: 2017-06-26 10:18:53 0: 0: 0: 0: 0: 0: 0: 1 - - 9395 PUT/Arbeiter/JSON/sys/build - Jakarta Commons-Httpclient/3.1 -

+0

Sie haben 2 x gesetzt, die mit dem gleichen Pfad enden würde, sollten Sie verschiedene Pfade verwenden oder nur 1 put –

+0

@ClausIbsen Sieht so aus, als ob der Restendpunkt 'ref: httpSysRouteBuildRemainPath' als Pfad verwendet, anstatt die Endpunktreferenz nachzuschlagen. Gibt es irgendeine Methode, die ich tun kann, um den Wert von Java Seite zu setzen? – hk6279

+0

Verwenden Sie '{{xxx}}' für Eigenschaftenplatzhalter: http://camel.apache.org/using-propertyplaceholder.html –

Antwort