嘿所以我正在尝试将一些json-object发送到其他Web服务,然后获取某些特定键的值,然后处理数据以最终返回一个新的json-object,它将在另一个中使用地点。无论如何,当我尝试与服务通信时,我正在获取HTTP 204。
我的休息服务看起来像这样
@Path("/example")
public class PdfMaker {
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response PruebasMet(JSONObject json) throws IOException, JSONException{
try{
String xml = json.getString("xml");
String plantilla = json.getString("plant");
//method that uses "xml" and "plant" and returns "pdf"
JSONObject response = new JSONObject();
response.put("pdf", pdf);
return Response.status(200).entity(pdfb64.toString()).build();
}catch(Exception e){
e.getStackTrace();
return null;
}
}
我试图与此沟通
public class Jersey {
public static String baseuri = "http://localhost:8080/PdfMakerGF/rest/example/post";
public static void main(String[] args) {
try {
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource webResource = client.resource(baseuri);
JSONObject objTest = new JSONobject();
objTest.put("xml","Data1");
objTest.put("plan", "Data2");
ClientResponse res = webResource.header("Content-Type","application/json;charset=UTF-8")
.post(ClientResponse.class, objTest.toString());
System.out.println("output..." + "\n");
System.out.println("Answer "+res);
} catch (Exception e) {
e.printStackTrace();
}
}
但我收到的回复就是这个
回答POST http://localhost:8080/PdfMakerGF/rest/example/post 返回的响应状态为204 No Content
显然有些不对劲但看不出它是什么。 因为我坚持这个。任何形式的帮助将不胜感激。 我正在使用netbeans 8.1,Glassfish 4.1和Jersey。 感谢
答案 0 :(得分:0)
如果您的服务器遇到异常并转到catch块,则返回null,对应于HTTP 204(No Content)。正如sisyphus评论的那样,服务器标准输出应该有一些例外。
所以你可能需要:
答案 1 :(得分:0)
很可能你会得到一个例外。我想这是因为你有"植物"在一个地方和"计划"在另一个。
答案 2 :(得分:0)
Class Aux{
String xml;
String plant;
//generate gettes and setters :)
}
@Path("/example")
public class PdfMaker {
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response PruebasMet(Aux json) throws IOException,
JSONException{
try{
String xml = json.getXml();
String plant = json.getPlant();
//method that uses "xml" and "plant" and returns "pdf"
JSONObject response = new JSONObject();
response.put("pdf", pdf);
return Response.status(200).entity(pdf)).build();
}catch(Exception e){
e.getStackTrace();
return null;
}
}
,客户是......
Client client = new Client();
WebResource wresource = client.resource("http://localhost:8080/PdfMakerGF/rest/example/post");
JSONObject json = new JSONObject();
json.put("xml", DATA);
json.put("plant", DATA);
ClientResponse response =
wresource.type("application/json").post(ClientResponse.class,
json.toString());
out = response.getEntity(String.class);
System.out.println("RES = "+response);
System.out.println("OUT = "+out);
out有服务提供的信息