java - 错误 [org.jboss.resteasy.resteasy_jaxrs.i18n](默认任务 2)RESTEASY002010

标签 java rest jax-rs resteasy jboss-eap-7

我面临以下问题,但找不到解决方案。

我的堆栈跟踪位于此处:

ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n] (default task-2) RESTEASY002010: Failed to execute: javax.ws.rs.NotFoundException: RESTEASY003210: 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)

这是我的 web.xml

  <?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>

应用类:

@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();
    }
}

现在,当我运行应用程序时,我收到此错误(堆栈跟踪),如下网址:http://localhost:8080/myProjectName

但是当我尝试运行如下服务时:

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

工作正常。

我错过了什么?

我尝试阅读 stackoverflow 中的其他解决方案和 RESTEASY 文档,但我找不到解决方案。 有人遇到过这样的问题吗?

最佳答案

我认为您的错误消息不是致命的。您收到该错误是因为您没有映射根 URL (/)。为了避免这种情况,您可以将根 URL 映射到某些内容,例如:

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

已编辑:不要将根 URL 映射到同一个类上,而是将其放在另一个类上,因为您的 PageServiceREST 已经指定了文件夹 路径。

关于java - 错误 [org.jboss.resteasy.resteasy_jaxrs.i18n](默认任务 2)RESTEASY002010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46703024/

相关文章:

http - HTTP PUT 应该如何工作

java - 异步调度程序错误

rest - 在哪里可以找到 jenkins Restful api 引用?

java - javax.ws.rs.container.ResourceInfo.getResourceClass() 的用途是什么?

java - JBoss EAP 6.3 + cxf 2.7.11 jax-rs 原因

java - 在作为提案输入 JSR/JEP 之前,是否有一种有意义的方式来收集反馈?

java - 如何在 Web 应用程序内的 RabbitMQ 上使用 while (true)

java - Launch4j 中的异常

SingleOutputStreamOperator#returns(TypeHint<T> typeHint) 方法的 javadoc

java - MVC REST API 中使用 Jackson 的动态 JSON 类型