[英]Maven JAR - class not found exception
我創建了一個maven war項目,並添加了javaEE API和openCSV。 在Eclipse中,我可以看到兩個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 writer = new CSVWriter(new FileWriter(“ file.csv”));
有任何想法嗎?
默認的Java EE API已被選中。
它們並不是要真正運行東西,而僅僅是編譯東西,由於版權或我忘記的任何問題,它們實際上沒有任何內容。
因此,當定義依賴項時,應聲明:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
請注意,附加的“作用域”並將一個實際的實現添加到您的運行時。
另外,(我經常允許測試用例這樣做)您可以包括一個類似於jboss的實際實現。
嘗試這個:
Properties
Deployment Assembly
然后檢查您的Maven Dependencies
是否在列表中,並且其前面的部署路徑為WEB-INF/lib
如有必要,單擊Add...
按鈕,然后單擊Apply
和OK
按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.