Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javax.ws.rs.NotFoundException:RESTEASY003210:找不到完整路径的资源:使用RestEASY、Intellij IDEA 16.1、Tomcat 8.0.33_Java_Rest_Tomcat_Intellij Idea_Resteasy - Fatal编程技术网

javax.ws.rs.NotFoundException:RESTEASY003210:找不到完整路径的资源:使用RestEASY、Intellij IDEA 16.1、Tomcat 8.0.33

javax.ws.rs.NotFoundException:RESTEASY003210:找不到完整路径的资源:使用RestEASY、Intellij IDEA 16.1、Tomcat 8.0.33,java,rest,tomcat,intellij-idea,resteasy,Java,Rest,Tomcat,Intellij Idea,Resteasy,有人问了很多类似的问题,但我尝试了所有建议的变体,用谷歌搜索了我的问题,检查了RestEASY规范。什么都帮不了我。 我正在创建一个非常简单的“Hello World”应用程序。当我写的URL路由到我的休息服务,我收到以下错误和空白,空页在我的浏览器。< /P> 这是堆栈跟踪: 15-May-2016 14:41:58.977 ERROR [http-nio-8080-exec-5] org.jboss.resteasy.core.ExceptionHandler.handleWebApplic

有人问了很多类似的问题,但我尝试了所有建议的变体,用谷歌搜索了我的问题,检查了RestEASY规范。什么都帮不了我。 我正在创建一个非常简单的“Hello World”应用程序。当我写的URL路由到我的休息服务,我收到以下错误和空白,空页在我的浏览器。< /P> 这是堆栈跟踪:

15-May-2016 14:41:58.977 ERROR [http-nio-8080-exec-5] org.jboss.resteasy.core.ExceptionHandler.handleWebApplicationException RESTEASY002010: Failed to execute
 javax.ws.rs.NotFoundException: RESTEASY003210: Could not find resource for full path: http://localhost:8080/api/v1/status
    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:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.taras.resty</groupId>
    <artifactId>Resty</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>LATEST</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>LATEST</version>
     </dependency>
    </dependencies>

</project>
<?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">

    <servlet>
        <servlet-name>V1_Status</servlet-name>
        <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.taras.resty.status.V1_Status</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>V1_Status</servlet-name>
        <url-pattern>/api/*</url-pattern>
    </servlet-mapping>

</web-app>
package com.taras.resty.status;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Application;
import javax.ws.rs.ApplicationPath;

@ApplicationPath("/v1/status")
public class V1_Status extends Application  {
    private static final String api_version= "00.01.00";

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String returnTitle(){
        return "<p>Java Web Service</p>";
    }

    @Path("/version")
    @GET
    @Produces(MediaType.TEXT_HTML)
    public String returnVersion(){
        return "<p>Version + </p>" + api_version;
    }

}
这是我的pom.xml:

15-May-2016 14:41:58.977 ERROR [http-nio-8080-exec-5] org.jboss.resteasy.core.ExceptionHandler.handleWebApplicationException RESTEASY002010: Failed to execute
 javax.ws.rs.NotFoundException: RESTEASY003210: Could not find resource for full path: http://localhost:8080/api/v1/status
    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:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.taras.resty</groupId>
    <artifactId>Resty</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>LATEST</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>LATEST</version>
     </dependency>
    </dependencies>

</project>
<?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">

    <servlet>
        <servlet-name>V1_Status</servlet-name>
        <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.taras.resty.status.V1_Status</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>V1_Status</servlet-name>
        <url-pattern>/api/*</url-pattern>
    </servlet-mapping>

</web-app>
package com.taras.resty.status;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Application;
import javax.ws.rs.ApplicationPath;

@ApplicationPath("/v1/status")
public class V1_Status extends Application  {
    private static final String api_version= "00.01.00";

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String returnTitle(){
        return "<p>Java Web Service</p>";
    }

    @Path("/version")
    @GET
    @Produces(MediaType.TEXT_HTML)
    public String returnVersion(){
        return "<p>Version + </p>" + api_version;
    }

}

4.0.0
com.taras.resty

先谢谢你

编辑-为将面临相同问题的人解决@tair在解决我的bug方面帮了我很多。试试他的版本(你可以在这里找到)。 我们还没有找到原因,它不知怎么消失了(魔法)。 当然,要获得更详细的信息,请查看规范

正如您的web.xml表明您正在使用与Servlets 3.1兼容的Tomcat一样,Resteasy的配置应该有所不同。请参阅第3.5节。Servlet 3.0容器中的独立Resteasy
的官方Resteasy文档[1]

如果坚持旧式配置,则应为
HttpServletDispatcher
将JAX-RS应用程序指定为
init param

<servlet>
    <servlet-name>Resteasy</servlet-name>
    <servlet-class>
        org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    </servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.taras.resty.Application</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>V1_Status</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

<context-param>
    <param-name>resteasy.servlet.mapping.prefix</param-name>
    <param-value>/api</param-value>
</context-param>

放松
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
javax.ws.rs.Application
com.taras.resty.Application
V1_状态
/原料药/*
resteasy.servlet.mapping.prefix
/原料药
在这两种情况下,您都必须将
javax.ws.rs.Application子类化

更新:这里[2]是一个完整的应用程序示例。使用Tomcat 8.0.33进行测试

[1]


[2]

您不也需要一个带有
@ApplicationPath
javax.ws.rs.Application
子类吗?@tair您指的是另一个类,并且要用
@ApplicationPath
注释标记这个类?我也尝试过这种变体,但对我不起作用(难道你没有忘记URL中的应用程序上下文吗?@CássioMazzochiMolin你是什么意思?还没有完全理解question@TyLeRCassio是对的,你的url一定是非常感谢你的回答。我已经检查了我的Servlet版本,是的,它比3.0旧。所以我编辑了我的
web.xml
V1\u状态
上课。但还是不行。你能再看一次吗?谢谢you@TyLeR请尝试更新的web.xml片段。我在每个文档中添加了上下文参数,可以这么说,但是没有。什么都没有changed@TyLeR你为什么不想使用Servlet 3.0特性呢?Tomcat 8.0支持它。我已经安装了Tomcat 8.0.33版,这个版本Tomcat的ion使用的Servlets版本早于3.0。好的,明天我将尝试用更年轻的Servlets版本安装Tomcat更年轻的版本。并尝试使用
resteasy servlet初始值设定项
您链接到我的官方文档中所写的方式。也许它会起作用