2012-11-08 12 views
13

नहीं है जब मैं अपाचे टॉमकैट पर जर्सी और मेवेन का उपयोग करके लागू हैलोवर्ल्ड रीस्टफुल वेब सेवा को हिट करने का प्रयास करता हूं तो मुझे निम्न अपवाद मिल रहा है।com.sun.jersey.api.container.ContainerException: ResourceConfig इंस्टेंस में कोई रूट संसाधन वर्ग

URL: http://localhost:8080/TestRest/rest/hello/abcd 

com.sun.jersey.api.container.ContainerException: ResourceConfig उदाहरण किसी भी जड़ संसाधन वर्गों शामिल नहीं है।

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

इसके बारे में कोई भी मदद की सराहना की जाती है।

के बाद यह सरल HelloWorldService है pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
     <modelVersion>4.0.0</modelVersion> 
     <groupId>my.test.rest</groupId> 
     <artifactId>TestRest</artifactId> 
     <packaging>war</packaging> 
     <version>0.0.1-SNAPSHOT</version> 
     <name>TestRest Maven Webapp</name> 
     <url>http://maven.apache.org</url> 
     <repositories> 
       <repository> 
       <id>maven2-repository.java.net</id> 
       <name>Java.net Repository for Maven</name> 
       <url>http://download.java.net/maven/2/</url> 
       <layout>default</layout> 
     </repository> 
    </repositories> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
      <groupId>com.sun.jersey</groupId> 
      <artifactId>jersey-server</artifactId> 
      <version>1.8</version> 
    </dependency> 
    </dependencies> 
    <build> 
    <finalName>TestRest</finalName> 
    </build> 
</project> 

का कोड है।

package com.rest; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.core.Response; 

@Path("/hello") 
public class HelloWorldService { 

    @GET 
    @Path("/{param}") 
    public Response getMsg(@PathParam("param") String msg) { 

     String output = "Hello, " + msg; 

     return Response.status(200).entity(output).build(); 

    } 

} 

और अंत में, web.xml

<web-app id="WebApp_ID" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>Restful Web Application</display-name> 

    <servlet> 
     <servlet-name>HelloServlet</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.rest</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>HelloServlet</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

मुझे आशा है कि मेरा निर्देशिका संरचना सही है भी, तो मुझे ठीक कर लें ऐसा नहीं है।

Directory Structure

उत्तर

16

तुम गलत स्रोत फ़ोल्डर में HelloWorldService.java है। यह src/main/java में में src/main/संसाधनों में होना चाहिए। यह एक बड़ा बड़ा अंतर है!

इसका मतलब है कि आपका जावा कोड संकलित नहीं किया गया है और यही कारण है कि आपको त्रुटि मिलती है। कोई वर्ग जो अनुरोध को संभाल सकता है।

Maven Standard Directory Layout पर एक नज़र डालें।

+1

धन्यवाद ... वास्तव में सराहना करते हैं! –

8

हां, मैवेन का उपयोग करते हुए जावा में रीस्टफुल वेब सेवाओं के विकास के दौरान एक्लिप्स इंडिगो में इसकी समस्या है क्योंकि यह सही निर्देशिका संरचना नहीं बनाती है। इसलिए, दिए गए स्रोत निर्देशिका को हटाने और स्रोत/स्रोत/जावा के रूप में स्रोत जोड़ने के रूप में सही तरीके से उल्लेख किया गया है सबसे अच्छा कामकाज है। तुम मुझे गलती की ओर इशारा करते के लिए Maven का उपयोग कर ग्रहण इंडिगो में जावा में RESTful वेब सेवाओं के विकास पर विस्तृत विवरण के लिए इस उल्लेख कर सकते हैं ...

http://kausalmalladi.blogspot.in/2012/11/developing-restful-java-web-service-in.html

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