我创建了一个Maven战争项目并添加了javaEE API和openCSV。在eclipse中我可以看到jar和import类,并且在没有任何编译错误的情况下使用它们。Maven JAR - 类未找到异常
但是当我使用Tomcat,并试图挽救一个CSV文件,我得到这个异常运行应用程序:
java.lang.NoClassDefFoundError: au/com/bytecode/opencsv/CSVWriter
的JavaEE API工作正常。
我尝试添加编译,但它没有任何好处。
这是我的POM:
<modelVersion>4.0.0</modelVersion>
<groupId>com.training</groupId>
<artifactId>DevProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<dependency>
<groupId>net.sf.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
这是抛出异常的代码: CSVWriter作家=新CSVWriter(新的FileWriter( “FILE.CSV”));
任何想法?
您在部署的工件中缺少依赖关系/依赖关系。 –
这取决于Eclipse(我猜)如何在Tomcat中运行您的应用程序。您是否尝试将WAR(使用Maven)打包并将其部署在“真正”的Tomcat上? – Tome
请尝试'javaee-api'版本'6.0'而不是'7.0',它的范围应该是'provided',如果错误仍然存在,请尝试找出该类属于哪个依赖项并尝试添加它。 – Omoro