使用glassfish-embedded-all和arquillian-glassfish-embedded-3.1工件执行maven安装时出错

时间:2013-10-13 17:42:40

标签: maven java-ee glassfish jboss-arquillian glassfish-embedded

我正在尝试在pom上执行maven install,结果显示为:

  

严重:SEC5054:证书已过期

此结果在测试执行开始后出现。 我一直在谷歌搜索这个问题,但我只找到了与真正的glassfish应用服务器相关的解决方案。他们建议删除它们所在文件夹中的违规证书等等(我看到的页面大多是this)或者“解开”玻璃鱼嵌入式以取消认证,然后将其捣乱试。

请注意,我正在执行maven install,而不是在应用程序服务器上执行实际部署。这就是为什么我不能接受许多博客给出的建议

pom包含以下依赖项:

 <dependencies>
<dependency>
  <groupId>org.glassfish.main.extras</groupId>
  <artifactId>glassfish-embedded-all</artifactId>
  <version>3.1.2.2</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.10</version>
  <scope>test</scope>
  <optional>true</optional>
</dependency>
<dependency>
  <groupId>org.jboss.arquillian.junit</groupId>
  <artifactId>arquillian-junit-container</artifactId>
  <version>1.0.0.Final</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.jboss.arquillian.container</groupId>
  <artifactId>arquillian-glassfish-embedded-3.1</artifactId>
  <version>1.0.0.CR3</version>
  <scope>test</scope>
</dependency>

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

  1. 创建自定义domain.xml
  2. <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>更改为<jvm-options>-Djavax.net.ssl.trustStore=insertpathtocacert/cacerts.jks</jvm-options>
  3. arquillian.xml设置configurationXml设置为domain.xml的路径:https://docs.jboss.org/author/display/ARQ/GlassFish+3.1+-+Embedded
  4. 或者:Arquillian Embedded Glassfish Certificate Expired

答案 1 :(得分:1)

我假设测试阶段启动了导致错误的嵌入式glassfish服务器。安装阶段在测试阶段之后。如果要执行任何测试用例,则必须解除并删除冲突的证书(在.m2文件夹中)。否则,您可以使用标志-DskipTests = true来绕过测试阶段。

答案 2 :(得分:1)

至少自Glassfish 3.0.1和still reported as an Open Issue in Glassfish 3.1.2以来,这是一个已知问题。 Oracle提供了一些解决方法 - 所有这些都不适用于您的情况。但他们也说:

  

如果未以此方式配置实例,请忽略该警告。实例的功能不受影响。

所以即使这是对SO问题的蹩脚答案:不要为你的测试案例而烦恼。 (我个人花了很多时间试图解决这个问题。)新版本的Glassfish将为我们解决这个问题,或者不会。让我们停止打扰。

<强>更新

如果您遇到导致构建失败的问题,以下pom适用于我而没有失败的构建:

<!--snip-->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.jboss.arquillian</groupId>
            <artifactId>arquillian-bom</artifactId>
            <version>1.0.3.Final</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.glassfish.main.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <version>3.1.2</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian.container</groupId>
        <artifactId>arquillian-glassfish-embedded-3.1</artifactId>
        <version>1.0.0.CR4</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
        <version>1.1.1.Final</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.derby</groupId>
        <artifactId>derbyclient</artifactId>
        <version>10.7.1.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>