2017-10-12 2 views
1

다음과 같은 문제가 발생하며 해결 방법을 찾을 수 없습니다.ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n] (기본 작업 -2) RESTEASY002010

내 스택 트레이스는 간다 : 여기

ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n] (default task-2) RESTEASY002010: Failed to execute: javax.ws.rs.NotFoundException: RESTEASY: Could not find resource for full path: http://localhost:8080/myProjectName 
    at org.jboss.resteasy.core.registry.ClassNode.match(ClassNode.java:75) 
    at org.jboss.resteasy.core.registry.RootClassNode.match(RootClassNode.java:48) 
    at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:445) 
    at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:257) 
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:194) 
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221) 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at org.keycloak.adapters.undertow.UndertowAuthenticatedActionsHandler.handleRequest(UndertowAuthenticatedActionsHandler.java:66) 
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) 
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) 
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest(ServletPreAuthActionsHandler.java:69) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:285) 
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:264) 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) 
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:175) 
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) 
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:792) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
    at java.lang.Thread.run(Thread.java:748) 

<?xml version="1.0" encoding="UTF-8"?> 
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
      version="3.1"> 
     <context-param> 
      <param-name>resteasy.role.based.security</param-name> 
      <param-value>true</param-value> 
     </context-param> 

     <security-constraint> 
      <web-resource-collection> 
       <web-resource-name>pcpd</web-resource-name> 
       <url-pattern>/*</url-pattern> 
      </web-resource-collection> 
      <auth-constraint> 
       <role-name>administrator</role-name> 
      </auth-constraint> 
     </security-constraint> 

     <login-config> 
      <auth-method>BASIC</auth-method> 
     </login-config> 

    <security-role> 
     <role-name>administrator</role-name> 
    </security-role> 
</web-app> 

Application 클래스 내 web.xml에 있습니다 : 서비스와

@ApplicationPath("/") 
public class LauncherWebServices extends Application{ 
} 

클래스

@Path("/folders") 
@RequestScoped 
public class PageServicesREST { 
     @GET 
    @Path("/retrievePage") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response getListPage() { 
     List<Page> list = pageBusiness.retrievePage(); 
     if (list == null) { 
      return Response.ok().entity("Liste des pages est vide").build(); 
     } 
     return Response.ok().entity(pageBusiness.retrievePage()).build(); 
    } 
} 
,

내가 응용 프로그램을 실행하고 때 지금,이 같은 URL이 오류 (스택 트레이스) 도착 : http://localhost:8080/myProjectName

을하지만 다음과 같은 서비스를 실행하려고 할 때 :

http://localhost:8080/myProjectName/folders/retrievePage 

그것을 잘 작동됩니다 .

나는 무엇을 놓쳤는가?

나는 다른 솔루션을 stackoverflow 및 설명서 RESTEASY 읽으려고했지만 솔루션을 찾을 수 없습니다. 누구도 그런 문제를 겪었습니까?

+0

루트 URL (/)이 어디에도 매핑되지 않았으므로 오류가 발생합니다. 루트 URL을 무언가에 매핑하십시오. –

+0

할 수 있습니까? – user1814879

답변

1

당신의 오류 메시지는 치명적인 것이 아닙니다. 루트 URL (/)을 매핑하지 않았기 때문에 오류가 발생했습니다. 대신, 같은 클래스에 매핑 루트 URL의 이미 folders 경로를 지정하여 PageServiceREST 때문에 다른 클래스에 넣어 :

@Path("/") 
@RequestScoped 
public class Root { 
    @GET 
    public Response index() { 
     return Response.ok().build(); 
    } 
} 

편집을 : 당신은 예를 들어, 뭔가 루트 URL을 매핑 할 수있는 피하려면.

+0

좋아,하지만 그것을 시도 할 때 그것을 작동하지 않습니다 ... @ApplicationPath 클래스에 추가 한 있지만 너무 일하지 않았다 – user1814879

+0

whops 미안 해요, 클래스가 이미'폴더'URL을 지정하는 것을 잊어 버렸습니다. 나는 나의 모범을 바꾼다. 이제 루트 URL을 다른 클래스에 매핑했습니다. –