动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

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

07-03 17:35 307浏览
举报 T字号
  • 大字
  • 中字
  • 小字

使用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.xml就是对发布Web Service进行配置的。

建立好一个服务层

//建立一个Model包,里面包含一个值对象Person

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包,实现服务

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服务->在URL地址上输入服务的地址http://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开发

0人推荐
共同学习,写下你的评论
0条评论
代码小兵1286
程序员代码小兵1286

4篇文章贡献19580字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消