3

私は、wsgen + mavenを使用して、注釈付きのクラスからアーティファクトを生成する方法について1日かけて解決策を探しましたが、常に「クラスファイルが見つかりませんでした」というエラーで終了しました。

私のpom.xmlは次のようになります:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>wsgen</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <sei>fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergence</sei>
                <keep>true</keep>
                <verbose>true</verbose>
                <sourceDestDir>target/generated-sources/artifacts</sourceDestDir>
                <packageName>fr.extelia.ibabi.ws.convergence.stub</packageName>
            </configuration>
            <dependencies>
            <dependency>
                <groupId>javax.jws</groupId>
                <artifactId>jsr181-api</artifactId>
                <version>1.0-MR1</version>
            </dependency>
                <dependency>
                    <groupId>com.sun.xml.ws</groupId>
                    <artifactId>jaxws-rt</artifactId>
                    <version>2.2.5</version>
                </dependency>
            </dependencies>
        </plugin>

その上、私はコマンドラインでアーティファクトを生成しようとしましたが、より良い結果はありませんでした:

wsgen -cp C:\workspace\ibabi\trunk\ibabi-ws\ibabi-ws-service\target\classes -keep -s C:/workspace/ibabi/trunk/ibabi-ws/ibabi-ws-service/target/generated-sources/artifacts fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergence

PS:コマンドラインでエンドポイントクラスの場所として「classes」フォルダーを使用しています。srcフォルダーを使用すると、コマンドライン入力の説明でエラーが返されます。

これに関するどんな助けも本当にありがたいです

ありがとう

4

2 に答える 2

6
  1. コマンドラインwsgenの使用

    wsgen -cp C:\workspace\ibabi\trunk\ibabi-ws\ibabi-ws-service\target\classes 
    -keep -s C:/workspace/ibabi/trunk/ibabi-ws/ibabi-ws-service/target/generated-       
    sources/artifacts 
    fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergence
    

    wsgenコマンドを実行するときは、最初にソースフォルダーがC:/workspace/ibabi/trunk/ibabi-ws/ibabi-ws-service/target/generated-sources/artifactsであり、クラスファイルが C:\ worksheet \ ibabi\trunk内に生成されていることを確認します。 \ ibabi-ws \ ibabi-ws-service \ target\classes。wsgenを実行する前に、 fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergenceバイトコードファイルを C:\ worksheet \ ibabi \ trunk \ ibabi-ws \ ibabi-ws-service \ target\classes内に配置する必要があります。

  2. Mavenの使用

    org.codehaus.mojoの代わりにorg.jvnet.jax-ws-commonsからの依存関係を使用してください。org.codehaus.mojoプラグインはorg.jvnet.jax-ws-commonsに移行されました。http://jax-ws-commons.java.net/jaxws-maven-plugin/wsgen-mojo.html
    からmavenwsgenのさまざまな有効なオプションを参照してください 。プロジェクトがデフォルトのmavenプロジェクト構造に基づいている場合は、次のサンプルスニペットが機能します。

    <build>
      <pluginManagement>
        <plugins>              
            <plugin>
                <groupId>org.jvnet.jax-ws-commons</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>wsgen</goal>
                        </goals>
                    </execution>
                </executions>
    
                <configuration>
                    <sei>fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergence</sei>
                    <sourceDestDir>src/main/java</sourceDestDir>
                </configuration>
    
                <dependencies>
                    <dependency>
                        <groupId>com.sun.xml.ws</groupId>
                        <artifactId>jaxws-tools</artifactId>
                        <version>2.2.5</version>
                    </dependency>
                </dependencies>
              </plugin>
          </plugins>
        </pluginManagement>
    </build>
    

それでも問題が解決しない場合は、プロジェクト構造を投稿してください。

于 2012-02-05T14:00:52.627 に答える
1

ターゲットを定義する必要はありませんが、最初にサービスimplクラスをコンパイルします。mvnコンパイル

于 2013-09-12T08:36:28.280 に答える