2012-10-29 74 views
0

我尝试使用Java创建JSON输出。
==================这是具有元素的对象的代码:=================== ===如何在JAVA中创建JSON输出

import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 
public class LoginMobileProperties { 

    private String username; 
    private boolean status; 
    private String message; 

    public LoginMobileProperties(){ 

    } 

    public String getUsername() { 
     return username; 
    } 
    public void setUsername(String username) { 
     this.username = username; 
    } 
    public boolean getStatus() { 
     return status; 
    } 
    public void setStatus(boolean status) { 
     this.status = status; 
    } 
    public String getMessage() { 
     return message; 
    } 
    public void setMessage(String message) { 
     this.message = message; 
    } 


} 

=================这是对URL调用get函数的类:========== =============

@GET 
    @Path("login") 
    @Produces("application/json") 
    public LoginMobileProperties setLogin(
      @QueryParam("name") String name, 
      @QueryParam("password") String password) { 



     servlerResponse.addHeader("Allow-Control-Allow-Methods", "POST,GET,OPTIONS"); 
     servlerResponse.addHeader("Access-Control-Allow-Credentials", "true"); 
     servlerResponse.addHeader("Access-Control-Allow-Origin", "*"); 
     servlerResponse.addHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With"); 
     servlerResponse.addHeader("Access-Control-Max-Age", "60"); 


     LoginMobileProperties loginMobileProperties = new LoginMobileProperties(); 

     loginMobileProperties.setUsername(name); 
     loginMobileProperties.setStatus("true"); 
     loginMobileProperties.setMessage("test3"); 





      return loginMobileProperties; 


    } 

=================这是完全错误代码当我打开网址:= ===========================

Okt 29, 2012 11:32:02 AM com.sun.jersey.spi.container.ContainerResponse write 
SEVERE: A message body writer for Java class LoginMobileProperties, and Java type class LoginMobileProperties, and MIME media type application/json was not found 
Okt 29, 2012 11:32:02 AM com.sun.jersey.spi.container.ContainerResponse write 
SEVERE: The registered message body writers compatible with the MIME media type are: 
application/json -> 
    com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App 
    com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$App 
    com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$App 
    com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App 
    com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App 
*/* -> 
    com.sun.jersey.core.impl.provider.entity.FormProvider 
    com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General 
    com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General 
    com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General 
    com.sun.jersey.json.impl.provider.entity.JSONWithPaddingProvider 
    com.sun.jersey.core.impl.provider.entity.StringProvider 
    com.sun.jersey.core.impl.provider.entity.ByteArrayProvider 
    com.sun.jersey.core.impl.provider.entity.FileProvider 
    com.sun.jersey.core.impl.provider.entity.InputStreamProvider 
    com.sun.jersey.core.impl.provider.entity.DataSourceProvider 
    com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General 
    com.sun.jersey.core.impl.provider.entity.ReaderProvider 
    com.sun.jersey.core.impl.provider.entity.DocumentProvider 
    com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider 
    com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter 
    com.sun.jersey.server.impl.template.ViewableMessageBodyWriter 
    com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General 
    com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General 
    com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy 
    com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General 
    com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General 

Okt 29, 2012 11:32:02 AM com.sun.jersey.spi.container.ContainerResponse logException 
SEVERE: Mapped exception to response: 500 (Internal Server Error) 
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class LoginMobileProperties, and Java type class LoginMobileProperties, and MIME media type application/json was not found 
    at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:285) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1437) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61) 
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126) 
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:76) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:317) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:924) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
Caused by: com.sun.jersey.api.MessageException: A message body writer for Java class LoginMobileProperties, and Java type class LoginMobileProperties, and MIME media type application/json was not found 
    ... 26 more 

什么是 我的错?

+1

这个答案似乎是同一个问题:我如何使用JSON泽西POJO支持] [1] [1]:http://stackoverflow.com/questions/5161466/how-do-i-use-the-jersey-json-pojo-support –

+0

这就是它。我添加了JAXBContextResolver类,它的工作。谢谢 :-) – PMe

回答