我創建了一個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