关于网友提出的“ 100分求助使用axis开发web services的问题”问题疑问,本网通过在网上对“ 100分求助使用axis开发web services的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 100分求助使用axis开发web services的问题描述:
上一次发贴子,本来可以了,可是现在又不行了,到底是什么问题呀?
我根据这篇文章:
http://www-900.ibm.com/developerWorks/cn/webservices/ws-startaxis/index.shtml
做了一个web services应用,前面都很顺利,可是在我生成java客户端,就是运行
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl
时,出现如下错误:
C:\Tomcat5\webapps\axis\WEB-INF>Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WS
DL2Java http://localhost:8080/axis/Hello.jws?wsdl
java.lang.NoClassDefFoundError: javax/activation/DataSource
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory.class$(J
AFDataHandlerSerializerFactory.java:76)
at org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory.getSeria
lizerClass(JAFDataHandlerSerializerFactory.java:85)
at org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory.
AFDataHandlerSerializerFactory.java:73)
at org.apache.axis.encoding.DefaultTypeMappingImpl.
pingImpl.java:154)
at org.apache.axis.encoding.DefaultTypeMappingImpl.
pingImpl.java:130)
at org.apache.axis.encoding.DefaultTypeMappingImpl.getSingleton(DefaultT
ypeMappingImpl.java:124)
at org.apache.axis.wsdl.toJava.Emitter$1.
at org.apache.axis.wsdl.toJava.Emitter.setTypeMappingVersion(Emitter.jav
a:522)
at org.apache.axis.wsdl.toJava.Emitter.setup(Emitter.java:407)
at org.apache.axis.wsdl.toJava.Emitter.run(Emitter.java:385)
at org.apache.axis.wsdl.gen.WSDL2.run(WSDL2.java:311)
at org.apache.axis.wsdl.WSDL2Java.main(WSDL2Java.java:290)
C:\Tomcat5\webapps\axis\WEB-INF>
但是我得类路径中已经设置了activation.jar包,那个类就在这个包中:
C:\Tomcat5\webapps\axis\WEB-INF>set classpath
CLASSPATH=.;d:\sybase\ASEP\3pclass.zip;d:\sybase\ASEP\monclass.zip;c:\j2sdk\lib\
tools.jar;C:\j2sdkee\lib\j2ee.jar;D:\mylib\xalan\bin\xercesImpl.jar;D:\mylib\xal
an\bin\xalan.jar;D:\mylib\xerces\xercesSamples.jar;D:\mylib\xerces\xercesImpl.ja
r;C:\Tomcat5\common\lib\jasper-compiler.jar;C:\Tomcat5\common\lib\jasper-runtime
.jar;D:\mylib\jdom\build\jdom.jar;C:\Tomcat5\common\lib\soap.jar;C:\Tomcat5\comm
on\lib\saaj.jar;C:\Tomcat5\common\lib\commons-logging.jar;C:\Tomcat5\common\lib\
jaxrpc.jar;C:\Tomcat5\common\lib\commons-discovery.jar;C:\Tomcat5\common\lib\wsd
l4j.jar;C:\Tomcat5\common\lib\log4j-1.2.8.jar;C:\Tomcat5\common\lib\axis-ant.jar
;C:\Tomcat5\common\lib\axis.jar;C:\Tomcat5\common\lib\activation.jar;C:\Tomcat5\
common\lib\xmlsec.jar;C:\Tomcat5\common\lib\mail.jar;D:\mylib\jaf\activation.jar
运行完毕,tomcat自己也出错了,自动关闭,百思不得其解,谁能帮我?
解决方案1:
呵呵,我又找到个解决问题的办法,把哪写文章中说的放到common/lib下的类放到axis/web-inf/lib中就行了,这个在作怪-Djava.ext.dirs=lib,制定使用当前目录下的lib下的类。
解决方案2: 呵呵,他那篇文章的确有点问题,上一次让你提前类路径拿了你50份没解决问题,给个简单办法,修改它哪个命令:
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl
为:
Java org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl
在web-inf下试试看,肯定没问题了。你得包找不到应该是路径的问题。 我的通过了。
我刚才试了试,好象也是这个错误,用下面这个方法吧
wsdl2java.bat
=============
set AXIS_HOME=E:\jboss-3.2.1_tomcat-4.1.24\server\default\deploy\axis.war\WEB-INF
set AXIS_LIB=%AXIS_HOME%\lib
set AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery.jar;%AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\wsdl4j.jar
java -cp .;"%AXISCLASSPATH%" org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl
pause