Java RestEasy为每个端点返回404

Java RestEasy为每个端点返回404,java,tomcat,resteasy,Java,Tomcat,Resteasy,我创建了一个web app Maven项目,它使用RestEasy作为RESTful应用程序框架 我的web.xml文件如下所示: <?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

我创建了一个web app Maven项目,它使用RestEasy作为RESTful应用程序框架

我的
web.xml
文件如下所示:

<?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" version="3.0">
  <display-name>me.randytan.inconium</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
    <param-name>resteasy.servlet.mapping.prefix</param-name>
    <param-value>/v1/api</param-value>
  </context-param>
  <context-param>
      <param-name>resteasy.scan</param-name>
      <param-value>true</param-value>
   </context-param>
  <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</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>
  <servlet-mapping>
    <servlet-name>resteasy-servlet</servlet-name>
    <url-pattern>/v1/api/*</url-pattern>
  </servlet-mapping>
</web-app>
我已尝试将类中的
@Path
更改为:

  • @Path(“/app”)
  • @Path(“app”)
函数
test()
内的路径为:

  • @Path(“/test”)
  • @Path(“测试”)
但两者都不起作用

我的项目规范:

  • Java 1.7
  • Tomcat 7.0
  • RestEasy 3.0.14

  • 我终于做到了

    最好通过创建一个主应用程序并在
    web.xml

    <servlet>
        <servlet-name>resteasy-servlet</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>me.randytan.inconium.controller.MainApplication</param-value>
        </init-param>
      </servlet>
    
    样本:

    import java.util.HashSet;
    import java.util.Set;
    import javax.ws.rs.core.Application;
    
    
    public class MainApplication extends Application {
    
        private Set<Object> singletons = new HashSet<Object>();
            private Set<Class<?>> empty = new HashSet<Class<?>>();
    
            public MainApplication() {
                //generate the main class of the framework;
                try{
                    //custom function. not necessary
                } catch (Exception e){
                    e.toString();
                }
    
                //add singletons to Restful Transaction API;
                this.singletons.add(new AppTransaction());
            }
    
            public Set<Class<?>> getClasses()
            {
                return this.empty;
            }
    
            public Set<Object> getSingletons()
            {
                return this.singletons;
            }
    }
    

    你能解释一下我访问该资源的端点url@DarshanLila示例端点url。其中的
    me.randytan.inconium
    是什么吗?@DarshanLila是maven工件Id
    me.randytan.inconium
    <servlet>
        <servlet-name>resteasy-servlet</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>me.randytan.inconium.controller.MainApplication</param-value>
        </init-param>
      </servlet>