使用ASP等客户端来访问Java的Web Service,取得复杂数据(DTO)

本文介绍了如何使用ASP.Net客户端调用Java编写的Web Service,并解决返回DTO(JavaBean)数据为空的问题。通过分析 Soap 传输机制,修改Wsdl中return接口定义,成功接收并解析返回值。
摘要由CSDN通过智能技术生成

本文使用ASP.Net的客户端来访问Java写的Web Service。Web Service返回的结果是一个DTO(JavaBean)。

 

日前看到很多朋友说用ASP的客户端调用Java写的Web Service返回结果是Null,本文也提供了一些看法,希望对大家有点帮助。

 

首先说一下机制,这里只涉及最简单的。

首先,传输的协议是Soap,说白了就是使用一个规范的XML文本来进行传输。客户端和WS端都根据规范来解析XML文本,以获得需要的数据。

 

下面是正文。

下来建立Java的Web Service端。

首先建立一个动态网页工程。

 

接下来我们建立一个DTO(JavaBean)来充当传输的介质。

代码如下:

  1. package demo;
  2. public class EmployeeDTO {
  3.     String name;
  4.     String dept;
  5.     String age;
  6.     public String getName() {
  7.         return name;
  8.     }
  9.     public void setName(String name) {
  10.         this.name = name;
  11.     }
  12.     public String getDept() {
  13.         return dept;
  14.     }
  15.     public void setDept(String dept) {
  16.         this.dept = dept;
  17.     }
  18.     public String getAge() {
  19.         return age;
  20.     }
  21.     public void setAge(String age) {
  22.         this.age = age;
  23.     }
  24. }

好了,现在我们来建立一个Web Service程序

代码如下:

  1. package demo;
  2. /**
  3.  * Demo Web Service
  4.  * 
  5.  * @author redria
  6.  *
  7.  */
  8. public class EmployeeWS {
  9.     
  10.     /**
  11.      * Get Employee DTO Info
  12.      * 
  13.      * @return
  14.      */
  15.     public EmployeeDTO getInfo() {
  16.         //New DTO
  17.         EmployeeDTO dto = new EmployeeDTO();
  18.         dto.setName("Sol");
  19.         dto.setDept("GGXX");
  20.         dto.setAge("...?");
  21.         //Return Value
  22.         return dto;
  23.     }
  24. }

现在我们准备好了,可以发布Web Service程序了。使用插件可以很方便的发布服务。这里使用附带WTP的Eclipse附带的工具来发布。

 

 

当然,在这里点击下面的生成Client也可以自动帮你生成Client端。因为本文使用ASP来生成客户端,所以这里就不说明Java的了

 

好了,现在测试一下我们的结果:

 

可以看到,我们Web Service完全正常。(这里如果不正常,可能是你的环境有问题)

 

现在我们将其发布到tomcat中去。

访问我们刚才发布的Web Service的wsdl文件。你可以看到:

 

说明我们的服务已经发布成功了。

 

现在来建立一个ASP.Net的客户端。

打开Visual Studio

新建一个ASP.Net Web Site工程

 

首先我们添加一个 Web 参照,将我们刚才发布的地址加入,就可以看到了。

 

 

好了,现在我们来添加吧。

 

之后来写前台的Aspx文件和后台的cs文件

  1. <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" >
  4. <head runat="server">
  5.     <title>無題のページ</title>
  6. </head>
  7. <body>
  8.     <form id="form1" runat="server">
  9.     <div>
  10.         <asp:Button ID="BTN_GETINFO" runat="server" OnClick="BTN_GETINFO_Click" Text="获取信息" /><br />
  11.         <br />
  12.         <asp:Label ID="LB_NAME" runat="server" Text="Name:">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值