私はJavaでRESTWebサービスを学ぼうとしています。サーバーjbossを作成しました。サーバーからリストを取得できますが、サーバーにオブジェクトを投稿できません。restclientで投稿しようとしています。これは成功です。最初のブロックはget、2番目のブロックはpost、最後のブロックはクライアントからのリクエストです。クライアントプロジェクトは通常のJavaプロジェクトです。これは、Web、jboss、またはjacksonlibのようなものではありません。Jax RSクライアントからサーバーに追加するためにオブジェクトをJSONとして投稿するにはどうすればよいですか?
@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();
}
}