[英]Camel-CXF REST: How to send to CXF web service more than one parameter on payload in REST client?
I have a CXF web service with exactly one parameter that should be sent on the payload. 我有一个CXF Web服务,其中恰好有一个参数应该在有效负载上发送。 All the other parameters are sent on the URL:
所有其他参数都在URL上发送:
Parameter class: 参数类别:
class Book
{
String name;
String author;
//getters, setters
}
Service: 服务:
@Post
@Path("/addBook/{roomId}/{bookId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@WebResult(name = "addBookResponse")
public LibraryResponse addBook(
@PathParam("roomId") @WebParam(name = "roomId") String roomId,
@PathParam("bookId") @WebParam(name = "bookId") String bookId,
@WebParam(name = "book") Book book);
The payload I send in the REST client: 我在REST客户端中发送的有效负载:
{
"name":"War and Peace",
"author":"Lev Tolstoy"
}
In this simple case it works. 在这种简单的情况下,它可以工作。 :)
:)
Now, I have another CXF web service method with two parameters that should be sent on the payload: 现在,我有另一个带有两个参数的CXF Web服务方法,应该在有效负载上发送该参数:
@PUT
@Path("/replaceBook/{roomId}/{bookId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@WebResult(name = "replaceBookResponse")
public LibraryResponse replaceBook(
@PathParam("roomId") @WebParam(name = "roomId") String roomId,
@PathParam("bookId") @WebParam(name = "bookId") String bookId,
@WebParam(name = "originalBook") Book originalBook,
@WebParam(name = "newBook") Book newBook);
What should I send as the payload? 我应该发送什么作为有效载荷? I have tried to send the following payload but it did not work.
我尝试发送以下有效负载,但是它没有用。
[
{
"name": "The Da Vinci Code",
"author": "Dan Brown"
},
{
"name": "War and Peace",
"author": "Lev Tolstoy"
}
]
Probably the following is how to do it: 可能是以下方法:
https://stackoverflow.com/a/13253070/784980 https://stackoverflow.com/a/13253070/784980
https://cwiki.apache.org/confluence/display/CXF20DOC/JAX-RS+Multiparts https://cwiki.apache.org/confluence/display/CXF20DOC/JAX-RS+Multiparts
https://ext2xhb.wordpress.com/2011/06/08/using-cxf-attachment-safely/ https://ext2xhb.wordpress.com/2011/06/08/using-cxf-attachment-safely/
Try this: 尝试这个:
{
"originalBook": {
"name": "The Da Vinci Code",
"author": "Dan Brown"
},
"newBook": {
"name": "War and Peace",
"author": "Lev Tolstoy"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.