Получение NullPointException с клиентом Jersey REST на Android - PullRequest
6 голосов
/ 21 декабря 2011

Мой код:

    Client client = Client.create();
    WebResource web_resource = client.resource("http://www.myhostname.com/");
    // String string = web_resource.path("foo").accept("text/xml").get(String.class);
    // Log.d(getClass().getCanonicalName(), "jax-rs client string = " + string);
    Num num = web_resource.path("foo").accept(MediaType.TEXT_XML_TYPE).get(Num.class);

Последняя строка вызывает проблему, и я получаю аналогичную проблему, если я заменяю ее на 2 закомментированные строки с той разницей, что я получаю исключение в другой строке MediaType.java.

E/AndroidRuntime(  840): Caused by: java.lang.NullPointerException
E/AndroidRuntime(  840):    at javax.ws.rs.core.MediaType.toString(MediaType.java:265)
E/AndroidRuntime(  840):    at com.sun.jersey.api.client.ClientRequest.getHeaderValue(ClientRequest.java:232)
E/AndroidRuntime(  840):    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.writeOutBoundHeaders(URLConnectionClientHandler.java:276)
E/AndroidRuntime(  840):    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:197)
E/AndroidRuntime(  840):    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
E/AndroidRuntime(  840):    ... 17 more

jersey-client.jar и jersey-core.jar были добавлены в пакет на верхнем уровне и добавлены в библиотеки в пути сборки.

AndroidManifest.xml содержит:

    <uses-permission android:name="android.permission.INTERNET" />

Ответы [ 2 ]

3 голосов
/ 31 декабря 2011

Это было огромное упражнение.Я полагаю, что я, возможно, единственный человек, который заставил Джерси + JAXB работать на Android.Конкретный ответ не поможет, потому что после того, как я обошел это исключение NullPointerException, у меня появилось еще одно исключение, а затем еще одно.

Мне пришлось изменить исходный код для Джерси и JAXB, чтобы это произошло.И мне также пришлось перепаковывать банки.

Извините, я знаю, что это плохой качественный ответ, но, пожалуйста, прокомментируйте меня, если кто-то действительно хочет пойти по этому трудному пути, и в этом случае я могу проследить свои шаги и помочь.

1 голос
/ 21 декабря 2011

У меня была такая же проблема с Джерси. Я перешел на Google Gson и все заработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...