public class Person {
private int id;
private String fname;
private String lname;
// getter and setter
}
< /code>
REST -Post -Dienst < /p>
@POST
@Consumes({MediaType.APPLICATION_JSON})
public void createPerson(JAXBElement
person) {
Person p = person.getValue();
System.out.println("========= Person ===========");
System.out.println(p.getFname() + " " + p.getLname());
System.out.println("========= Person ===========");
}
< /code>
Oder dieses < /p>
@POST
@Consumes({MediaType.APPLICATION_JSON})
public void createPerson(Person person) {
System.out.println("========= Person ===========");
System.out.println(person.getFname() + " " + person.getLname());
System.out.println("========= Person ===========");
}
< /code>
Test Client: Immer 400 zurückgeben - schlechte Anfrage. < /p>
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource("http://localhost:8084/rest/api/person");
Person person = new Person();
person.setId(1);
person.setFname("John");
person.setLname("Doe");
ClientResponse resp = service.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, person);
System.out.println(resp.getStatus()); //Always return 400 - Bad request
< /code>
Jede Hilfe wird sehr geschätzt. Übrigens verwende ich Jersey 1.8. Ich kann es in der neuesten Jersey -Version funktionieren lassen, aber ich muss es auch in der vorherigen Version von Jersey funktionieren.Mar 10, 2015 7:47:24 AM com.sun.jersey.api.client.filter.LoggingFilter log
INFO: 1 * Client out-bound request
1 > POST http://localhost:8084/rest/api/person
1 > Content-Type: application/json
{"fname":"d","id":"0","lname":"d"}
Mar 10, 2015 7:47:24 AM com.sun.jersey.api.client.filter.LoggingFilter log
INFO: 1 * Client in-bound response
1 < 400
1 < Date: Mon, 09 Mar 2015 23:47:24 GMT
1 < Content-Length: 1004
1 < Connection: close
1 < Content-Type: text/html;charset=utf-8
1 < Server: Apache-Coyote/1.1
1 <
Apache Tomcat/7.0.27 - Error report HTTP Status 400 - Bad Requesttype Status report
message Bad Request
description The request sent by the client was syntactically incorrect (Bad Request).
Apache Tomcat/7.0.27
< /code>
Apache Tomcat -Serverprotokollausgabe: (Ich glaube nichtMar 10, 2015 7:29:20 AM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /billing threw load() exception
javax.servlet.ServletException: missing jspFile
at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:123)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1585)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
< /code>
Abhängigkeiten (JARs): < /p>
- Activation.jar
commonj.sdo-2.1.1 - eclipselink-2.6.0-rc1
- Jackson-Jaxrs-1.7.1 < /li>
javax.json-1.0.4 - javax.persistence-2.1.0
- jaxb-api < /li>
jersey-apache-client-1.8 - jersey-bundle-1.8
< li> jersey-client-1.8 < /li> - jersey-core-1.8
- jersey-json-1.8
- Jersey-server-1.8 < /li>
JSR173_1.0_API - JSTL-1.2
- org.eclipse.perssistence. Moxy-2.6.0-Rc1 < /li>
Servlet-api-2.5 - validation-api-1.0.final