4

我们的客户正在使用 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>
4

2 回答 2

3

如果您只在类路径中提供文件夹,则不会加载 jar 文件。您应该使用 jar 名称(如在您的 UPDATE2 中)或通配符(看看这里这里)。

至于您缺少 LogFactory 的问题-您应该在类路径中添加一个适当的 jar(例如 commons-logging.jar,尝试http://www.findjar.com)。

于 2013-01-22T16:36:23.740 回答
2

试试这个: java -cp %CD%\* org.apache.axis.wsdl.WSDL2Java

用于记录的 jar 已经在 lib 目录中。如果您在 lib 目录中,上述命令应该可以工作。

于 2013-09-20T16:56:29.750 回答