Maven中的servlet

Maven中的servlet,maven,servlets,web.xml,Maven,Servlets,Web.xml,在Maven Webapp项目中,我在项目的根目录中创建了servlet DiaServlet,即pom.xml所在的目录 其在web.xml中的描述如下: <servlet> <servlet-name>DiaServlet</servlet-name> <servlet-class>DiaServlet</servlet-class> </servlet> <servlet-mapping>

在Maven Webapp项目中,我在项目的根目录中创建了servlet DiaServlet,即pom.xml所在的目录

其在web.xml中的描述如下:

<servlet>
    <servlet-name>DiaServlet</servlet-name>
    <servlet-class>DiaServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DiaServlet</servlet-name>
    <url-pattern>/DiaServlet</url-pattern>
</servlet-mapping>
我试过的一件事是将标签改为

与非Maven web应用程序中的servlet web.xml定义相同

当我使用NetScape创建servlet时,servlet描述没有添加到web.xml文件中,尽管我已选中自动添加它

这是构建环境的问题还是web.xml中的servlet定义的问题?如果是,那么同一个定义如何在其他web应用程序中工作?还是别的什么

Maven新手


TIA

您是一名maven用户,在项目初始化时,您将包名命名为Dia.base,因此您的类仅驻留在Dia.base包中

所以


如果您的项目是基于maven的,那么您需要在

中给出完全限定的类名,因此您必须遵循maven结构,并且您应该在src/majn/java之后定义servlet类的整个路径,这是maven已经知道的。因此,如果maven项目的结构是正确的,那么问题在于web.xmlMaven具有您必须遵守的约定。Java源文件进入src/main/Java。不在根目录中。永远不要,永远不要把你的类放在默认包中。这是一个糟糕的做法,只会给你带来麻烦。@pmp我在src/main下只有资源和webapp。我在Netbeans上创建并构建了prj。这可能有助于查看项目目录的层次结构。您还必须有java包
java.lang.ClassNotFoundException: DiaServlet
    <servlet-class>Prj.base.DiaServlet</servlet-class>
<groupId>Dia.base</groupId>
<servlet>
    <servlet-name>DiaServlet</servlet-name>
    <servlet-class>Dia.base.DiaServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DiaServlet</servlet-name>
    <url-pattern>/DiaServlet</url-pattern>
</servlet-mapping>