2017-06-13 24 views
7

मैं एक जर्सी एपीआई जो या तो XML या JSON (अनुरोध हेडर के आधार पर) देता है विकसित किया है फेंकता। जब मेरे विंडोज 2012 सर्वर (टोमकैट) पर तैनात किया गया, तो यह कोई समस्या नहीं काम करता है।लिनक्स पर जर्सी से Json रिटर्निंग अपवाद

जब मैं तैनात एडब्ल्यूएस (Glassfish) में एक Ubuntu मशीन के लिए (Ubuntu पर यह संकलन के बाद), जब मैं JSON का अनुरोध मैं निम्नलिखित त्रुटियाँ मिलती है:

The server encountered an internal error that prevented it from fulfilling this request. 

exception javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.persistence.jaxb.BeanValidationHelper 

root cause org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.persistence.jaxb.BeanValidationHelper 

root cause java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.persistence.jaxb.BeanValidationHelper 

कोई त्रुटि नहीं मैं एक्सएमएल का अनुरोध करते हैं।

मैं मूल रूप से JSON क्रमबद्धता के लिए Moxy उपयोग कर रहा था, लेकिन फिर जैक्सन का उपयोग शुरू किया।

कोई भी विचार क्यों यह एक सर्वर पर नहीं काम करते हैं और एक और चाहते हैं? धन्यवाद

+1

ग्लासफ़िश का एक बग हो सकता है। कृपया [इस पृष्ठ] का संदर्भ लें (https://stackoverflow.com/questions/33722764/glassfish-error-when-producing-json)। –

+0

@ कोहेइतुमुरा हाँ मैंने देखा। मुझे लगा कि उन्होंने इसे अभी तक तय कर लिया होगा। स्पष्ट रूप से नहीं ... – onefootswill

+0

क्या होगा यदि आप अपने सभी जर्सी से संबंधित निर्भरताओं को "प्रदान" के रूप में रखते हैं? याद रखें कि टॉमकैट में इसमें कोई जर्सी जार नहीं है, इसलिए कोई संघर्ष नहीं है। लेकिन ग्लासफ़िश _ does_ जर्सी है। तो आपके प्रोजेक्ट जार संघर्ष कर सकते हैं। तो आपको ग्लासफ़िश पर तैनाती करते समय उन्हें तैनाती से बाहर करना चाहिए, और ग्लासफ़िश द्वारा प्रदान किए गए लोगों का उपयोग करें। –

उत्तर

0

अंत में यह काम कर गया। सबसे पहले, ग्लासफ़िश नहीं, टोमकैट का प्रयोग करें।

फिर, नई निर्भरता जोड़ें:

<dependency> 
    <groupId>org.glassfish.jersey.inject</groupId> 
    <artifactId>jersey-hk2</artifactId> 
</dependency> 

मैं भी 2.26 करने के लिए जर्सी संस्करण उन्नत बनाया है, लेकिन मुझे नहीं लगता कि फर्क पड़ा है। बस इसे पूर्णता के लिए जोड़ना (जैसा हुआ था)।

मैं कारण यह काम करता है समझ में नहीं आता। मैंने हमेशा सोचा कि जावा विंडोज और लिनक्स पर भी चलता है। लेकिन हे, मैं सिर्फ एक गूंगा हूँ .NET लड़का।

आशा इस जो दूसरों के रूप में मैंने किया था इस मुद्दे पर लाचारी के एक गड्ढे में खुद को खोजने में मदद करता।

संबंधित मुद्दे