关于Java开发Web Service网上已经有很多文章了,我看的是《简单的webservice开发例子》(URL:)。这里想说的是在调试过程中遇到的问题。环境:Windows XP + jdk1.5 + tomcat5.5,假定你的JAVA和TOMCAT均已经配置完成并正常工作。
1.按文章中的介绍做好Web Service的配置和源代码编辑。
2.编译“SayHelloClient2”,注意,此时要加classpath参数,命令如下:
javac -classpath %classpath%;./lib/axis.jar;./lib/jaxrpc.jar SayHelloClient2.java
|
3.运行生成的class。
这里是出问题最多的。下面用命令,结果的方式描述。
[command]prompt> java -classpath %classpath%;./lib/axis.jar;./lib/jaxrpc.jar SayHelloClient2
[result] Exception in thread "main" java.lang.NoClassDefFoundError: SayHelloClient2/java
原因:要将java默认包的路径加到classpath中。
[command]prompt> java -classpath %classpath%;./lib/axis.jar;./lib/jaxrpc.jar;./ SayHelloClient2.java
[result] Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.commons.logging.LogFactory
at org.apache.axis.components.logger.LogFactory.class$(LogFactory.java:45)
at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler.java:43)
at org.apache.axis.client.Service.getAxisClient(Service.java:104)
at org.apache.axis.client.Service.<init>(Service.java:113)
at SayHelloClient2.main(SayHelloClient2.java:12)
原因:没有找到“commons-logging.jar”包
[command]prompt> java -classpath %classpath%;./lib/axis.jar;./lib/jaxrpc.jar;./lib/commons-logging-1.0.4.jar;./ SayHelloClient2.java
[result] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton
at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler.java:43)
at org.apache.axis.client.Service.getAxisClient(Service.java:104)
at org.apache.axis.client.Service.<init>(Service.java:113)
at SayHelloClient2.main(SayHelloClient2.java:12)
原因:没有找到“commons-discovery.jar”包
[command]prompt> java -classpath %classpath%;./lib/axis.jar;./lib/jaxrpc.jar;./lib/commons-logging-1.0.4.jar;./lib/commons-discovery-0.2.jar;./ SayHelloClient2.java
[result] Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException
at org.apache.axis.configuration.FileProvider.configureEngine(FileProvider.java:179)
at org.apache.axis.AxisEngine.init(AxisEngine.java:172)
at org.apache.axis.AxisEngine.<init>(AxisEngine.java:156)
at org.apache.axis.client.AxisClient.<init>(AxisClient.java:52)
at org.apache.axis.client.Service.getAxisClient(Service.java:104)
at org.apache.axis.client.Service.<init>(Service.java:113)
at SayHelloClient2.main(SayHelloClient2.java:12)
原因: 没有找到“saaj.jar”包
[command] java -classpath %classpath%;./lib/axis.jar;./lib/jaxrpc.jar;./lib/commons-logging-1.0.4.jar;./lib/commons-discovery-0.2.jar;./lib/saaj.jar;./ SayHelloClient2.java
[result] 2009-12-13 20:09:59 org.apache.axis.utils.JavaUtils isAttachmentSupported
警告: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
return value is Hello zhangsan
其实到这里,已经可以运行,并得到结果了。警告的原因是没有找到“mail.jar”和“activation.jar”包。
[command] java -classpath %classpath%;./lib/axis.jar;./lib/jaxrpc.jar;./lib/commons-logging-1.0.4.jar;./lib/commons-discovery-0.2.jar;./lib/saaj.jar;./lib/mail-1.4.jar;./lib/activation-1.1.jar;./ SayHelloClient2.java
[result] return value is Hello zhangsan
|
以上是调试的过程。
阅读(1824) | 评论(0) | 转发(0) |