Maven:Web应用程序中的ClassNotFound异常

时间:2013-04-29 05:32:53

标签: maven

我已经使用Maven插件在Eclipse IDE中创建了一个Web应用程序,如图所示 enter image description here

我在该项目中创建了一个Servlet

生成的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com</groupId>
  <artifactId>MTest</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>MTest Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>MTest</finalName>
  </build>
</project>

当我右键单击pom.xml并执行Run as Maven Install

我无法在

下看到我的servlet的类文件
C:\Users\sai\OfficeWSApril14\MTest\target\MTest\WEB-INF\classes

结果就是投掷ClassNotFoundException

请让我知道我做错了什么

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building MTest Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ MTest ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ MTest ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ MTest ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\sai\OfficeWSApril14\MTest\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ MTest ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.7.1:test (default-test) @ MTest ---
[INFO] Surefire report directory: C:\Users\sai\OfficeWSApril14\MTest\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
There are no tests to run.

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ MTest ---
[INFO] Packaging webapp
[INFO] Assembling webapp [MTest] in [C:\Users\sai\OfficeWSApril14\MTest\target\MTest]
[INFO] Processing war project
[INFO] Copying webapp resources [C:\Users\sai\OfficeWSApril14\MTest\src\main\webapp]
[INFO] Webapp assembled in [107 msecs]
[INFO] Building war: C:\Users\sai\OfficeWSApril14\MTest\target\MTest.war
[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored 
(webxml attribute is missing from war task, or ignoreWebxml attribute is specified as 'true')
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ MTest ---
[INFO] Installing C:\Users\sai\OfficeWSApril14\MTest\target\MTest.war to C:\Users\sai\.m2\repository\com\MTest\0.0.1-SNAPSHOT\MTest-0.0.1-SNAPSHOT.war
[INFO] Installing C:\Users\sai\OfficeWSApril14\MTest\pom.xml to C:\Users\sai\.m2\repository\com\MTest\0.0.1-SNAPSHOT\MTest-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.536s
[INFO] Finished at: Mon Apr 29 10:10:06 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ---------------------

当我右键单击Eclipse IDE Project创建新的Servlet时,我该怎样才能 确保源文件放在src / main / java ??

我附了一个屏幕截图,请参阅

enter image description here

1 个答案:

答案 0 :(得分:1)

由于Maven向我们显示如下: -

[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ MTest ---
[INFO] No sources to compile

这意味着没有任何已知的java类。请检查您的代码并确保源文件位于src/main/java

修改

有两种方法可以解决有关how can i move the servelet under src/main/java ?

的问题

1将现有的Maven Java Project转换为Dynamic Web Project,如下所示: -

  1. Right click在您的项目中。
  2. 从上下文菜单中选择Properties
  3. Properties Windows选择Project Facets
  4. right hand panel,请选择以下内容: -

    1. 动态网络模块:3.0
    2. Java:1.6
    3. Java脚本:1.0
  5. 点击OK button

  6. 2使用以下步骤创建新的Maven Web Project: -

    1. 转到菜单File ---> New ---> Other
    2. Select Wizard Windows,选择Maven ---> Project
    3. 点击下一步并输入所需信息,以便我们位于New Maven Project
    4. Filter文本框中,输入webapp-javaee6
    5. 选择org.codehaus.mojo.archetypes:webapp-javaee6:1.5
    6. 单击下一步并输入所需信息,以便完成项目创建。
    7. 请注意,我更倾向于采用第二种方式,因为我们的pom.xml会有额外的配置,这对于进一步开发非常有用。您还可以参考我之前关于How do I configure a Java EE maven project in Eclipse?

      的完整故事的回答

      我希望这可能有所帮助。