2011-12-20 18 views
6
पर जर्सी बाकी क्लाइंट के साथ NullPointException हो रही

मेरे कोड है:एंड्रॉयड

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 

जर्सी-client.jar और जर्सी-core.jar शीर्ष स्तर पर पैकेज में जोड़ा गया है और निर्माण के रास्ते में पुस्तकालयों के लिए जोड़ा गया है।

AndroidManifest.xml शामिल हैं:

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

अभी भी उत्तर खोज रहे हैं। – necromancer

+0

मैं वास्तव में संशोधित कोड, कोई अपडेट देखना चाहूंगा? –

+0

@ स्पंज, खेद है कि मैं एक अलग ट्रैक पर हूं और एंड्रॉइड से संबंधित कुछ भी करने से कुछ सप्ताह पहले होगा। मैंने कोड-नियंत्रण का उपयोग नहीं किया और कोड कई अलग-अलग निर्देशिकाओं में है। अगर आप मुझे एक हफ्ते में याद दिलाते हैं तो मैं इसे प्राप्त कर सकता हूं लेकिन इस बीच, विचार करें: (1) एंड्रॉइड क्लासलोडर पैकेज स्तर एनोटेशन नहीं पढ़ सकता है जो जेएक्सबी को प्रारंभ करने से रोकता है; मैनुअल स्कैनिंग के साथ ठीक कर सकते हैं; वह कुंजी मुझे याद है; (2) कक्षाओं और उनकी कॉल को अलग-अलग पैकेजों में स्थानांतरित किया जाना था क्योंकि जावैक्स प्रतिबंधित है; (3) परिणाम एक बड़ी जार फ़ाइल थी जो वितरण – necromancer

उत्तर

3

यह एक बड़ा अभ्यास था। मेरा मानना ​​है कि मैं अभी तक एकमात्र व्यक्ति हो सकता हूं जिसने एंड्रॉइड पर काम कर रहे जर्सी + जेएक्सबी को प्राप्त किया है। एक विशिष्ट उत्तर मदद नहीं करेगा क्योंकि इस NullPointerException के आसपास मुझे मिलने के बाद मुझे एक और अपवाद मिला, और फिर दूसरा।

ऐसा करने के लिए मुझे जर्सी और जेएक्सबी के लिए स्रोत कोड बदलना पड़ा। और मुझे जारों को फिर से खोलना पड़ा।

क्षमा करें मुझे पता है कि यह एक खराब गुणवत्ता का जवाब है, लेकिन कृपया मुझे टिप्पणी करें यदि कोई वास्तव में इस कठिन पथ को नीचे जाना चाहता है तो मैं अपने कदमों को पुनः प्राप्त कर सकता हूं और मदद कर सकता हूं।

+0

आप जर्सी वापस कोड क्यों नहीं योगदान करते?बहुत से लोग बहुत खुश होंगे :) –

+0

जब मैं विकास के इस ट्रैक पर वापस आऊंगा तो मैं ऐसा करने का प्रयास करूंगा (मुझे सही अपडेटों को फिर से समझना और पहचानना/संक्षिप्त रूप से दस्तावेज करना होगा)। मैं अब कुछ और पर छेड़छाड़ कर रहा हूँ। सुझाव के लिए धन्यवाद :) – necromancer

+0

यह वास्तव में महान necromancer है मैं एक ही बिंदु पर अटक गया है ... क्या आप मेरी मदद कर सकते हैं? इस नाम से मुझे लगता है कि आप डोटा या जमे हुए सिंहासन प्रशंसक हैं –

1

मैं जर्सी के साथ एक ही मुद्दा था। मैंने Google Gson पर स्विच किया और सब कुछ ठीक से काम किया।

+0

के बजाय उपयोगकर्ता अपाचे एचटीपी क्लाइंट के लिए है, मुझे अपना समाधान जानने के लिए बहुत बहुत धन्यवाद - मैं पूरी तरह से छोड़ने और गैर- मानक पुस्तकालय मुझे एंड्रॉइड में एहसास है कि कोई दूसरा रास्ता नहीं हो सकता है लेकिन मैं स्विच करने से पहले पूरी तरह से सुनिश्चित होना चाहता हूं। – necromancer

+0

ओह, अगर आप संकल्प में रुचि रखते हैं तो कृपया प्रश्न को ऊपर उठाएं। – necromancer

+0

जर्सी की तुलना में जर्सी और मानक क्यों है? – Kevin