在现代软件开发中,跨语言和平台的服务集成变得越来越重要。Windows Communication Foundation (WCF) 是一个框架,它允许开发者构建服务导向的应用程序。本文将介绍如何创建一个WCF服务,将其托管在Internet Information Services (IIS)中,并使用Java客户端应用程序进行调用。
要创建一个WCF服务,请按照以下步骤操作:
1. 打开Visual Studio 2012。
2. 通过文件菜单选择新建项目。
3. 选择类库项目,命名为“CalculatorService”,然后点击确定。
4. 删除自动生成的Class1.cs文件。
5. 右键点击CalculatorService项目,选择添加,然后点击新建项。
6. 选择WCF服务,并为其命名“CalculatorService”,点击添加按钮。
7. 修改ICalculatorService.cs文件,如下所示:
using System.ServiceModel;
namespace CalculatorService
{
[ServiceContract]
public interface ICalculatorService
{
[OperationContract]
int Add(int num1, int num2);
}
}
8. 修改CalculatorService.cs文件,如下所示:
namespace CalculatorService
{
public class CalculatorService : ICalculatorService
{
public int Add(int num1, int num2)
{
return num1 + num2;
}
}
}
9. 构建解决方案,可以通过按[CTRL]+[SHIFT]+b快捷键或通过构建菜单选择构建解决方案选项。
要将WCF服务托管在IIS中,请按照以下步骤操作:
1. 在IIS中添加一个新的网站来托管Calculator服务。
2. 通过文件菜单选择添加,然后点击新建网站。
3. 选择WCF服务,并为其提供一个合适的名称,例如“CalculatorServiceIISHost”,然后点击确定。
4. 新的网站将被添加,包含一个服务类(Service.cs)和一个接口(IService.cs)在App_Code文件夹中,以及一个Service.svc文件。
5. 由于服务已经创建,删除自动创建的服务类(Service.cs)和接口(IService.cs)从App_Code文件夹。
6. 右键点击CalculatorServiceIISHost项目,选择添加引用,然后选择CalculatorService,点击确定。
7. 打开Service.svc文件,删除CodeBehind属性。
8. 修改Service属性,如下所示:
<%@ ServiceHost Language="C#" Debug="true" Service="CalculatorService.CalculatorService" %>
9. 修改web.config文件,包含以下设置:
<system.serviceModel>
<services>
<service name="CalculatorService.CalculatorService" behaviorConfiguration="mex">
<endpoint address="CalculatorService" binding="basicHttpBinding" contract="CalculatorService.ICalculatorService"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="mex">
<serviceMetadata httpGetBinding="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
10. 现在服务已准备好在IIS中托管。
11. 打开IIS,右键点击默认网站,选择添加应用程序。
12. 输入别名名称“calculator”,选择服务的物理路径,然后点击确定。
13. 如下所示启用匿名认证:
14. 转到内容视图,右键点击Service.svc,然后点击浏览。
要使用Java客户端调用WCF服务,请按照以下步骤操作:
1. 使用Eclipse Indigo和Apache Tomcat 6创建一个新的动态Web项目。
2. 要创建一个WS客户端,请选择新建 >Web服务> 选择Web Service Client,然后点击下一步按钮。
3. 输入WCF服务的WSDL路径,然后点击完成按钮。
4. 这将自动生成WS代理的代码。
5. 创建一个简单的JSP页面,包含两个文本框和一个servlet来通过Web服务调用“add”方法。
6. 在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);
}
7. 在同一个页面上显示结果:
WSDemo.jsp:
本文提供了创建WCF服务、在IIS中托管服务以及使用Java客户端应用程序调用服务的分步指导。