找不到Maven web项目servlet类

时间:2015-10-28 09:35:16

标签: eclipse maven servlets

使用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>

2 个答案:

答案 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。

问题是因为s​​ervlet是在src / main / resources下创建的,这意味着所有的.java文件都打包为资源而不是.class编译。