HTTP状态404 - 无法找到相对的资源:完整路径:RESTEasy

时间:2016-04-28 12:42:59

标签: maven tomcat pom.xml resteasy web.xml

我已经花了好几个小时来解决以下问题:

我有一个带有以下web.xml的Maven项目

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>xy</display-name>

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

    <!-- Auto scan REST service -->
    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>

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

</web-app>

我的Java类如下所示:

@Path("/file")
public class File 
{   
    @POST
    @Path("/upload")
    @Consumes("multipart/form-data")
    public Response uploadFile(@MultipartForm Multipart form) {}

项目后 - &gt;以 - &gt;运行在服务器上运行,显示正确的index.jsp。

当我点击按钮上传文件时,我收到错误:

HTTP状态404 - 无法找到相对的资源:/ file / upload of full path:http://localhost:8080/Projectname/rest/file/upload

我做了什么:

  • 清洁项目
  • 更新Maven
  • 以 - &gt;运行Maven - &gt;干净安装(构建成功)
  • 删除Tomcat并重新安装
  • 已禁用自动扫描并手动添加“文件”

此外,我收到警告,在Tomcat路径上找不到某些jar(/Tomcat8/wtpwebapps/Projectname/WEB-INF/lib/activation-1.1.jar(没有这样的文件或目录 - 但它可以在pom中找到) .xml和target-&gt; Projectname-&gt; WEB-INF-&gt; lib)

我使用resteasy-jaxrs版本2.2.1.GA

我感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

尝试以下几点。

  1. 尝试在web.xml中添加包名称以便于休息,轻松扫描类文件以获取JAX-RS注释。结帐scan resteasy resources by package name
  2. 确保在调用REST端点时设置正确的Content-Type。即,multipart / form-data