当前位置: 首页 > 面试题库 >

javax.ws.rs.NotFoundException:找不到完整路径的资源错误发生

谢承颜
2023-03-14
问题内容

我几次在这里找到相同的问题,但是找不到答案。

当我运行我的应用程序时,我收到以下错误

javax.ws.rs.NotFoundException: Could not find resource for full path: http://localhost:8080/RemoteQuartzScheduler/rest/TestClass/hello
    at org.jboss.resteasy.core.registry.ClassNode.match(ClassNode.java:73)
    at org.jboss.resteasy.core.registry.RootClassNode.match(RootClassNode.java:48)
    at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:444)
    at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:234)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:171)
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
    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:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

这是项目的pom文件(我仅添加了主要部分)

<repositories>
    <repository>
        <id>JBoss repository</id>
        <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>3.0.9.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-servlet-initializer</artifactId>
        <version>3.0.9.Final</version>
    </dependency>
</dependencies>

这是我的web.xml文件

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">


<display-name>RemoteQuartzScheduler</display-name>

<servlet-mapping>
    <servlet-name>resteasy-servlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>


<!-- this should be the same URL pattern as the servlet-mapping property -->
<context-param>
    <param-name>resteasy.servlet.mapping.prefix</param-name>
    <param-value>/rest</param-value>
</context-param>

<listener>
    <listener-class>
        org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
        </listener-class>
</listener>

<servlet>
    <servlet-name>resteasy-servlet</servlet-name>
    <servlet-class>
        org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    </servlet-class>
</servlet>

这是我的Test.java类

@Path("/TestClass")
public class Test implements Serializable{

  private static final long serialVersionUID = -262701666015379272L;

  @GET
  @Path("/hello")
  public Response heloMessage() {

    String result = "Hello Word!!!!!!!!!";

    return Response.status(200).entity(result).build();
  }   
}

请告诉我我在哪里做错了?提前致谢


问题答案:

我没有机会测试您的版本(使用web.xml),说实话,当我使用Resteasy 时,我对 xml的使用不多,所以我不会去尝试解释什么是错误的(如果有的话) )与web.xml。

但是当使用javax.xs.rs.core.Application子类时,我们可以定义一个@ApplicationPath("/path")注释。它使用url映射为我们的JAX-RS应用程序定义了一个servlet /path/*。这在JAX-RS规范中指定。

您可以在第2.3.2节Configuration-Servlet中看到有关此部署选项以及其他选项的更多信息。这是1.1规范(您正在使用2.0),但是部署选项相似。我只是找不到指向2.0的HTML链接。您可以从此处下载pdf 。

您还可以在文档中阅读有关Resteasy部署的更多信息。

但基本上,这是什么部署选项的作用是扫描的html" target="_blank">注解@Path,@Provider为应用程序等。原因是JAX-RS将首先分别在重写getClasses()和中查找类和对象getSingletons()。如果然后返回空集,这将告诉JAX-RS进行扫描(按照规范)。



 类似资料:
  • 我正在尝试在Quarkus中配置Swagger。Quarkus的我的版本:1.9.2。最终的 我的依赖关系: 和我的财产资源: 使用:mvn启动应用程序时,请编译quarkus:dev并转到以下url: <代码>http://localhost:8080/swagger-找不到ui\u/ 但是,如果我用maven(mvn包)制作一个包,然后启动jar,则返回相同的url: RESTEASY0032

  • 我遇到一个问题,IntelliJ13.1.4在运行单元测试时,在模块的目录中找不到文件。 在回答之前请注意,我已经完成了以下所有操作: 该模块是一个分级项目,如果我运行,单元测试运行良好。 我过去在IntelliJ中成功地运行了这个单元测试,它找到了模块。(也许是Intellij的早期版本?) 我已经检查了IntelliJ模块设置,并且目录被标记为测试资源目录。(见下面的截图。) 我正在类中转储单

  • 警告:不推荐使用属性,它对生成过程没有影响。/home/midhilaj/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/be3106efb0df111fe5a3f7b356dd070b/res/values/values.xml错误:(246,5)错误:resource android:找不到attr/fontvaria

  • 问题 我无法访问solr管理页。 在本地系统上运行url时:http://localhost:8983/solr/admin/cores?action=create&name=new_core&configset=basic_configs 回应 > 我已重新链接:https://wiki.apache.org/solr/coreadmin solr.xml代码 tomcat7 23192 0.7

  • 我使用grails已经快一年了。从现在开始,我想在gsp中链接css或js文件。我做了以下几件事: > 我在web-app文件夹下创建了一个新文件(例如资源文件),并将所有文件夹放在那里(例如导入bootstrap时,我在资源下有一个父文件夹bootstrap,在bootstrap下有css、img和js文件夹及其文件)。 然后,为了导入一个css文件,我做了以下操作(以下是相关文档): 这非常有

  • http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“> 我不明白该如何解决这件事,请帮帮我