在 Java 客户端中消费 WCF 服务





5.00/5 (14投票s)
本文将介绍如何通过 Java 客户端应用程序使用 WCF 服务。
引言
WCF 旨在支持互操作性。 作为一名 .NET 开发人员,很难证明这个概念。 在我的朋友 Jay D Khambholiya(一位 Java 开发人员)的帮助下,我创建了这个 POC。
本文将通过以下三个步骤介绍如何在 Java 客户端应用程序中使用 WCF 服务
-
创建 WCF 服务
-
在 IIS 中托管 WCF 服务
-
在 Java 客户端中使用 WCF 服务
步骤 1:创建 WCF 服务
- 打开 Visual Studio 2012 > 文件菜单 > 单击新建项目… > 选择类库 – CalculatorService > 单击确定
- 删除自动生成的类 - Class1.cs 文件。
- 右键单击 CalculatorService 项目 > 添加 > 单击新建项 > 选择 WCF 服务 > 提供名称作为 CalculatorService > 单击添加按钮
- 这将添加所需的程序集引用(例如,System.ServiceModel),以及服务协定接口 – ICalculatorService.cs 和服务类 – CalculatorService.cs
- 按如下方式修改 ICalculatorService.cs
using System.ServiceModel;
namespace CalculatorService
{
[ServiceContract]
public interface ICalculatorService
{
[OperationContract]
int Add(int num1, int num2);
}
}
- 按如下方式修改 CalculatorService.cs
namespace CalculatorService
{
public class CalculatorService : ICalculatorService
{
public int Add(int num1, int num2)
{
return num1 + num2;
}
}
}
- 按 [CTRL]+[SHIFT]+b 构建解决方案,或转到“生成”菜单 > 单击“生成解决方案”选项。
步骤 2:在 IIS 中托管 WCF 服务
- 添加一个新的网站以在 IIS 中托管 Calculator Service。
- 转到文件菜单 > 添加 > 单击新建网站… > 选择 WCF 服务 > 提供一个合适的名称 – CalculatorServiceIISHost > 单击确定
- 将添加一个包含服务类 - Service.cs 和接口 - IService.cs 的新网站,位于 App_Code 文件夹中以及一个 Service.svc 文件。 由于服务已经创建,请从 App_Code 文件夹中删除自动创建的服务类 (Service.cs) 和接口 (IService.cs)。
- 右键单击 CalculatorServiceIISHost 项目 > 单击添加引用 > 选择 CalculatorService > 单击确定
- 打开 Service.svc 文件 > 删除 CodeBehind 属性
<%@ ServiceHost Language="C#" Debug="true" Service="Service" CodeBehind="~/App_Code/Service.cs" %>
- 如下所示修改 Service 属性
<%@ ServiceHost Language="C#" Debug="true" Service="CalculatorService.CalculatorService" %>
- 修改 web.config 文件以包含以下设置
<system.serviceModel>
<services>
<service name="CalculatorService.CalculatorService"
behaviorConfiguration="mex">
<endpoint address="CalculatorService" binding="basicHttpBinding"
contract="CalculatorService.ICalculatorService"></endpoint>
<host>
<baseAddresses>
<add baseAddress="https://:8080/"/>
</baseAddresses></host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="mex">
<serviceMetadata httpGetBinding="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
- 现在,该服务已准备好在 IIS 中托管。
- 打开 IIS > 右键单击默认网站 > 单击添加应用程序… > 输入别名 – calculator > 选择服务的物理路径 > 单击确定
- 如下所示启用匿名身份验证
- 转到内容视图 > 右键单击 Service.svc > 单击浏览
步骤 3:在 Java 客户端中使用 WCF 服务
- 使用的工具: Eclipse Indigo,Apache Tomcat 6,Apache Axis(Eclipse Indigo 中预装)
- 在 Eclipse 中创建一个新的动态 Web 项目
- 要创建 WS 客户端,请选择新建 > Web Services > 选择 Web Service Client > 单击下一步按钮
- 输入 WCF 服务的 WSDL 路径 > 单击完成按钮
- 这应该会自动生成 WS 代理的代码
- 创建一个简单的 JSP 页面,其中包含两个文本框和一个 servlet,用于通过 Web 服务调用“add”方法
- 在 WCFServlet 的 doPost() 方法中编写以下代码以调用 Web 服务的“add”方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Integer input1=Integer.parseInt(request.getParameter("input1"));
Integer input2=Integer.parseInt(request.getParameter("input2"));
ICalculatorServiceProxy calService=new ICalculatorServiceProxy();
Integer result=calService.add(input1,input2);
request.setAttribute("res", "The result is: "+result);
RequestDispatcher rd=request.getRequestDispatcher("WSDemo.jsp");
rd.forward(request, response);
}
- 在同一页面 WSDemo.jsp 上显示结果
摘要
任何项目或个人都可以参考本文,以获得关于如何创建 WCF 服务并在 IIS 中托管,然后创建 Java 客户端应用程序以使用该服务的逐步指导。
历史
在此处保持您所做的任何更改或改进的实时更新。