5

maven installpom で実行しようとしていますが、表示される結果は次のとおりです。

Grave: SEC5054: 証明書の有効期限が切れています

この結果は、テストの実行が開始された直後に表示されます。私はこの問題をグーグルで調べてきましたが、実際のグラスフィッシュ アプリケーション サーバーに関連する解決策しか見つかりませんでした。彼らは、問題のある証明書をそれらが配置されているフォルダーから削除するなどのことをお勧めします(私が見たページはほとんどこのようなものです)、またはglassfish-embeddedを「unjar」して証明書を削除してから再度jarします。

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>

4

3 に答える 3

1

これは、少なくとも Glassfish 3.0.1 以降の既知の問題であり、Glassfish 3.1.2 でも未解決の問題として報告されています。オラクルはいくつかの回避策を提供しています - すべてがあなたの状況に当てはまるわけではありません。しかし、彼らは次のようにも言います。

インスタンスがこのように構成されていない場合は、警告を無視してください。インスタンスの機能は影響を受けません。

したがって、これが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>
于 2013-10-25T12:33:30.073 に答える
1

テスト段階で、エラーの原因となっている組み込みのグラスフィッシュ サーバーが起動すると想定しています。インストール フェーズは、テスト フェーズの後にあります。テスト ケースを実行する場合は、競合する証明書 (.m2 フォルダー内) を unjar して削除する必要があります。それ以外の場合は、フラグ -DskipTests=true を使用してテスト フェーズをバイパスできます。

于 2013-10-25T05:17:38.367 に答える
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設定を構成します: https://docs.jboss.org/author/display/ARQ/GlassFish+3.1+-+EmbeddedconfigurationXmldomain.xml

またはこれ: Arquillian Embedded Glassfish Certificate Expired

于 2013-10-21T21:54:47.717 に答える