异构语言交互访问 解决方案及例子(二)
—cxf与gsoap交互
--》编写头文件:add.h
加入方法
//gsoap ns service name: add
//gsoap ns service namespace: http://localhost/add.wsdl
//gsoap ns service location: http://localhost
//gsoap ns service executable: add.cgi
//gsoap ns service encoding: encoded
//gsoap ns schema namespace: urn:add
int ns__add( int num1,int num2,int* sum);
--》gsoap工具生成服务器代码
soapCpp.exe add.h
--》生成vc工程
soapServerLib.cpp 不要加入工程否则编译报错。
--》用cxf wsdl2java工具生成java调用代码
E:\mysoft\apache-cxf-2.7.6\bin>wsdl2java -impl -server -client -d outputDir add
.wsdl
outputDir 文件夹下会生成
├─outputDir
│ │ build.xml
│ │
│ ├─add
│ │ Add.java
│ │ AddResponse.java
│ │ ObjectFactory.java
│ │ package-info.java
│ │
│ └─localhost
│ └─add_wsdl
│ Add.java
│ AddPortType.java
│ AddPortTypeImpl.java
│ AddPortType_Add_Client.java
│ AddPortType_Add_Server.java
--》eclipse建立工程 拷贝代码 加入相应jar包
生成的代码里面, @XmlElementRef(name = "sum", type = JAXBElement.class, required = false)
会报错,去掉required = false,就ok了。
add.java里几个构造函数可以注释掉。
--》撰写cxf客户端测试类
//定义JaxWs的代理工厂
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
//设置JaxWs代理工厂的属性,包括服务类和地址
factory.setServiceClass(AddPortType.class);
factory.setAddress("http://localhost:50001/AddPortType");
//获取服务类的对象并处理
AddPortType addPortType = (AddPortType) factory.create();
int result = addPortType.add(1, 2);
System.out.println(result);
其中AddPortType 是工具自动生成的接口实现类。(对应wsdl文件中的<portType name="addPortType">)
--》总结
总体上 webservice实现起来还是比较麻烦,Rest可以用json进行异构交互,实现起来应该相对简单些,c++的rest开源框架比较少,最近微软好像开源了一个Rest框架,有时间研究下。
分享到:
相关推荐
在IT领域,多视图(Multi-View)是一种常见的概念,尤其在数据挖掘、机器学习、计算机图形学和...通过学习和实践这些例子,开发者和研究人员能够更好地掌握如何在实际项目中运用多视图技术,提升解决方案的效率和质量。
Kubernetes,作为当前容器编排领域的主流技术之一,在复杂异构应用的管理与部署方面扮演着至关重要的角色。...通过集成市场(marketplace)功能,它还能够将各种云产品和服务整合进来,为用户提供一站式的解决方案。
这样的集成解决方案必须面对一些基本的挑战,比如网络不可靠、网络延迟、应用程序的异构性以及应用程序随时间的不断变化。 网络不可靠性要求集成方案能够处理数据在网络中传输时可能出现的延迟或中断问题。网络的...
3. **分布式计算基础**:CORBA为分布式计算环境中的对象交互提供了一套完整的解决方案。 **CORBA的基本架构包括:** 1. **客户端发起请求**:客户端应用通过本地ORB(Object Request Broker)向远程对象发送请求。...
Thrift是一种开源的跨语言服务开发框架,由Facebook于2007年发布,旨在提供高效、灵活且可扩展的远程过程调用(RPC)解决方案。它允许开发者定义服务接口和服务数据类型,然后自动生成支持多种编程语言的客户端和...
数据库中间件技术是一种重要的软件解决方案,它允许应用程序与各种不同的数据库系统进行交互,无论是同构还是异构环境。在当前的IT领域,多种数据库系统共存,如Oracle、SQL Server、Sybase、MySQL和Informix等,...
银河衡芯敏捷交换芯片则针对这些限制,提供了一种端到端的解决方案,减少了平台开发的复杂性,实现了网络的透明化操作,并且能够卸载计算任务,减轻CPU负担,提升整体计算性能。 HX-DS40是这一系列芯片的一个例子,...
综上所述,基于XML的数据交换实现不仅解决了HTML在高级应用中的局限性,而且通过其灵活的数据描述能力和强大的规范性,为跨平台的数据交换提供了有效解决方案。此外,随着XML相关技术的不断发展和完善,其在各行各业...
### SOA中ESB框架的关键知识点 #### 一、SOA与ESB的基本概念 ...LightESB作为一种轻量级的消息框架,不仅解决了传统ESB产品存在的问题,还提供了更为高效、灵活的解决方案,为企业应用的集成带来了新的可能性。
- 解决方案中间件阶段:提供针对特定业务场景的完整解决方案。 通过以上内容,我们可以了解到物联网中间件在物联网系统中的核心地位,它是连接感知层、网络层和应用层的关键技术,对于构建高效、灵活、可扩展的...
数据库中间件如Oracle RAC,提供了数据库集群解决方案,增强了数据访问的可用性和性能。 在软件构件与中间件技术的学习中,我们还会接触到EJB(Enterprise JavaBeans)、JMS(Java Message Service)和SOA(Service...
在实际项目中,例如整合第三方库或模块,或者在旧系统与新系统之间建立接口,双向适配器都是一个值得考虑的解决方案。通过深入研究“bothwayAdapter”这个示例,开发者可以更直观地理解双向适配器的工作机制,并将其...
以上知识点围绕着计算机科学中的系统设计、网络建模、系统验证等核心领域,并涉及到了当前数字化和网络化趋势下的重要问题和解决方案。通过对这些概念的深入理解和应用,IT专业人士可以在设计和开发复杂系统时更加...
CORBA提供了一种独立于网络协议、编程语言和软硬件平台的解决方案,使不同系统之间能够轻松共享对象和服务。 - **TAO (The ACE ORB)**: 是基于C++的一种高性能、可扩展的实时CORBA平台。由美国华盛顿大学的Douglas C...
通过深入研究这份《SAP高级应用开发》源代码,开发人员不仅能提升他们的编程技能,还能更好地理解和利用SAP的最新技术趋势,从而为企业提供更高效、更灵活的解决方案。无论你是SAP初学者还是经验丰富的开发者,这份...
Oracle SOA套件是Oracle提供的全面集成解决方案,包括BPEL流程管理器、服务总线、业务活动监视(BAM)等组件,它在业界获得了广泛的认可和奖项,被评价为市场上最全面、最易用的SOA产品。通过这个套件,企业可以构建...
总的来说,FLASH是阿里云构建的先进图计算平台,它集成了分布式存储和计算能力,能够应对复杂的图数据处理任务,提供高效、灵活且智能的解决方案。通过FLASH,开发者可以编写高效的图算法,进行深度的图数据分析,...