Java Wicket REST功能适用于Jetty,但不适用于Tomcat

Java Wicket REST功能适用于Jetty,但不适用于Tomcat,java,rest,tomcat,jetty,wicket-6,Java,Rest,Tomcat,Jetty,Wicket 6,我创建了一个Wicket应用程序,该应用程序最近升级为。在开发和运行Jetty时,我能够正确地将消息发布到REST服务。然而,当它被部署到tomcat时,转到RESTURL会给出404错误和“请求的资源不可用”响应 Pom条目: wicketstuff注释、wicketstuff重新注释、wicketstuff重新注释json所有jar/编译,版本与wicket版本6.24.0相同 rest类中的代码 public class Webhook extends AbstractRestResour

我创建了一个Wicket应用程序,该应用程序最近升级为。在开发和运行Jetty时,我能够正确地将消息发布到REST服务。然而,当它被部署到tomcat时,转到RESTURL会给出404错误和“请求的资源不可用”响应

Pom条目: wicketstuff注释、wicketstuff重新注释、wicketstuff重新注释json所有jar/编译,版本与wicket版本6.24.0相同

rest类中的代码

public class Webhook extends AbstractRestResource<JsonWebSerialDeserial> {
    @MethodMapping(value="/notification", httpMethod=HttpMethod.POST, consumes= RestMimeTypes.APPLICATION_JSON, produces = RestMimeTypes.TEXT_PLAIN)
    public String notification( @RequestBody Notification data ) {

        // do some things

      return "received successfully";
    }

    @Override
    public String getMountPath() {
      return "/emailcampaign/webhook";
    }
}
tomcat localhost\u access\u日志具有以下内容:

`二十、 XX.XX.XX---[01/Feb/2018:06:46:10+0000]POST/emailcampaign/webhook/notification HTTP/1.1 404 1041

系统启动正确,因此我在部署时似乎没有丢失任何jar文件,因此我感到不知所措。有人能帮忙吗

Tomcat 7.0.67、Jetty 7.6.3、Wicket 6.24、Spring 4.1.4

编辑:这是web.xml的内容:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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_2_5.xsd"
    version="2.5">

    <display-name>system-ui</display-name>

    <context-param>
        <param-name>configuration</param-name>
        <param-value>deployment</param-value>
    </context-param>

    <filter>
        <filter-name>wicket.system-ui</filter-name>
        <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
        <init-param>
            <param-name>applicationClassName</param-name>
            <param-value>com.sw.system.ui.WicketApplication</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>wicket.system-ui</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

……唉,这是新手的疏忽

在我的开发机器上,jetty上应用程序的路径是。在部署计算机上,它是。因此,我将客户端RESTURL设置为指向ie添加theapp子路径,它成功了


Doh,但希望它能帮助其他人。

什么是上下文路径和筛选器路径WicketFilter?嗨,Martin-我添加了web.xml-我没有为我的知识设置上下文路径在这种情况下/emailcampaign/webhook是什么?我猜emailcampaign是.war文件的名称?抱歉,emailcampaign/webhook是相对于提供webhook REST类的应用程序的基本路径。然后,该类为其通知方法提供/notification的路径。因此,剩下的URL是http:///emailcampaign/webhook/notifictionSorry 应该是:URL是http:///emailcampaign/webhook/notifiction
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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_2_5.xsd"
    version="2.5">

    <display-name>system-ui</display-name>

    <context-param>
        <param-name>configuration</param-name>
        <param-value>deployment</param-value>
    </context-param>

    <filter>
        <filter-name>wicket.system-ui</filter-name>
        <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
        <init-param>
            <param-name>applicationClassName</param-name>
            <param-value>com.sw.system.ui.WicketApplication</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>wicket.system-ui</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>