我正在使用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',并且看看你是否得到任何错误记录。 –