项目类路径中缺少java ee api,而在maven中使用httpunit进行servlet测试

时间:2011-09-29 21:03:07

标签: java servlets maven junit http-unit

我想使用maven运行servlet测试示例here。 Javaee web api应声明为provided

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

    <dependency>
        <groupId>httpunit</groupId>
        <artifactId>httpunit</artifactId>
        <version>1.7</version>
        <scope>test</scope>
    </dependency>

但是,示例中的一个测试会抛出ServletException。 NetBeans抱怨java ee api is missing on project classpath。如何解决这个问题?

修改

这不是NetBeans问题,而是一个maven问题。

2 个答案:

答案 0 :(得分:9)

现在这是我在Java时代遇到的最令人虚弱的问题。接下来是我所见过的最荒谬的解决方法:

<dependency>
    <groupId>httpunit</groupId>
    <artifactId>httpunit</artifactId>
    <version>1.7</version>
    <scope>test</scope>
</dependency>

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

是的,置换pom.xml中的依赖关系声明(请参阅此处"why")并最后生成javaee-web-api

答案 1 :(得分:0)

这意味着maven(或netbeans ......我在10年内没有使用netbeans),无法下载或在本地存储库中找到该工件。

范围提供意味着:我需要jar来编译我的源代码,但不要将jar包装在最终包中。