繁体   English   中英

Google Http客户端库Java:com.fasterxml.jackson.core.JsonParseException:意外字符(“ G”

[英]Google Http Client Library java: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('G'

我正在发出HTTP get请求,这给了我JSON响应:

{ time : 1345111524000
  sub : Test vote
  msg :
  remain : 420
  cur_time : 1345113672856
  ver : 1.2.2
  p_type : 0
  .....

我正在使用Java的Google HTTP客户端库

我的实施

static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
static final JsonFactory JSON_FACTORY = new JacksonFactory();

public static class PollInfo{
    @Key("time")
    public String time;

    @Key("sub")
    public String sub;

    @Key("msg")
    public String msg;

    .
    .
    }

    public static class PollInfoUrl extends GenericUrl{
       public PollInfoUrl(String encodedUrl) {
         super(encodedUrl);
       }
    }

    public PollInfo getPollInfo()  throws Exception{
     HttpRequestFactory requestFactory =HTTP_TRANSPORT.createRequestFactory(
                     new         HttpRequestInitializer() {
          @Override
          public void initialize(HttpRequest request) {
            request.setParser(new JsonObjectParser(JSON_FACTORY));
          }
    });
     PollInfoUrl url = new PollInfoUrl("http://**IP**:8000/web1/num1?cmd=en_poll_info&src=src_web&ver=default&deviceToken=DUMMYDEVICETOKEN&ref_id=83f2491d-0b0c-4d1c-8a14-053256cf157a&p_type=0&p_creator=Wp&eid=3&sender=Wp";);
     HttpRequest request = requestFactory.buildGetRequest(url);
     PollInfo pollInfo = request.execute().parseAs(PollInfo.class);
     return pollInfo;
}//getPollInfo();

我可以解析项目中的其他URL,但是对于这种特殊情况,它给了我例外,因此我需要一些指导来对其进行修复。 以下是我的服务器异常日志

[WARN] Exception while dispatching incoming RPC call
com.google.gwt.user.client.rpc.SerializationException: Type 'com.fasterxml.jackson.core.JsonParseException' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = com.fasterxml.jackson.core.JsonParseException: Unexpected character ('Q' (code 81)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@481a98fe; line: 1, column: 2]
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:667)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:153)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:587)
    at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:605)
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:393)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:579)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
    at hello.common.ui.gwt.server.GWTCacheControlFilter.doFilter(GWTCacheControlFilter.java:50)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

请指导我我要去哪里了。 :) 提前致谢。

您收到的JSON似乎无效。 它缺少引号和逗号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM