当前位置: 首页 > 图灵资讯 > 技术篇> .net调用java接口的实现方式

.net调用java接口的实现方式

来源:图灵教育
时间:2023-04-06 14:46:53

使用JAVA作为服务器端,.NET作为客户端,要想实现.Net调用Java接口,这个时候就要用了Web Service。将将java方法写入WebServices,从而实现.net调用java接口。

Web Service实际上是一个应用程序分支,它可以使用标准的互联网协议,如超文件传输协议(HTTP)、访问协议的简单对象(SOAP)、XML等,将功能纲领性地体现在互联网和企业内部网络上,Web服务被视为Web上的组件编程。Web服务必须为不同平台、编程语言和组件模型中的不同类型系统提供一套标准的类型系统。

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.Webbxml是发布的 配置Service。

建立服务层

///建立一个包含值对象Person的Model包

package Model;

import java.io.Serializable;

publicclass Person implements Serializable {

privateint id;

private String name;

privateint age;

publicint getId(){

return id;

}

publicvoid setId(int id){

this.id=id;

}

public String getName(){

return name;

}

publicvoid setName(String name){

this.name=name;

}

publicint getAge(){

return age;

}

publicvoid setAge(int age){

this.age=age;

}

}

///建立一个包含服务界面的Service包

package Service;

import java.util.List;

import Model.*;

publicinterface PersonService {

List GetList();

}

//建立ServiceImpl包,实现服务/span>

package ServiceImpl;

import Model.*;

import Service.*;

import java.util.*;

publicclass PersonServiceImpl implements PersonService{

public List GetList(){

List personList=new LinkedList();

Person person1=new Person();

person1.setId(0);

person1.setAge(23);

person1.setName("Leslie");

personList.add(person1);

Person person2=new Person();

person2.setId(1);

person2.setAge(30);

person2.setName("Mike");

personList.add(person2);

return personList;

}

}

服务层代码

  然后,在Service.配置xml上的服务

PersonService

http://leslie-pc:8080/PersonService

Service.PersonService

ServiceImpl.PersonServiceImpl

配置功能如下:

service:service 标签及其包含的内容 xml 内容发布成 Web 服务的 POJO 提供完整的描述。

name:Web 服务发布时使用的唯一名称。

namespace:Web 发布服务时使用的命名空间。

serviceClass:Web 服务界面的全名,包括包名和类名。

implemetationClass:Web 服务实现类的全名,包括包名和类名。

  现在可以运行程序,测试服务,测试时输入服务地址http://leslie-pc:8080/Website1/services/PersonService?wsdl,该系统将显示wsdl代码

服务器端测试成功后使用.NET调用服务,单击项目右键->选择添加Web服务->httpp输入URL地址的服务地址://leslie-pc:8080/Website1/services/PersonService?wsdl ,在页面上输入代码进行测试。

protectedvoid Page_Load(object sender, EventArgs e)

{

Service.PersonService personService =new Service.PersonService();

IList personList = personService.GetList();

foreach(Service.Person person in personList)

{

Response.Write("id:"+ person.id.ToString() +" name:"+ person.name +" age:"+ person.age.ToString()+" ");

}

}

如果测试成功,说明.NET已成功调用java接口。但因为Web服务本质上不受开发语言的限制,所以只要JAVA跟进.NET有一定的了解,需要通过Web服务相互调用其实不难。但往往是一些ERP,OA的开发过程,往往会使用TCP/IP套接字来实现软件的功能,TCP/IP这“老家伙”为什么它经常被使用这么长时间,因为使用TCP/IP效率更高,容易被防火墙堵塞,HTTP协议也建立在一个TCP/IP之上。

实现.事实上,net调用java接口只是webservice强大功能的一个小体现。最后,如果你想了解更多的相关知识,可以查看蛙课网的相关课程,相信自己,也可以轻松掌握Java webservice开发