jersey restful com.sun.jersey.api.container.ContainerException:ResourceConfig实例不包含任何根资源类

时间:2016-05-26 08:17:15

标签: java angularjs eclipse rest maven

注意:同一问题的相关主题中的答案对我没有用。

我正在设计一个web应用程序,其中angularJS作为我的前端,java作为我的后端。我正在使用RESTful服务与我的java类进行通信。我使用Eclipse kepler作为我的IDE,Maven 2.0.2作为我的构建管理器和java 6.中的jersey 1.17.1。我也使用Websphere 7来部署资源。 这是我的maven文件夹结构: enter image description here

我的pom.xml中的代码段如下:

<dependency>
        <groupId>asm</groupId>
        <artifactId>asm</artifactId>
        <version>1.5.3</version>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17.1</version>
    </dependency>

我的web.xml也如下所示:

<web-app>
<display-name>KB</display-name>
<servlet>
<servlet-name>jersey-servlet</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>rest</param-value>
</init-param>

<init-param>
    <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
    <param-value>true</param-value>
</init-param>

<load-on-startup>1</load-on-startup>
</servlet>

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

</web-app>

以下是来自控制器的代码,用于调用服务的角度js:

 $scope.triggerDataRetrival=function(docName){
    alert("inside func");
    var url = "rest/retrieve/doc?name="+docName;
    $http.get(url).success( function(response) {
        $scope.docInfo = response;
     });

     }

最后我的服务课程如下:

package rest;


import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;


@Path("/retrieve")
public class retrieve {

@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/doc")
//@Produces(MediaType.APPLICATION_JSON)
public String getResponse(@QueryParam("name") String doctype){
    System.out.println("doctype:"+doctype);
    return "success";
}
}

我已经尝试了很多针对这个问题在多个线程上提出的建议但似乎没有任何效果。控制台中显示的错误是com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.。任何帮助都会非常棒。谢谢。

1 个答案:

答案 0 :(得分:0)

如果您尝试从web.xml中完全删除以下内容,它是否有效?

<init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>rest</param-value>
</init-param>