如何使用 Axis2c 从 WSDL 文件生成 C 文件



我想在C代码中使用Web服务。我正在尝试结交客户。我需要一些东西来做 Axis2java 所做的事情,并从 wsdl 文件生成类。我发现 Axis2c 制作从 wsdl 文件生成的 (.c) 文件。我从这里下载了它.解压缩它。我为AXIS2C_HOME创建了环境变量,并创建了AXIS2C_CLASSPATH。但我无法让它工作。

当我输入以下命令时:

WSDL2C -uri -ss -sd -d none -u -f -o

我收到此错误:

回声关闭错误:找不到或加载主类 org.apache.axis2.wsdl.WSDL2C

我该如何解决这个问题。 请告诉我如何正确使用此 Axis2c 工具。

提前谢谢你。

@loentar : 我

安装了 Axis2/Java 并为其设置了环境变量。 现在我运行 wsdl2c.bat 我得到这个:

E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.batE:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>echo off用法: java [-options] 类 [args...]           (执行类)   或 Java [-选项] -jar jarfile [args...]           (执行 jar 文件)其中选项包括:    -d32 使用 32 位数据模型(如果可用)    -d64 使用 64 位数据模型(如果可用)    -服务器以选择"服务器"VM                  默认 VM 为服务器。    -cp    -类路径                  一个;单独的目录列表,JAR 存档,                  和 ZIP 存档以搜索类文件。    -D=                  设置系统属性    -verbose:[class|gc|jni]                  启用详细输出    -版本打印产品版本和退出    -版本:                  需要指定的版本才能运行    -显示版本 打印产品版本并继续    -JRE-限制搜索 |-no-jre-restrict-search                  在版本搜索中包含/排除用户专用 JRE    -?-帮助打印此帮助消息    -X 打印非标准选项的帮助    -ea[:...|:]    -启用断言[:...|:]                  启用具有指定粒度的断言    -da[:...|:]    -禁用断言[:...|:]                  禁用具有指定粒度的断言    -欧空局 |-启用系统断言                  启用系统断言    -DSA |-禁用系统断言                  禁用系统断言    -代理库:[=]                  加载本机代理库,例如 -agentlib:HPROF                  另请参阅,-agentlib:jdwp=help 和 -agentlib:hprof=help    -代理路径:[=]                  按完整路径名加载本机代理库    -javaagent:[=]                  加载 Java 编程语言代理,请参阅 java.lang.instrument    -溅:                  显示具有指定图像的初始屏幕见 http://www.oracle.com/technetwork/java/javase/documentation/index.html m矿石细节。

之后我运行以下命令:

E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.bat -uri hello.wsdl-u -uwE:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>echo off无法识别的选项:-uri错误:无法创建 Java 虚拟机。错误:发生致命异常。程序将退出。

我能做什么?顺便说一下,我正在使用Windows 8。

除了 Axis2/C 之外,您还必须安装 Axis2/Java。

AXIS2_HOME必须指向 Axis2/Java 安装。

有关详细信息,请参阅代码生成的自述文件。

用于创建和编译客户端的命令的完整列表是:

# create stubs
sh $AXIS2C_HOME/bin/tools/wsdl2c/WSDL2C.sh -uri Calculator.wsdl -u -uw
# implement main() in src/your_client.c
# see samples/codegen/client/calculator for example
# compile and link client
gcc -o calculator_client src/*.c -I$AXIS2C_HOME/include/axis2-1.6.0 -L$AXIS2C_HOME/lib -laxutil -laxis2_axiom -laxis2_parser -laxis2_engine -lpthread -laxis2_http_sender -laxis2_http_receiver -ldl -Wl,--rpath -Wl,$AXIS2C_HOME/lib

我为 JAVA_HOME、AXIS2_HOME、AXIS2C_HOME 设置了 envinroment 变量,并将他们的 lib 文件夹添加到 CLASSPATH 中。 运行此命令后: WSDL2C.bat -uri hello.wsdl -u -uw我收到此消息:

echo off 
Error: Could not find or load main class org.apache.axis2.wsdl.WSDL2C

我自己找到了解决方案。 :)我仔细检查了我是否为AXIS2_HOME创建了环境变量,我看到它在那里,正确。尽管它存在,但我试图在命令提示符下再次设置它。所以我输入:

SET AXIS2_HOME=E:devToolsaxis2-1.6.2

然后我输入了 WSDL2C 代码生成器的命令:

WSDL2C.bat -uri hello.wsdl -u -uw

砰!它工作正常。现在我可以从 WSDL 文件生成 C 文件。

相关内容

  • 没有找到相关文章

最新更新