Jakarta ee 尝试运行Wicket应用程序会得到404

Jakarta ee 尝试运行Wicket应用程序会得到404,jakarta-ee,wicket,Jakarta Ee,Wicket,我已经对我的应用程序的逻辑进行了分类。这只是“让应用程序运行”这一点,我遇到了一些问题 我知道我需要(并且拥有)一个类,该类通过显示主页(在我的例子中,称为“UserPage”)来启动应用程序。然而,即使正确填写了web.xml并实现了WicketApplication类,我仍然得到了404 两者的代码如下所示。有人能在两个方面帮助我吗 •告诉我哪里出了问题(以及原因) •这两个文件需要的外观以及更正的位置 提前谢谢 WicketApplication.java package com.

我已经对我的应用程序的逻辑进行了分类。这只是“让应用程序运行”这一点,我遇到了一些问题

我知道我需要(并且拥有)一个类,该类通过显示主页(在我的例子中,称为“UserPage”)来启动应用程序。然而,即使正确填写了web.xml并实现了WicketApplication类,我仍然得到了404

两者的代码如下所示。有人能在两个方面帮助我吗

•告诉我哪里出了问题(以及原因)

•这两个文件需要的外观以及更正的位置

提前谢谢

WicketApplication.java

    package com.me.textboxformtutorial;

import com.me.textboxformtutorial.UserPage;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.protocol.http.WebApplication;

public class WicketApplication extends WebApplication {

    @Override
     public Class<UserPage> getHomePage()
    {
        return UserPage.class;
    }

}
package com.me.textboxformtutorial;
导入com.me.textboxformtutorial.UserPage;
导入org.apache.wicket.markup.html.WebPage;
导入org.apache.wicket.protocol.http.WebApplication;
公共类WicketApplication扩展了WebApplication{
@凌驾
公共类getHomePage()
{
返回UserPage.class;
}
}
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">

<servlet>
    <servlet-name>WicketTextBoxExample</servlet-name>
    <servlet-class>UserPage</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>WicketTextBoxExample</servlet-name>
    <url-pattern>/textboxexample</url-pattern>
</servlet-mapping>

<filter>
        <filter-name>wicketFilter</filter-name>
        <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
        <init-param>
            <param-name>applicationClassName</param-name>
            <param-value>com.me.textboxformtutorial.WicketApplication</param-value>
        </init-param>
    </filter>
</web-app>

WickettextBoxes示例
用户页
WickettextBoxes示例
/文本框示例
威克特过滤器
org.apache.wicket.protocol.http.WicketFilter
应用程序类名
com.me.textboxformtutorial.WicketApplication

这里的问题是Wicket页面不是servlet。Wicket是一个框架,它为处理请求和呈现结果添加了自己的抽象层,因此不需要在
web.xml
中单独声明所有页面

设置Wicket的正确方法是将定义的筛选器映射到所需的url:

<filter-mapping>
    <filter-name>wicketFilter</filter-name>
    <url-pattern>/*</url-pattern> <!-- or /textboxexample/* if you want your application to map to that url -->
</filter-mapping>

威克特过滤器
/* 
并删除以下条目:

<servlet>
     <servlet-name>WicketTextBoxExample</servlet-name>
     <servlet-class>UserPage</servlet-class>
 </servlet>

 <servlet-mapping>
     <servlet-name>WicketTextBoxExample</servlet-name>
     <url-pattern>/textboxexample</url-pattern>
 </servlet-mapping>

WickettextBoxes示例
用户页
WickettextBoxes示例
/文本框示例
这会将对给定url的所有请求馈送到Wicket筛选器,该筛选器将处理和解析这些请求,并将它们传递到相应的页面


如果您使用Maven,您可以从创建项目,这一切都可以为您完成。

这里的问题是Wicket页面不是servlet。Wicket是一个框架,它为处理请求和呈现结果添加了自己的抽象层,因此不需要在
web.xml
中单独声明所有页面

设置Wicket的正确方法是将定义的筛选器映射到所需的url:

<filter-mapping>
    <filter-name>wicketFilter</filter-name>
    <url-pattern>/*</url-pattern> <!-- or /textboxexample/* if you want your application to map to that url -->
</filter-mapping>

威克特过滤器
/* 
并删除以下条目:

<servlet>
     <servlet-name>WicketTextBoxExample</servlet-name>
     <servlet-class>UserPage</servlet-class>
 </servlet>

 <servlet-mapping>
     <servlet-name>WicketTextBoxExample</servlet-name>
     <url-pattern>/textboxexample</url-pattern>
 </servlet-mapping>

WickettextBoxes示例
用户页
WickettextBoxes示例
/文本框示例
这会将对给定url的所有请求馈送到Wicket筛选器,该筛选器将处理和解析这些请求,并将它们传递到相应的页面

如果您使用Maven,您可以从中创建您的项目,这一切都可以为您完成。

Wow!非常感谢:)世界上最小的过滤器,如果我见过的话。我认为这是因为我的Java文件没有被提及,可以吗?如果一切顺利,我会告诉你的。哇!非常感谢:)世界上最小的过滤器,如果我见过的话。我认为这是因为我的Java文件没有被提及,可以吗?如果事情进展顺利,我会告诉你的。