![](/img/trans.png)
[英]Axis2 Soap WS client: java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/XmlSchema
[英]java.lang.NoClassDefFoundError: org/apache/axis2/client/Stub
我已經使用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
如果您使用的是tomcat,請將位於axis2 / lib文件夾下的所有jar文件復制到tomcat / lib文件夾中,並將它們添加到類路徑中,如下所示:D:\\ axis2-1.6.2 \\ lib *
線程“main”中的異常java.lang.NoClassDefFoundError:org / apache / axis2 / client / Stub
通過將axis2-kernel-1.6.2添加到類路徑可以消除上述錯誤,但是在使用wsdl2java.bat生成存根之后,您可能會開始獲得其他錯誤。
因此,在編譯客戶端時,最好將所有axis2-jar添加到類路徑中。
希望這可以幫助
沒有一個答案對我有幫助。 這就是我做的。
我使用eclipse生成Runnable Jar(右鍵單擊 - > Export-> Runnable Jar),所有庫都作為包添加。 它給了我一個JAR,我可以從命令行運行。
然后我在eclipse和Jar之間做了差異,我的構建創建了。 我能夠找到我的構建沒有放入Jar的缺失依賴項。
如果您遇到JBoss類加載器的相同問題,請按照此處和此處的提示進行操作。
最重要的部分是在JBoss模塊配置中定義一個新模塊,並在MANIFEST.MF文件中找到該模塊。
Maven將幫助您完成后續部分。 以下是將軸模塊添加到Manifest文件的示例配置。
<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插件,如maven-jar-plugin或maven-war-plugin。
依賴包名稱必須與您在JBoss模塊中為模塊名稱指定的名稱匹配。 上面的軸模塊在JBoss模型中定義,如上面的鏈接所述。
<module xmlns="urn:jboss:module:1.1" name="axis.axis">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<!-- ... -->
</module>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.