Код: Выделить всё
@XmlRootElement
public class Person {
private int id;
private String fname;
private String lname;
// getter and setter
}
Код: Выделить всё
@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 ===========");
}
Код: Выделить всё
@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 ===========");
}
Код: Выделить всё
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
Вывод LoggingFilter:
Код: Выделить всё
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 Request
type[/b] Status report
[b]message[/b] [u]Bad Request[/u]
[b]description[/b] [u]The request sent by the client was syntactically incorrect (Bad Request).[/u]
Apache Tomcat/7.0.27
Код: Выделить всё
Mar 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)
[*]activation.jar
[*]asm- 3.1.jar
[*]commonj.sdo-2.1.1
[*]eclipselink-2.6.0-RC1
[*] jackson-jaxrs-1.7.1
[*]javax.json-1.0.4
[*]javax.persistence-2.1.0
[*]jaxb-api
[*]jersey-apache-client-1.8
[*]jersey-bundle-1.8
< li>jersey-client-1.8
[*]jersey-core-1.8
[*]jersey-json-1.8
[*] jersey-server-1.8
[*]jsr173_1.0_api
[*]jstl-1.2
[*]org.eclipse.persistence. moxy-2.6.0-RC1
[*]servlet-api-2.5
[*]validation-api-1.1.0.Final
Подробнее здесь: https://stackoverflow.com/questions/289 ... est-jax-rs