使用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开发。