当前位置:
文档之家› JAVA与.NET的相互调用 通过WEB服务实现相互调用以及例子
JAVA与.NET的相互调用 通过WEB服务实现相互调用以及例子
Person person2=new Person(); person2.setId(1); person2.setAge(30); person2.setName("Mike"); personList.add(person2);
return personList;
} }
在 Service.xml 上面对服务进行配置 代码
SOAP
SOAP 即简单对象访问协议(Simple Object Access Protocol),它是用于交换 XML 编码信息的轻量级协议。它有三 个主要方面:XML-envelope 为描述信息内容和如何处理内容定义了框架,将程序对象编码成为 XML 对象的规则,执 行远程过程调用(RPC)的约定。SOAP 可以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件 协议来传递 SOAP 消息,这可是很有诱惑力的。在传输层之间的头是不同的,但 XML 有效负载保持相同。Web Service 希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的 状态,实现“基于 Web 无缝集成”的目标。
此时为此项目添加测试类,运行进行测试 代码
二、使用 JAVA 作为服务器端,.NET 作为客户端实现相互调用。
JAVA 开发 Web Service 的工具有很多,最常用的有 Axis、XFire、NetBean 等,在 JAVA-SE 6.0 以上支持 JAX-WS2.0 ,JAX-WS 2.0 是 JAX-RPC 1.0 的更新产品。在 JAX-WS 中,一个远程调用可以转换为一个基于 XML 的协议例如 SOAP。在使用 JAX-WS 过程中,开发者不需要编写任何生成和处理 SOAP 消息的代码。JAX-WS 的运行 时实现会将这些 API 的调用转换成为对于 SOAP 消息。 在服务器端,用户只需要通过 Java 语言定义远程调用所需要 实现的接口 SEI (service endpoint interface),并提供相关的实现,通过调用 JAX-WS 的服务发布接口就可以将其 发布为 WebService 接口。在下面我们就以 XFire 建立一个 Web Service。 首先建立一个在一个项目上单击右键,选择 MyEclipse->Add XFire Web Service Capabilities,引用了 XFire 工具 包以后。在项目会自动建立一个 WebServices 文件夹,文件夹里面的 service.xml 就是对发布 Web Service 进行配 置的。 现在先建立好一个服务层
XML 和 XSD
可扩展的标记语言 XML 是 Web Service 平台中表示数据的基本格式。除了易于建立和易于分析外,XML 主要的优 点在于它既与平台无关,又与厂商无关。XML 是由万维网协会 (W3C)创建,W3C 制定的 XML SchemaXSD 定义 了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。 Web Service 平台是用 XSD 来作为数据类型系统 的。当你用某种语言如 JAVA、C#来构造一个 Web Service 时,为了符合 Web Service 标准,所有你使用的数据类 型都必须被转换为 XSD 类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要通过 SOAP 协议将它包 装起来。
代码
//建立一个 Model 包,里面包含一个值对象 Person
package Model;
import java.io.Serializable; public class Person implements Serializable {
private int id; private String name; private int age;
代码 为了使用 Person 能够实现远程传送,我们必须对 Person 进行序列化,在 WCF 中包括服务契约、数据契约、消息契 约三部分,而数据契约正是用于对数据进行序列化处理的,如果想对 WCF 有进一步的了解,可以链接使用 WCF 实现 SOA 面向服务编程
代码 数据契约里面有多种的序列化方式,包括 DataContractSerializer,NetDataContractSerializer,XmlServializer,DataContractJsonSerializer。在这里面只 用使用最普遍的 DataContractSerializer,而 DataContractJsonSerializer 是现今比较热门的方式,特别是在开发 网络项目时候,多使用 Json 进行数据通讯。 最后配置好 web.config,就可以成功将 WCF 服务发布
Service.PersonService </serviceClass> <implementationClass>
ServiceImpl.PersonServiceImpl </implementationClass> </service> </beans>
其配置功能如下:
service
service 标签和它所包含的 xml 内容为发布成 Web 服务的 POJO 提供完整的描述。
}
public int getAge(){ return age;
}
public void setAge(int age){ this.age=age;
} }
//建立一个 Service 包,里面包含服务接口
package Service;
import java.util.List; import Model.*;
public int getId(){ return id;
}
public void setId(int id){ this.id=id;
}
public String getName(){ return name;
}
public void setName(String name){ =name;
public class PersonServiceImpl implements PersonService{ public List<Person> GetList(){ List<Person> personList=new LinkedList<Person>();
Person person1=new Person(); person1.setId(0); person1.setAge(23); person1.setName("Leslie"); personList.add(person1);
public interface PersonService { List<Person> GetList();
}
//建Байду номын сангаас一个 ServiceImpl 包,实现服务
package ServiceImpl;
import Model.*; import Service.*; import java.util.*;
WSDL
<?xml version="1.0" encoding="UTF-8" ?> - <wsdl:definitions targetNamespace="http://leslie-pc:8080 /PersonService" xmlns:ns1="http://Model" xmlns:soapenc12=" /2003/05/soap-encoding" xmlns:tns="http: //leslie-pc:8080/PersonService" xmlns:wsdl="http://schema /wsdl/" xmlns:xsd="/2001/XM LSchema" xmlns:soap11="/soap/en velope/" xmlns:wsdlsoap="/wsdl/ soap/" xmlns:soapenc11="/soap/e ncoding/" xmlns:soap12="/2003/05/soap-en velope"> - <wsdl:types> - <xsd:schema xmlns:xsd="/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qual ified" targetNamespace="http://leslie-pc:8080/PersonServi ce"> - <xsd:element name="GetList">
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="/config/1.0"> <service>
<name>PersonService</name> <namespace>http://leslie-pc:8080/PersonService</namesp ace> <serviceClass>
JAVA 与.NET 的相互调用——通过 Web 服务实现相互调用(附原代码)
JAVA 与.NET 是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方。而在很多大型的开发项目里面,往往 需要使用两种语言进行集成开发。而很多的开发人员都会偏向于其中一种语言,在使用集成开发的时候对另一种语言感 觉到畏惧。在这里在下向各位介绍一下,JAVA 与.NET 相互调用的例子。下面的介绍主要包括三方面:一是通过常用 Web 服务进行相互调用,二是使用 TCP/IP 套接字进行相互调用,三是使用 Remote 实现远程对象相互调用。 在这章里面先为大家介绍一下最简单,最常用的 Web 服务相互调用方式。首先说一下 Web 服务的来源,Web 服务是 一种新的 Web 应用程序分支,可以执行从简单的请求到复杂商务处理等任何功能。一旦部署以后,其他 Web 服务应用 程序可以发现并调用它部署的服务。 Web Service 是一种应用程序,它可以使用标准的互联网协议,像超文件传输协 议(HTTP)、简单对象访问协议(SOAP)、XML 等,将功能纲领性地体现在互联网和企业内部网上,Web 服务被视作是 Web 上的组件编程。Web 服务必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型 系统。