java.lang.NoClassDefFoundError:无法初始化类x

时间:2018-02-21 13:45:19

标签: java maven tomcat intellij-idea web-inf

我是tomcat和maven的新手,我使用IntelliJ IDEA创建了一个项目。 src目录中有一些java类,构建项目后,.class文件存储在目标目录中。似乎tomcat找不到.class文件在哪里初始化类。 这是目录树:

enter image description here

这是我的pom.xml contetnt:

<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>IE</groupId>
  <artifactId>IE</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>IE 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>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.3.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.json</groupId>
      <artifactId>org.json</artifactId>
      <version>chargebee-1.0</version>
    </dependency>
  </dependencies>
  <build>
    <sourceDirectory>src/main/javaClasses</sourceDirectory>
    <finalName>IE</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <url>http://localhost:8080/manager/text</url>
          <server>TomcatServer</server>
          <path>/projectName</path>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

任何人都可以帮助我如何告诉目标文件的路径才能找到课程?现在我无法在我的jsp文件中实例化我的任何类。

1 个答案:

答案 0 :(得分:0)

您尚未自定义编译器插件的配置,因此将源文件置于src/main/javaClasses下是不正确的。

您应该将源包/类移动到src/main/java,Maven应该将其取出。这是Maven默认期望的地方。

有关详情,请查看standard directory layout page