没有合适的资源?快使用搜索试试~ 我知道了~
JAVA与.NET的相互调用-通过Web服务实现相互调用(附原代码).pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 30 浏览量
2022-10-25
13:39:31
上传
评论
收藏 676KB PDF 举报
温馨提示
试读
15页
JAVA与.NET的相互调用——通过Web服务实现相互调用(附原代码).pdfJAVA与.NET的相互调用——通过Web服务实现相互调用(附原代码).pdf
资源推荐
资源详情
资源评论
JAVA 与.NET 是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方。而在很
多大型的开发项目里面,往往需要同时使用两种语言进行集成开发。而很多的开发人员都会
偏向于其中一种语言,在使用集成开发的时候对另一种语言感觉到畏惧。在这里在下向各位
介绍一下,JAVA 与.NET 相互调用的例子。下面的介绍主要包括三方面:一是通过常用 Web
服务进行相互调用,二是使用 TCP/IP 套接字进行相互调用,三是利用 Remoting 实现相互
调用。
在这章里面先为大家介绍一下最简单,最常用的 Web 服务相互调用方式。首先说一下 Web
服务的来源,Web 服务是一种新的 Web 应用程序分支,可以执行从简单的请求到复杂商务
处理等任何功能。一旦部署以后,其他 Web 服务应用程序可以发现并调用它部署的服务。
Web Service 是一种应用程序,它可以使用标准的互联网协议,像超文件传输协议(HTTP)、
简单对象访问协议(SOAP)、XML 等,将功能纲领性地体现在互联网和企业内部网上,Web
服务被视作是 Web 上的组件编程。Web 服务必须提供一套标准的类型系统,用于沟通不同
平台、编程语言和组件模型中的不同类型系统。
XML 和 X
可扩展的标记语言 XML 是 Web Service 平台中表示数据的基本格式。除了易于建立和易
于分析外,XML 主要的优点在于它既与平台无关,又与厂商无关。XML 是由万维网协会
(W3C)创建,W3C 制定的 XML SchemaXSD 定义了一套标准的数据类型,并给出了一种
语言来扩展这套数据类型。 Web Service 平台是用 XSD 来作为数据类型系统的。当你用某
种语言如 JAVA、C#来构造一个 Web Service 时,为了符合 Web Service 标准,所有你使
用的数据类型都必须被转换为 XSD 类型。如想让它使用在不同平台和不同软件的不同组织
间传递,还需要通过 SOAP 协议将它包装起来。
SOAP
SOAP 即简单对象访问协议(Simple Object Access Protocol),它是用于交换 XML 编码信息
的轻量级协议。它有三个主要方面:XML-envelope 为描述信息内容和如何处理内容定义了
框架,将程序对象编码成为 XML 对象的规则,执行远程过程调用(RPC)的约定。SOAP 可
以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件协议来传递
SOAP 消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML 有效负载保持相
同。Web Service 希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破
了软件应用、网站和各种设备之间的格格不入的状态,实现“基于 Web 无缝集成”的目标。
WSDL
Web Service 描述语言 WSDL 就是用机器能阅读的方式提供的一个正式描述文档而基于
XML 的语言,用于描述 Web Service 及其函数、参数和返回值。因为是基于XML 的,所以
WSDL 既是机器可阅读的,又是人可阅读的。
下面分开两个方面讲解一下如果通过 Web 服务实现 JAVA 与.NET 的相互调用。
一、使用.NET 作为服务器端,JAVA 作为客户端实现相互调用。
在.NET 系统里面,以 WCF 作为新一代的服务开发工具是微软的一个新卖点,我们就以 WCF
为例子实现服务端,首先新建一个网站项目,在网站添加一个WCF 服务 PersonService。
你将看到 PersonService.svc、IPersonService、 PersonService.cs 三个文件,其中
IPersonService 是对向暴露一个接口,接口的功能由 PersonService 来实现,客户端则通过
PersonalService.svc 来寻获服务,并对其添加引用的。
[c-sharp:collapse] + expand sourceview plaincopyprint?
1. //在 PersonService.svc 里,只包括一行,其中列明了对该服务的实现类
2. <%@ ServiceHost Language="C#" Debug="true" Service="Service.PersonServ
ice" CodeBehind="~/App_Code/PersonService.cs" %>
3. //服务的实现
4. using System;
5. using System.Collections.Generic;
6. using System.Linq;
7. using System.Runtime.Serialization;
8. using System.ServiceModel;
9. using System.Text;
10. namespace Service
11. {
12. [ServiceContract]
13. public interface IPersonService
14. {
15. [OperationContract]
16. IList<Person> GetList();
17. }
18. public class PersonService : IPersonService
19. {
20. public IList<Person> GetList()
21. {
22. IList<Person> personList = new List<Person>();
23. Person person1 = new Person();
24. person1.ID = 0;
25. person1.Age = 27;
26. person1.Name = "Leslie";
27. personList.Add(person1);
28. Person person2 = new Person();
29. person2.ID = 1;
30. person2.Age = 23;
31. person2.Name = "Rose";
32. personList.Add(person2);
33. Person person3 = new Person();
34. person3.ID = 2;
35. person3.Age = 29;
36. person3.Name = "Jack";
37. personList.Add(person3);
38. return personList;
39. }
40. }
41. }
//在PersonService.svc里,只包括一行,其中列明了对该服务
<%@ ServiceHost Language="C#" Debug="true" Service=
//服务的实现
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace Service
{
[ServiceContract]
public interface IPersonService
{
[OperationContract]
IList<Person> GetList();
}
public class PersonService : IPersonService
为了使用 Person 能够实现远程传送,我们必须对 Person 进行序列化,在 WCF 中包括服
务契约、数据契约、消息契约三部分,而数据契约正是用于对数据进行序列化处理的,如果
想对 WCF 有进一步的了解,可以链接使用 WCF 实现 SOA 面向服务编程
[c-sharp:collapse] + expand sourceview plaincopyprint?
1. using System;
2. using System.Collections.Generic;
3. using System.Linq;
4. using System.Web;
5. using System.Runtime.Serialization;
6. /// <summary>
7. ///Person 的摘要说明
剩余14页未读,继续阅读
资源评论
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功