【问题标题】:Maven classpath issue in test测试中的 Maven 类路径问题
【发布时间】:2014-03-15 14:13:54
【问题描述】:

我正用头撞墙……

我的应用在部署后运行良好,真的,我想知道为什么我需要测试 :)。

mvn 测试给了我:

Tests run: 5, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.008 sec <<< FAILURE!
testAddTo_Email(org.red_angus.utils.mail.test.MailMessageTest)  Time elapsed: 0.007 sec  <<< ERROR!
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/mail/internet/InternetAddress
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

这是 POM 的摘要:

   <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>javax.mail-api</artifactId>
        <version>1.5.1</version>
    </dependency>

    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>mailapi</artifactId>
        <version>1.5.1</version>
    </dependency>

    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>smtp</artifactId>   
        <version>1.5.1</version>
    </dependency>

    <dependency>
        <groupId>net.htmlparser.jericho</groupId>
        <artifactId>jericho-html</artifactId>
        <version>3.3</version>
    </dependency>

帮我拯救我的周末;)

【问题讨论】:

标签: java maven junit


【解决方案1】:

来自an other answer on SO

javax:javaee-api 仅用于编译而非运行,包括单元测试。如果您需要适合运行的类,那么您确实需要一个完整的 Java EE 应用服务器。

这就是为什么当您的应用部署在真正的应用服务器上而不是在运行测试时它可以工作的原因。

【讨论】:

  • 谢谢Vakh,但是......不是com.sun.mail/mailapi中的实现吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
相关资源
最近更新 更多