여기서 뭐가 잘못 됐나요?
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)
필터:
<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>
암호:
@Path ("/admin")
public class AdminUiResource {
@GET
@Produces ("text/html")
@Path ("/singup")
public Viewable getSignUp () {
return new Viewable("/public/signup", "Test");
}
}
답변
추가해 보셨습니까?
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>my.package.name</param-value>
</init-param>
SpringServlet 정의에? my.package.name을 AdminUiResource가있는 패키지로 바꾸고 클래스 경로에 있는지 확인하십시오.
답변
저는 Jersey를 처음 사용했습니다. 동일한 문제가 있었지만 “/”를 제거하고 @path ( “admin”) 만 사용하면 작동했습니다.
@Path("admin")
public class AdminUiResource { ... }
답변
패키지 이름을 추가해야합니다.
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>your.package.name</param-value>
</init-param>
또한 내가 주목
한 한 가지 사실은 MAVEN BUILD 후 프로젝트를 새로 고쳐야 합니다. 그렇지 않으면 동일한 오류가 표시됩니다.
우리가 프로젝트를 새로 고쳐야하는 이유를 알고 있다면 의견을주십시오.
답변
이것은 저지 RESTful 웹 서비스로 실행할 수있는 클래스를 찾을 수 없습니다.
검사:
- 여부 ‘
com.sun.jersey.config.property.packages
web.xml에서 ‘이 누락 . - 값 ‘
com.sun.jersey.config.property.packages
‘매개 변수의 이 누락 또는 유효하지 않은지 (언급 된 패키지가 존재하지 않음). 저지 서비스로 실행되는 POJO 클래스를 넣은 패키지 여야합니다. @Path
속성으로 주석이 달린 메소드가있는 POJO 클래스가 하나 이상 있는지 여부 입니다.
답변
귀하의 자원 패키지는 하나의 주석을 붙일 수 있고 적어도 하나의 POJO 포함해야 @Path
또는 적어도 하나의 방법으로 주석 한 @Path
같은 또는 요청 방법 지정자, @GET
, @PUT
, @POST
, 또는 @DELETE
. 리소스 메서드는 요청 메서드 지정자로 주석이 달린 리소스 클래스의 메서드입니다. 이것은 내 문제를 해결했습니다 …
답변
JBOSS EAP 6.1에서이 문제를 겪었습니다. 이클립스를 통해 JBOSS 서버에 내 코드를 배포 할 수 있었지만 파일을 JBOSS에 WAR 파일로 배포하려고하면이 오류가 발생하기 시작했습니다.
해결책은 web.xml이 JBOSS와 제대로 작동하도록 두 가지가 함께 작동하도록 구성하는 것이 었습니다.
다음 두 줄은 JBOSS가 자체 구성을 수행 할 수 있도록 web.xml에서 주석 처리되었습니다.
<!--
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.your.package</param-value>
</init-param> -->
그런 다음 다음 컨텍스트 매개 변수를 추가하십시오.
<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>
답변
기본적으로 아래와 같이 수정했고 모든 것이 잘 작동했습니다.
<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>