I'm developing a RESTful web-service using Jersey
. I am using maven
to manage my dependencies and eclipse
export method to create the jar
.
When running the jar on my Ubuntu
pc, everything is working fine, but when I'm executing the same jar on a remote Openshift
server I'm experiencing this weird thing:
- The server start and running, executing a
GET
request returns the expected answer. - Executing a
POST
method return a500 server error
, when on my local machine it returns the expected result.
Diving into this problem I have realised the following facts:
The last line the program is printing is validate.fullmessage: ...
and the correct String
message representation of the JSONObject
. The "1" line is not printed to the log. No exception is thrown or written to the log as well!
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();
}
...
}
Moreover, whenever I return 200 ok
or server error
I'm writing it to the log, but no error is written to the log. It seems like the server return 500 server error
with no reason and not from my code...
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;
}
The "finished" is also not written to the log. Can anyone help me figure out this weird behaviour?