我使用jersey-client來使用REST服務。 我需要請求的實體和Last-Modified標頭。jersey-client在NPE中拋出NPE ClientResponse.getLastModified()
所以我做到以下幾點:
ClientResponse response = webResource.get(ClientResponse.class);
Person person = response.getEntity(Person.class);
工程。我得到一個響應,我可以將實體(這是XML)編組到我的POJO中。 當我調試並查看響應的標題時,我發現有一個Last-Modified標題集。
但是,當我嘗試通過
response.getLastModified();
提取日期我在URLConnectionClientHandler得到了NPE的地方。
有沒有人有線索我做錯了什麼?
編輯:的要求跟蹤
java.lang.NullPointerException: null
at com.sun.jersey.api.client.ClientResponse.getLastModified(ClientResponse.java:647) ~[jersey-client-1.12.jar:1.12]
at a.o.u.user.dao.impl.uds.PersonenUdsClient.getPerson(PersonenUdsClient.java:103) ~[um-user-2.5.0-Beta1-SNAPSHOT.jar:na]
at a.o.u.user.dao.impl.UserDaoUdsImpl.mergeWithUdsUser(UserDaoUdsImpl.java:282) ~[um-user-2.5.0-Beta1-SNAPSHOT.jar:na]
at a.o.u.user.dao.impl.UserDaoUdsImpl.getUserWithEmail(UserDaoUdsImpl.java:124) ~[um-user-2.5.0-Beta1-SNAPSHOT.jar:na]
at ...
編輯:爲NPE建議我挖成的代碼。我想我找到了問題。除了球衣客戶端之外,我還有類路徑中的cxf。球衣和cxf均提供了一個名爲RuntimeDelegateImpl的課程。但CXFs版本不包含DateHeaderDelegate。我認爲RuntimeDelegateImpl的錯誤版本(CXFs)被拍攝。
現在我還沒有找到我可以如何明確設置RuntimeDelegateImpl使用。
給我們一個堆棧跟蹤。 – npe