2010-12-03 47 views
0

使用Jettison提供程序。apache wink jettison

public Set getClasses() { 
    Set s = new HashSet(); 
    s.add(DatabaseResource.class); 
    return s; 
    } 
    public Set<Object> getSingletons() { 
    Set s = new HashSet(); 
    JettisonJAXBProvider jaxbProvider = new JettisonJAXBProvider(); 
    jaxbProvider.setUseAsReader(true); 
    jaxbProvider.setUseAsWriter(true); 
    return s; 
    } 

服務器代碼:

@POST 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
public Book post(Book inMessage) { 
    System.out.println("entered post method"); 
     Book outMessage = new Book(); 
     outMessage.setAuthur("Shiva:"+inMessage.getAuthur()); 
     outMessage.setBookId("500"); 
     outMessage.setBookName("SHIVA THE GREAT"); 

     return outMessage; 

} 

客戶端代碼:

Resource resource = client.resource("http://localhost:8080/CoeeServer/rest/book"); 

    Book book = new Book(); 
     book.setAuthur("author--Shiva."); 
     book.setBookId("500"); 
     book.setBookName("Shiva the great"); 




     Book response1 = resource.contentType(MediaType.APPLICATION_XML).accept(MediaType.APPLICATION_XML).post(Book.class,book); 

這是調用正確的方法是什麼? 任何人都可以有任何建議。


我收到以下錯誤。

找不到類型爲{0}和媒體類型爲{1}的javax.ws.rs.ext.MessageBodyWriter。驗證所有實體提供者是否正確註冊。

回答

1

我解決了我的問題。問題出在jaxb註釋被@XmlRootElement取代。這可能會幫助其他人發佈我的解決方案。

相關問題