我有一個駱駝路由配置爲從JMS隊列讀取並將其發佈到服務。 我的路線是:使用Camel發出POST請求
from("jms:queue")
.marshal()
.json(JsonLibrary.GSON)
.setHeader(Exchange.CONTENT_TYPE,constant("application/json"))
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.process(new Processor1())
.to("https4:xxxxxx?throwExceptionOnFailure=false")
.process(new MyProcessor())
我的配置:
HttpComponent httpc = getContext().getComponent("http4",HttpComponent.class);
httpc.setHttpConfiguaration(customHttpConfig())
和customHttpConfig設置我的身份驗證信息。
我從服務器收到400錯誤。但是我能夠從Postman API中打開服務器並獲得成功響應。
在我的Processor1類(發出請求之前)中,我能夠打印郵件正文,其中包含我的對象的json表示。
但在POST請求後的處理器,我這樣做並獲得如下對策:
Message in = exchange.getIn();
in.getBody(String.class); // print the error code 400
HttpServletRequest request = in.getBody(HttpServletRequest.class)// This is null.
什麼,我做錯了什麼?我是否需要將郵件內容設置爲我的發佈請求的正文?
A 400意味着錯誤的請求。所以這意味着您的請求消息或您的URI是錯誤的。服務器日誌是否顯示您的請求已發送並且看起來正確?關於服務器收到的標題呢? –
我無法訪問服務器日誌。正如我所提到的,我從exchange.in獲得的請求對象爲null。 –
這是來自服務器的響應,如果你的意思是400錯誤的請求?最簡單的可能是設置自己的本地服務器並首先進行測試。通過這種方式,您可以在進行集成測試之前準確查看接收到的標題以及機構的外觀。這裏是一個簡單的服務器玩http://tinyserver.sourceforge.net/ –