2012-03-18 3 views
2

servicemix 4.4.1을 실행 중입니다. camel-http4를 사용하여 웹 사이트에 http 호출을하려고합니다. 아무리 호출을 시도하는 웹 사이트, 나는이 오류가없는 계속 : org.apache.camel.RuntimeCamelException : org.apache.camel.component.http.HttpOperationFailedException : 여기에 405상태 코드 405로 org.apache.camel.component.http.HttpOperationFailedException 받기

: HTTP 작업은에 statusCode와 http://servicemix.apache.org/downloads/servicemix-4.4.0.html를 호출 실패 내 코드입니다 : 내가 사이트의 숫자를 시도하고 다른 HTTP 메소드 (GET 대 이후)를 사용하여 시도

<camelContext xmlns="http://camel.apache.org/schema/spring"> 
    <route> 
    <from uri="activemq://events1"/> 
<setHeader headerName="CamelHttpMethod"> 
    <constant>POST</constant> 
</setHeader> 
    <to uri="http://servicemix.apache.org/downloads/servicemix-4.4.0.html"/> 
    <to uri="log:events"/> 
    </route> 
</camelContext> 

, 그리고 내가 같은 오류가 점점 계속. 어떤 생각? 미리 감사드립니다.

답변

1

지정한 웹 사이트가 양식의 대상이 아닙니다. 따라서 POST가 아닌 GET 요청 만 허용 할 가능성이 큽니다. CamelHttpMethod를 GET으로 설정하십시오.

btw. 당신은 당신의 노선으로 무엇을 달성하기를 원합니 까? 웹 사이트에 activeMQ 메시지를 보내려면 POST는 괜찮지 만 POST를 허용하는 웹 사이트를 사용해야합니다.

요청을 수신 할 자체 경로를 정의하여이를 달성 할 수 있습니다.

그런 다음 첫 번째 경로에서 해당 URL로 보낼 수 있습니다.

+0

도움 주셔서 감사합니다. 이상한 것은 CamelHttpMethod를 정의하지 않으면 http 메서드가 GET으로 간주 될 것이라고 생각한 것입니다. 나는 POST 대신 명시 적으로 GET 메소드를 설정하려고 시도했다. 다시 한번 귀하의 도움에 감사드립니다. – emmitt1219

+0

Camel은 url을보고 어떤 http 메소드를 사용하는지 추측합니다. 따라서 기본적으로 get을 사용하지는 않습니다. http://camel.apache.org/http.html "GET 또는 POST를 사용하여 호출"섹션의 알고리즘을 참조하십시오. –

1

나는 이것을 검사했다. 'bridgeEndpoint'옵션으로 해결되는 문제입니다. http 엔드 포인트를 bridgeEndpoint로 설정하면 요청 URI가 요청 URI로 갱신됩니다.

<route> 
    <from uri="-------"/> 
    <to uri="jetty://http://localhost:9090/my.html?bridgeEndpoint=true"/ 
    <to uri="log:events"/> 
</route> 
+0

이것은 정확하게 나의 문제였습니다. 이 답변을 주셔서 감사합니다 (+1). – Luixv