如何使用 Axis2c 从 WSDL 文件生成 C 文件
How to use Axis2c to generate C files from WSDL file
我想在 C 代码中使用网络服务。我正在努力成为一个客户。我需要一些东西来完成 Axis2java 所做的事情并从 wsdl 文件生成 classes。
我发现 Axis2c 从 wsdl 文件生成 (.c) 文件。
我是从 here 下载的。解压缩它。我为 AXIS2C_HOME 创建了环境变量,并创建了 AXIS2C_CLASSPATH。
但我做不到。
当我键入此命令时:
WSDL2C -uri -ss -sd -d none -u -f -o
我收到此错误:
回声
错误:无法找到或加载 main class org.apache.axis2.wsdl.WSDL2C
我该如何解决这个问题。请告诉我如何正确使用此 Axis2c 工具。
提前致谢。
@loentar:我安装了 Axis2/Java 并为其设置了环境变量。现在我 运行 wsdl2c.bat 我明白了 :
E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.bat
E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>回显关闭
用法:java [-options] class [args...]
(执行 class)
或 java [-options] -jar jarfile [args...]
(执行一个jar文件)
其中选项包括:
-d32 使用 32 位数据模型(如果可用)
-d64 使用 64 位数据模型(如果可用)
-服务器到 select "server" 虚拟机
默认 VM 是服务器。
-cp
-class路径
一个 ;分离的目录列表,JAR 档案,
和 ZIP 档案以搜索 class 文件。
-D=
设置系统 属性
-详细:[class|gc|jni]
启用详细输出
-version 打印产品版本并退出
-版本:
要求指定版本为 运行
-showversion 打印产品版本并继续
-jre-限制搜索 | -no-jre-限制搜索
include/exclude 版本搜索中的用户私有 JRE
-? -help 打印此帮助信息
-X 打印非标准选项的帮助
-ea[:...|:]
-启用断言[:...|:]
启用具有指定粒度的断言
-da[:...|:]
-disableassertions[:...|:]
禁用具有指定粒度的断言
-esa | -启用系统断言
启用系统断言
-dsa | -禁用系统断言
禁用系统断言
-代理库:[=]
加载本机代理库,例如-agentlib:hprof
另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
-代理路径:[=]
通过完整路径名加载本机代理库
-java代理人:[=]
加载 Java 编程语言代理,参见 java.lang.instrument
-溅:
显示带有指定图像的启动画面
见 http://www.oracle.com/technetwork/java/javase/documentation/index.html
矿石详情。
之后我 运行 这个命令:
E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.bat -uri hello.wsdl
-u -uw
E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>回显关闭
无法识别的选项:-uri
错误:无法创建 Java 虚拟机。
错误:发生致命异常。程序将会退出。
我能做什么?
顺便说一句,我正在使用 windows 8。
除了 Axis2/C,您还必须安装 Axis2/Java。
AXIS2_HOME
必须指向 Axis2/Java 安装。
详情请见codegen的README。
创建和编译客户端的完整命令列表是:
# 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 设置了环境变量,并将它们的 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:\dev\Tools\axis2-1.6.2
然后我输入了 WSDL2C 代码生成器的命令:
WSDL2C.bat -uri hello.wsdl -u -uw
砰!它工作正常。
现在我可以从 WSDL 文件生成 C 文件了。
我想在 C 代码中使用网络服务。我正在努力成为一个客户。我需要一些东西来完成 Axis2java 所做的事情并从 wsdl 文件生成 classes。 我发现 Axis2c 从 wsdl 文件生成 (.c) 文件。 我是从 here 下载的。解压缩它。我为 AXIS2C_HOME 创建了环境变量,并创建了 AXIS2C_CLASSPATH。 但我做不到。
当我键入此命令时:
WSDL2C -uri -ss -sd -d none -u -f -o
我收到此错误:
回声 错误:无法找到或加载 main class org.apache.axis2.wsdl.WSDL2C
我该如何解决这个问题。请告诉我如何正确使用此 Axis2c 工具。
提前致谢。
@loentar:我安装了 Axis2/Java 并为其设置了环境变量。现在我 运行 wsdl2c.bat 我明白了 :
E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.bat E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>回显关闭 用法:java [-options] class [args...] (执行 class) 或 java [-options] -jar jarfile [args...] (执行一个jar文件) 其中选项包括: -d32 使用 32 位数据模型(如果可用) -d64 使用 64 位数据模型(如果可用) -服务器到 select "server" 虚拟机 默认 VM 是服务器。 -cp -class路径 一个 ;分离的目录列表,JAR 档案, 和 ZIP 档案以搜索 class 文件。 -D= 设置系统 属性 -详细:[class|gc|jni] 启用详细输出 -version 打印产品版本并退出 -版本: 要求指定版本为 运行 -showversion 打印产品版本并继续 -jre-限制搜索 | -no-jre-限制搜索 include/exclude 版本搜索中的用户私有 JRE -? -help 打印此帮助信息 -X 打印非标准选项的帮助 -ea[:...|:] -启用断言[:...|:] 启用具有指定粒度的断言 -da[:...|:] -disableassertions[:...|:] 禁用具有指定粒度的断言 -esa | -启用系统断言 启用系统断言 -dsa | -禁用系统断言 禁用系统断言 -代理库:[=] 加载本机代理库,例如-agentlib:hprof 另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help -代理路径:[=] 通过完整路径名加载本机代理库 -java代理人:[=] 加载 Java 编程语言代理,参见 java.lang.instrument -溅: 显示带有指定图像的启动画面 见 http://www.oracle.com/technetwork/java/javase/documentation/index.html 矿石详情。
之后我 运行 这个命令:
E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.bat -uri hello.wsdl -u -uw E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>回显关闭 无法识别的选项:-uri 错误:无法创建 Java 虚拟机。 错误:发生致命异常。程序将会退出。
我能做什么? 顺便说一句,我正在使用 windows 8。
除了 Axis2/C,您还必须安装 Axis2/Java。
AXIS2_HOME
必须指向 Axis2/Java 安装。
详情请见codegen的README。
创建和编译客户端的完整命令列表是:
# 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 设置了环境变量,并将它们的 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:\dev\Tools\axis2-1.6.2
然后我输入了 WSDL2C 代码生成器的命令:
WSDL2C.bat -uri hello.wsdl -u -uw
砰!它工作正常。 现在我可以从 WSDL 文件生成 C 文件了。