cxf 客户端调用gsoap生成的服务
---》下载 cxf并解压,进入cxf的bin目录下执行如下命令
wsdl2java -frontend jaxws21 -p com.test -d E:\codeTest\myCXF -client http://127.0.0.1:50001?wsdl
或
wsdl2java -p com.test -d E:\codeTest\myCXF -client E:\codeTest\myCXF\xxxx.wsdl
参数解释:
-frontend jaxws21
若不加这个参数 有几处的super地方报错
错误原因:由于jax-ws2.2规约与java6冲突 故需要降低jax-ws规约版本
解决方法:在生成的时候服务路径前面加上 -frontend jaxws21
http://blog.csdn.net/wangnetkang/article/details/7821294
-p 生成包
-d 生成的包存放路径
-client 生成客户端调用代码
**.wsdl wsdl路径
---》建立工程,把cxf下的lib下的tar加入工程,并把生成的com.test加入工程。
---》自动生成的代码中有个自动生成调用的类(可以在工程下搜一下main方法就知道是那个类了:D )
---》另:用gsaop生成服务端的时候
//gsoap ns service name: xxxx
//gsoap ns service namespace: http://websrv.cs.fsu.edu/~engelen/xxxx.wsdl
//gsoap ns service location: http://websrv.cs.fsu.edu/~engelen
//gsoap ns service executable: xxxx.cgi
//gsoap ns schema namespace: urn:xxxx
由于gsoap ns service location 是随便写的,以为只是命名空间,导致了如下错误:
Caused by: java.net.ConnectException: ConnectException invoking http://websrv.cs.fsu.edu/~engelen/xxxx.cgi: Connection timed out: connect
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
改成如下,就可以。
//gsoap ns service name: xxxx
//gsoap ns service namespace: http://127.0.0.1:50001?xxxx.wsdl
//gsoap ns service location: http://127.0.0.1:50001
//gsoap ns service executable: xxxx.cgi
//gsoap ns schema namespace: urn:xxxx
---》再另:gsoap生成wsdl文件
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/"/>
去掉schemaLocation="http://schemas.xmlsoap.org/soap/encoding/" ,wsdl2java否则无法解析,报如下错误:
WSDLToJava Error: org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsd
l definition from : http://127.0.0.1:50001?wsdl
Caused by : WSDLException: faultCode=PARSER_ERROR: Problem parsing 'http://127.0
.0.1:50001?wsdl'.: java.net.ConnectException: Connection refused: connect
分享到:
相关推荐
Java客户端调用C++ GSoap生成的Web服务是一种跨语言的互操作性实践,它涉及到Java和C++两种编程语言的交互,以及GSoap库在其中的作用。GSoap是开源的C/C++库,用于构建SOAP(简单对象访问协议)服务和客户端,允许...
- **C/C++客户端开发**:在C/C++端,利用gSOAP生成客户端代理代码,以便调用Java CXF服务。`2.pri`文件包含了项目配置,如头文件和源文件列表。`Main.cpp`是客户端应用程序的主入口,它会显示一个GUI窗口(可能由`...
- Java使用JAX-WS(Java API for XML Web Services)框架来处理Web服务的客户端调用。 - JAX-WS提供了工具,如wsimport,可以从WSDL文件生成Java客户端存根类,这些类可以被Java代码直接调用。 3. **C++ ...
4. **生成服务客户端/服务器端代码**:使用WSDL-to-code工具(如Apache CXF、gSOAP等)将WSDL转换为实际的编程语言代码,这将自动生成服务接口和消息处理逻辑。 5. **集成到项目**:将生成的代码集成到你的应用中,...
3. **客户端生成**:学习如何使用WSDL文件生成客户端代理代码,例如使用Apache CXF、JAX-WS等工具。 4. **服务端实现**:理解如何根据WSDL文件定义的服务接口,实现具体的业务逻辑。 5. **HTTP与TCP/IP通信**:了解...
2. **选择绑定库**:C++中有很多库可以用于调用Web服务,如gSOAP、libcurl、CXF C++等。这些库提供了生成客户端代理代码的功能,这些代码可以用来调用Web服务的方法。 3. **生成客户端代码**:使用选定的库,根据...
2. **解析WSDL**:使用SOAP库或者开发工具(如Apache CXF、axis2、gSOAP等)解析WSDL文件,生成客户端代理类或 Stub。这些类提供了与服务交互的方法。 3. **创建客户端**:在Java中,你可以使用JAX-WS(Java API ...
WSDL文件是客户端调用WebService的关键参考文档。 - **WSML**:Web Services Meta Language,微软特定的实现,用于描述WSDL中定义的服务与实际实现之间的对应关系。 3. **WebService的技术特点** - **跨平台**:...
在C++中调用Web服务通常需要借助第三方库或框架,如gSOAP、Apache CXF、Qt等,这些工具提供了编译器和运行时支持,帮助开发者处理SOAP消息的序列化和反序列化。 3. gSOAP库 gSOAP是广泛使用的C/C++ Web服务开发...
这个过程通常由代码生成工具完成,如Apache CXF、gSOAP或wsimport(JAX-WS的一部分)。这些工具解析WSDL文件,并根据其内容自动生成C++代码,包括请求和响应的消息结构,以及调用服务的方法。 以gSOAP为例,这是一...
除了Apache Axis,Java还可以使用JAX-WS(Java API for XML Web Services)标准来调用Web服务,或者使用第三方库如gSOAP、cxf等。每种方法都有其优缺点,选择取决于具体需求和项目环境。 10. **安全性**: 在实际...
为了离线生成源码,开发者通常会使用工具如Apache CXF、 wsimport(JAX-WS的一部分)或gsoap(C/C++)。这些工具根据WSDL文件生成客户端或服务端的代码骨架,然后开发者可以在生成的代码基础上进行扩展和定制。 总...
5. **生成WSDL和客户端代码**:如果需要,使用WSDL生成器创建或修改WSDL文件,并自动生成客户端调用代码。 四、开发和调试 1. **编写服务代码**:在IDE中使用支持的语言(如Java、C#)编写Web服务的业务逻辑。 2. ...
通过以上步骤,我们可以在Axis2服务器上部署一个简单的Webservice,并通过gSOAP客户端进行测试和调用。 综上所述,Webservice作为一种跨平台、跨语言的技术,通过WSDL、SOAP和XML等标准技术,实现了不同应用程序...