2013-12-14 18 views
5
में जर्सी का उपयोग कर

मैं बाकी webservices develeop को Jersy उपयोग कर रहा हूँ, यह मेरा सरल कोड है:

javax.servlet.ServletException: Servlet.init() for servlet jersey-serlvet threw exception 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 

और मूल कारण है:

com.sun.jersey.spi.inject.Errors$ErrorMessagesException 
com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170) 
com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136) 
com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199) 

कोई मुझे मार्गदर्शन कर सकते हैं, क्या इस एर का कारण बनता है ROR? मुझे इस त्रुटि संदेश को समझना मुश्किल लगता है क्योंकि यह डीबग करने के लिए कोई उपयोगी जानकारी प्रदान नहीं करता है।

यह मेरा web.xml

<servlet> 
    <servlet-name>jersey-serlvet</servlet-name> 
    <servlet-class> 
       com.sun.jersey.spi.container.servlet.ServletContainer 
      </servlet-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>com.test/param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>jersey-serlvet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

मैं जर्सी 1.8 का उपयोग कर रहा है, JDK 1.7 और अनुप्रयोग बिलाव 7.0 पर चल रहा है। यदि आवश्यक हो तो मैं अधिक जानकारी प्रदान कर सकता हूं।

उत्तर

3

आपका प्रश्न एक डुप्लिकेट प्रतीत होता है और शायद इसे उचित रूप से संबोधित किया गया है। मुझे कुछ समय पहले भी यही समस्या थी। Click here to see the accepted answer that resolved it for me

और मामले में आप लिंक, सब से पहले का पालन करने के लिए अनिच्छुक रहे हैं, jersey-multipart.jar और अपनी परियोजना के पुस्तकालयों के लिए mimepull.jar जोड़ने की कोशिश ... और अगर अपनी परियोजना एक Maven परियोजना है, तो निम्न निर्भरता को जोड़ने आपके pom.xml पर। mimepull निर्भरता इसके साथ जहाज भेजनी चाहिए।

<dependency> 
    <groupId>com.sun.jersey.contribs</groupId> 
    <artifactId>jersey-multipart</artifactId> 
    <version>1.8</version> 
</dependency> 

सुनिश्चित करना है कि jersey-multipart जिसे आप उपयोग के संस्करण है, कि तुम परियोजना में उपयोग कर रहे हैं jersey के संस्करण के समान है याद रखें।

बस के मामले में ऊपर समाधान आपकी समस्या का समाधान नहीं होता है, आप और अधिक उपयोगी टिप्स के लिए भी here को देखने के लिए चाहते हो सकता है। चीयर्स!

0

अपने web.xml

<servlet> 
    <servlet-name>jersey-serlvet</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>com.rest.portal</param-value> 
    </init-param> 
    <init-param> 
     <param-name>jersey.config.server.provider.scanning.recursive</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>jersey.config.server.provider.classnames</param-name> 
     <param-value>com.rest.portal.HelloWord</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>jersey-serlvet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

में संदर्भ

Jersey Application Deployment and Runtime Environments

पर निर्भरता को जोड़े जर्सी 1.x में केवल 2.x श्रृंखला में

<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 

का उपयोग कर

का उपयोग करें
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 

और जोड़ने के लिए आवश्यक jersy जार फ़ाइलों

  1. एएसएम-5.0.2.jar
  2. जर्सी-आम।जार
  3. जर्सी-सर्वलेट कंटेनर-core.jar
  4. जर्सी-सर्वलेट-container.jar
  5. जर्सी-server.jar एनोटेशन @Path टकरा के लिए
3

चेक। यह एक ही त्रुटि के साथ परिणाम देगा। पथ समस्याओं को संप्रेषित करने के लिए यह एक अजीब त्रुटि है, लेकिन आप मेल खाने वाले पथों का नाम बदलकर आसानी से इसका परीक्षण कर सकते हैं।

नीचे

कोड में पथ भुना कुछ वर्ग

@Path("/storage") 
public class BookingRestService { 

@GET 
@Path("/bookings") 
@Produces(value = MediaType.APPLICATION_XML) 

और एक अन्य वर्ग

@Path("/storage") 
public class StorageRestService { 

@Path("/storage") की किसी भी समस्या का नाम बदलने तक का उदाहरण अपने काम प्रगति क्षीण छीन लेता है।

0

एक और उपयोग-मामला, जो एक ही अपवाद का कारण बनता है, जिसने मेरा कोड तोड़ दिया। आप इस तरह संसाधन लिखने के लिए थे, तो:

public String getPOST(@QueryParam("type") Character type){} 

निम्नलिखित डेटा प्रकार, Character, अपवाद का कारण होगा।

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