我尝试在java中学习rest webservice。我写了一个服务器jboss。我可以从服务器获取列表,但无法将对象发布到服务器。我尝试使用 restclient 发布。这是成功的。第一个块是获取,第二个块是发布,最后一个块是来自客户端的请求。客户端项目是普通的java项目。它不是 web、jboss 或者它不像 jackson lib。如何将对象作为 JSON 发布以从 Jax RS 客户端添加到服务器?
@GET
@Path("/categories")
@Produces(MediaType.APPLICATION_JSON)
public List<CategoryVO> getAllCategories(){
List<Category> cats = entityManager.createQuery("select c from Category c").getResultList();
ArrayList<CategoryVO> results = new ArrayList<CategoryVO>();
for (Category c : cats) {
results.add(new CategoryVO(c.getTitle(), c.getId()));
}
return results;
}
@POST
@Path("/categoryAdd")
@Consumes(MediaType.APPLICATION_JSON)
public void saveCategory(CategoryVO catVO){
System.out.println("Save Method is running");
Category cat = new Category(catVO.getTitle());
entityManager.persist(cat);
}
public static void main(String[] args) {
URL url = null;
HttpURLConnection con;
try {
url = new URL(
"http://localhost:8080/RestWS/rest/NetasRestWS/categories");
con = (HttpURLConnection) url.openConnection();
InputStreamReader reader = new InputStreamReader( con.getInputStream());
while(true){
int x =reader.read();
if(x==-1)
break;
System.out.print((char)x);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}