我们的客户正在使用 Axis 1.0 为我们基于 WCF 的 SOAP 服务构建客户端。
它对他们不起作用,我想在我的机器上本地运行 WSDL2Java 客户端,以便我可以进行试验。
我已经在我的机器上安装了 JDK,java
从命令行运行。
阅读 Axis 1.0 的安装指南并使用 -cp 开关,我得到以下信息:
java -cp E:\Temp\Axis\xml-axis-10\lib org.apache.axis.wsdl.WSDL2Java
(该路径包含所有 jar 文件)
并得到以下内容:
Error: Could not find or load main class org.apache.axis.wsdl.WSDL2Java
有人知道我做错了什么吗?
更新 1:
我试过将用户 CLASSPATH 设置为:
C:\Program Files\Java\jdk1.7.0_09\lib;E:\Temp\Axis\xml-axis-10\lib
没有骰子,同样的错误。
更新 2:
如果我尝试这个命令行,我会得到一些不同的东西,它现在似乎正在加载类:
E:\Temp>java -cp E:\Temp\Axis\xml-axis-10\lib\axis.jar org.apache.axis.wsdl.WSDL2Java
Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.commons.logging.LogFactory
at org.apache.axis.components.logger.LogFactory$1.class$(LogFactory.java:68)
at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:84)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:80)
at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:72)
at org.apache.axis.i18n.ProjectResourceBundle.<clinit>(ProjectResourceBundle.java:92)
at org.apache.axis.i18n.MessagesConstants.<clinit>(MessagesConstants.java:71)
at org.apache.axis.utils.Messages.<clinit>(Messages.java:81)
at org.apache.axis.wsdl.WSDL2Java.<clinit>(WSDL2Java.java:106)
E:\Temp>
最佳答案
如果您只在类路径中提供文件夹,则不会加载 jar 文件。您应该使用 jar 名称(如在您的 UPDATE2 中)或通配符(看看 here 和 here )。
至于您缺少 LogFactory 的问题 - 您应该在类路径中添加一个合适的 jar(例如 commons-logging.jar,尝试 http://www.findjar.com)。
关于java - 如何使用 Axis 1.0 运行 WSDL2Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463135/