尝试使用Jersey客户端时出现空指针异常

时间:2012-05-23 09:09:35

标签: java osgi jersey

我正在尝试使用Jersey客户端来访问远程Web服务。这是我发出请求的代码:

Client client = Client.create();
WebResource resource = client.resource(request.getUrl());

Builder builder = resource.accept("application/json");
String response = builder.post(String.class, request.getPayload());

我已将其捆绑到OSGi包中并将其安装在Adobe CQ CMS上。

尝试在CMS中运行请求代码时,我得到以下stacktrace:

Caused by: java.lang.ExceptionInInitializerError
at com.sun.jersey.core.spi.factory.MessageBodyFactory.getMessageBodyWriterMediaTypes(MessageBodyFactory.java:444)
at com.sun.jersey.api.client.RequestWriter.getMediaType(RequestWriter.java:324)
at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:282)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:204)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
at com.sun.jersey.api.client.Client.handle(Client.java:648)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:680)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:568)
at com.myapp.auth.request.impl.HttpRequestSender.sendRequest(HttpRequestSender.java:44)
at com.myapp.auth.ws.clients.impl.AuthenticateClientImpl.authenticate(AuthenticateClientImpl.java:47)
at com.myapp.auth.Authenticator.authenticate(Authenticator.java:31)
at org.apache.jsp.apps.angry_002dnerds.components.page.base.content_jsp._jspService(content_jsp.java:155)
at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:420)
... 126 more

引起:java.lang.NullPointerException     在javax.ws.rs.core.MediaType.valueOf(MediaType.java:119)     在com.sun.jersey.core.header.MediaTypes。(MediaTypes.java:64)     ......还有142个

我环顾四周,看到其他人在不同平台上投放NullPointerExceptions的MediaType也有类似错误。

以前有人见过这个问题吗?

1 个答案:

答案 0 :(得分:-1)

根据Jersey deps,您需要在依赖项/类路径中包含jersey-json模块。