这里出了什么问题?
The ResourceConfig instance does not contain any root resource classes.
Dec 10, 2010 10:21:24 AM com.sun.jersey.spi.spring.container.servlet.SpringServlet initiate
SEVERE: Exception occurred when intialization
com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:103)
at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1182)
at com.sun.jersey.server.impl.application.WebApplicationImpl.access$600(WebApplicationImpl.java:161)
at com.sun.jersey.server.impl.application.WebApplicationImpl$12.f(WebApplicationImpl.java:698)
at com.sun.jersey.server.impl.application.WebApplicationImpl$12.f(WebApplicationImpl.java:695)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:197)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:695)
at com.sun.jersey.spi.spring.container.servlet.SpringServlet.initiate(SpringServlet.java:117)
Run Code Online (Sandbox Code Playgroud)
过滤:
<filter>
<filter-name>JerseyFilter</filter-name>
<filter-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</filter-class>
<init-param>
<param-name>com.sun.jersey.config.feature.Redirect</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
<param-value>/views/</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
<param-value>/(images|css|jsp)/.*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>JerseyFilter</filter-name>
<url-pattern>/myresource/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
码:
@Path ("/admin")
public class AdminUiResource {
@GET
@Produces ("text/html")
@Path ("/singup")
public Viewable getSignUp () {
return new Viewable("/public/signup", "Test");
}
}
Run Code Online (Sandbox Code Playgroud)
小智 81
你试过添加吗?
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>my.package.name</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)
你的SpringServlet定义?显然,将my.package.name替换为AdminUiResource所在的包,并确保它在类路径中.
Anv*_*hat 32
我是泽西的新手 - 我遇到了同样的问题,但是当我删除了"/"并且只使用了@path("admin")时,它就起作用了.
@Path("admin")
public class AdminUiResource { ... }
Run Code Online (Sandbox Code Playgroud)
Paw*_*wan 28
这意味着,它找不到任何可以作为泽西RESTful Web服务执行的类.
校验:
com.sun.jersey.config.property.packages您的web.xml中是否缺少' '.com.sun.jersey.config.property.packages'param的值是否缺失或无效(提到的包不存在).它应该是一个包,你把你的POJO类作为泽西服务运行.@Path属性注释的方法.Vde*_*deX 28
您需要添加您的包裹名称
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>your.package.name</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)
还有一点我注意到了,
我需要在MAVEN BUILD之后刷新我的项目,否则它会向我显示同样的错误.
请评论如果您知道我们需要刷新项目的原因?
hak*_*ish 12
您的资源包应包含至少一个pojo,该pojo使用@Path注释或至少有一个使用@Path注释的方法或请求方法指示符,例如@ GET,@ PUT,@ POST或@DELETE.资源方法是使用请求方法指示符注释的资源类的方法.这解决了我的问题..
小智 11
我用JBOSS EAP 6.1遇到了这个问题.我能够通过eclipse将我的代码部署到JBOSS服务器,但是一旦我尝试将该文件作为WAR文件部署到JBOSS,我就开始收到此错误.
解决方案是通过允许两者协同工作来配置web.xml以与JBOSS正常工作.
在web.xml中注释了以下两行,以允许JBOSS执行自己的配置
<!--
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.your.package</param-value>
</init-param> -->
Run Code Online (Sandbox Code Playgroud)
然后添加以下上下文参数
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.resources</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.providers</param-name>
<param-value>false</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
基本上我像下面一样纠正它,一切都很好.
<servlet>
<servlet-name >MyWebApplication</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.feature.Redirect</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
<param-value>/views/</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
<param-value>/(images|css|jsp)/.*</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyWebApplication</servlet-name>
<url-pattern>/myapp/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
小智 9
我得到了这个例外,因为Web.xml中缺少ResourseConfig.
加:
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>/* Name of Package where your service class exists */</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)
服务类意味着:包含以下服务的类: @Path("/orders")
小智 5
遇到了同样的问题,发现是我部署源代码的方式有问题。正如错误消息所说:"...does not contain any root resource classes"。所以它在配置的包中找不到任何资源类。我只是错误地部署了课程 - 这就是它没有选择它的原因。
我忘记将我的类文件部署在 WAR 的 /WEB-INF/classes 目录中 - 最初我只是将它直接放在 WAR 文件的根目录中。所以当它寻找资源类时它没有找到它们 - 因为它们存在于不同的(错误的)位置。
| 归档时间: |
|
| 查看次数: |
226178 次 |
| 最近记录: |