我正在使用Jersey
開發RESTful web服務。我正在使用maven
管理我的依賴關係,使用eclipse
導出方法創建jar
。 當運行在我的電腦Ubuntu
罐子,一切工作正常,但是當我在執行遠程Openshift
服務器上的同一個jar我遇到這個奇怪的事情:在遠程計算機上執行jar失敗
- 服務器啓動並運行,執行一個
GET
請求返回預期的答案。 - 執行
POST
方法返回500 server error
,在本地機器上返回預期結果。
潛水到這個問題,我已經實現了以下事實:
最後一行的程序是打印validate.fullmessage: ...
和JSONObject
正確String
消息表示。 「1」行不會打印到日誌中。沒有異常被拋出或寫入日誌中!
public static boolean validate(String fullMessage) {
...
try {
System.out.println("validate.fullmessage: " + fullMessage);
JSONObject jsonMessage = new JSONObject(fullMessage);
System.out.println("1");
...
} catch (Exception e) {
System.out.println("validation exception");
e.printStackTrace();
}
...
}
此外,每當我回200 ok
或server error
我把它寫進日誌,但沒有錯誤被寫入日誌。這似乎是沒有理由,而不是從我的代碼服務器返回500 server error
...
RESTHandler:
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("/createPlayer")
public Response createUser(String strPlayer) {
System.out.println("createPlayer. strPlayer: " + strPlayer);
Response r;
System.out.println("validating");
if (!ValidateHandler.validate(strPlayer)) {
System.out.println("validation failed!");
r = Response.serverError().build();
}
...
System.out.println("finished");
return r;
}
「完成」,也沒有寫入日誌。 任何人都可以幫我弄清楚這種奇怪的行爲嗎?
請問您可以提供Openshift服務器控制檯日誌嗎?不同的服務器有時會給出不同的輸 –
如果GET在Openshift中可用,那麼在任何測試GET處理程序方法中嘗試驗證方法,以瞭解在Openshift服務器中POST請求處理是否不同。請看看這個:https://developers.openshift.com/en/managing-environment-variables.html –
你可能會在該行中得到一些RuntimeError。 _只是暫時地改變你的異常處理來捕捉'Throwable',除了'Exception',並且看看你是否得到任何錯誤記錄。 –