3

Axis2 を使用する Web サービスをプロジェクトに追加しましたが、アプリケーションを実行できません。

これは私が使用しているクラスパスです:

<property name="classpath" location="bin:EventReservationCore/bin:EventReservationCore/db:EventReservationCore/lib/*:EventReservationCore/lib/util_iso2.jar:EventReservationCore/lib/sqlitejdbc-v056.jar:AuthorizationRMI/lib/AuthorizationService.jar:EventReservationCore/lib/activemq-all-5.4.3.jar:/home/ander/axis2-1.6.1/webapp/axis2.war"/>

これは、Axis2 Web サービスを追加するまで実行されるターゲットです。

<target name="run.besocial">
            <java classname="eventReservationServer.ReservationEventServer" classpath="${classpath}" fork="true">
                <jvmarg value="-Djava.rmi.server.codebase=file:EventReservationCore/bin/ file:EventReservationCore/lib/util_iso2.jar"/>
                <jvmarg value="-Djava.security.policy=EventReservationCore/java.policy" />
            </java>
    </target>

その結果、次のエラーが発生します。

 [java] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/axis2/client/Stub
 [java]     at java.lang.ClassLoader.defineClass1(Native Method)
 [java]     at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
 [java]     at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
 [java]     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
 [java]     at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
 [java]     at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
 [java]     at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
 [java]     at java.security.AccessController.doPrivileged(Native Method)
 [java]     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 [java]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
 [java]     at eventReservationServer.eventServerGateway.WSEventServerGateway.getEvents(WSEventServerGateway.java:19)
 [java]     at eventReservationServer.ReservationEventServer.<init>(ReservationEventServer.java:101)
 [java]     at eventReservationServer.ReservationEventServer.main(ReservationEventServer.java:130)
 [java] Caused by: java.lang.ClassNotFoundException: org.apache.axis2.client.Stub
 [java]     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 [java]     at java.security.AccessController.doPrivileged(Native Method)
 [java]     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 [java]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
 [java]     ... 15 more
4

4 に答える 4

5

tomcat を使用している場合は、axis2/lib フォルダーにあるすべての jar ファイルを tomcat/lib フォルダーにコピーし、D:\axis2-1.6.2\lib* のようにクラスパスに追加します。

于 2012-05-03T19:36:07.633 に答える
2

スレッド「メイン」の例外 java.lang.NoClassDefFoundError: org/apache/axis2/client/Stub

上記のエラーは、axis2-kernel-1.6.2 をクラス パスに追加することで削除できますが、wsdl2java.bat でスタブを生成した後、他のエラーが発生する可能性があります。

そのため、クライアントのコンパイル中に、すべての axis2-jar をクラスパスに追加することをお勧めします。

お役に立てれば

于 2012-05-03T19:41:48.380 に答える
0

JBoss クラス ローダーで同じ問題に直面した場合は、こちらこちらのヒントに従ってください。

最も重要な部分は、JBoss モジュール設定で新しいモジュールを定義し、MANIFEST.MF ファイルでモジュールを見つけることです。

Maven は、後の部分を行うのに役立ちます。以下は、軸モジュールをマニフェスト ファイルに追加するためのサンプル構成です。

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>
            <configuration>
                <archive>
                    <manifestEntries> <!--Manually added JBoss Modules (that are not found by JBoss class loader) must be loaded here-->
                        <Dependencies>axis.axis</Dependencies>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>

パッケージの種類に応じて、maven-jar-plugin や maven-war-plugin などの他の maven プラグインを使用します。

依存パッケージ名は、JBoss モジュールでモジュール名に指定した名前と一致する必要があります。上記の軸モジュールは、上記のリンクで説明されているように JBoss モデルで定義されています。

 <module xmlns="urn:jboss:module:1.1" name="axis.axis">
    <properties>
        <property name="jboss.api" value="private"/>
    </properties> 
 <!--  ...   -->
 </module>
于 2015-04-08T05:33:16.177 に答える
0

答えはどれも私を助けませんでした。これが私がしたことです。

Eclipse を使用して Runnable Jar (右クリック -> Export -> Runnable Jar) を生成し、すべてのライブラリをパッケージとして追加しました。コマンドラインから実行できるJARが提供されました。

次に、Eclipse の Jar と自分のビルドで作成した Jar との間で diff を実行しました。私のビルドがJarに入れていなかった不足している依存関係を見つけることができました。

于 2015-02-12T23:34:22.720 に答える