簡體   English   中英

Maven JAR-找不到類異常

[英]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的實際實現。

嘗試這個:

  1. 右鍵單擊包含pom的eclipse項目
  2. 點擊Properties
  3. 單擊Deployment Assembly

然后檢查您的Maven Dependencies是否在列表中,並且其前面的部署路徑為WEB-INF/lib

如有必要,單擊Add...按鈕,然后單擊ApplyOK按鈕。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM