使用Maven webapp architype设置eclipse项目。我创建了一个servlet文件,并将其添加到src / main /下的resources文件夹中 当我运行应用程序时,tomcat会出错:
实例化servlet类com.ABCompany.Demo.SampleDemo时出错。 java.lang.ClassNotFoundException:com.ABCompany.Demo.SampleDemo
该文件位于文件夹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>
答案 0 :(得分:2)
阅读问题:
该文件位于文件夹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)。
提示:包名称,不应包含大写字母,通过confention。如此预设的是com.abcompany.demo
。
提示:另请阅读使用Maven原型的How to create a Web Application Project with Maven,以便全部设置!
答案 1 :(得分:1)
我遇到了同样的问题。
我的解决方案是: 创建项目时,请手动创建src / main下的java文件夹,因为默认情况下maven-archetype-webapp不会创建src / main / java。
Before: src/main
After: src/main/java
image:java folder manually created
当第一步准备好后,您可以创建所需的所有servlet,请确保在src / main / java下创建所有类和servlet。
问题是因为servlet是在src / main / resources下创建的,这意味着所有的.java文件都打包为资源而不是.class编译。