只需使用Maven webapp architype设置一个eclipse项目。我创建了一个servlet文件,并将其添加到src/main下的resources文件夹中/当我运行应用程序时,tomcat会给出一个错误:
实例化servlet类com.ABCompany.Demo.SampleDemo.java.lang.ClassNotFoundException时出错:com.ABCompany.Demo.SSampleDemo
该文件位于src/main/resources/com/ABCompany/Demo/SampleDemo.java 文件夹下
我的web.xml在下面。
<web-app>
<display-name>Demo Example</display-name>
<servlet>
<servlet-name>SampleDemo</servlet-name>
<display-name>SampleDemo</display-name>
<description></description>
<servlet-class>com.ABCompany.Demo.SampleDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SampleDemo</servlet-name>
<url-pattern>/SampleDemo</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
阅读问题:
该文件位于src/main/resources/com/ABCompany/Demo/SampleDemo.java 文件夹下
Java源文件,应在src/main/java
下
src/main/java/com/ABCompany/Demo/SampleDemo.java
其他文件,如属性、HTML/CSS文件、图像、模板等,通常放置在src/main/resources
中。由于它们不需要编译,只需复制到构建目录中即可。因此,它们可以用于运行应用程序,也可以用于打包(创建jar)。
提示:根据约定,包名称不应包含大写字母。所以前面提到的是com.abcompany.demo
。
提示:另请阅读如何使用Maven创建一个使用Maven原型的Web应用程序项目,以进行设置!
我也遇到了同样的问题。
我的解决方案是:当项目创建时,请手动在src/main下创建java文件夹,这是因为maven原型webapp默认不会创建src/main/java。
Before: src/main
After: src/main/java
image:java文件夹手动创建
当第一步准备好后,您可以创建所需的所有servlet,请确保您在src/main/java下创建了所有的类和servlet。
问题在于servlet是在src/main/resources下创建的,这意味着所有的.java文件都打包为资源,而不是编译为.class。