如果.NET Web服务正在运行,你应该就可以运行上述Web服务了,并且可以通过callDotNet方法跨平台调用.NET Web服务。CallDotNet方法将返回一个响应消息,该消息包含了.NET的问候消息:
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<getHelloMessageResponse xmlns="http://tempuri.org/">
<getHelloMessageResult>
Hello from VisualStudio.NET!
</getHelloMessageResult>
</getHelloMessageResponse>
</soap:Body>
</soap:Envelope>
从.NET调用WebLogic Workshop服务
前面我们在WebLogic Workshop平台上调用了一个.NET平台上的Web服务,接下来将介绍在.NET平台上调用WebLogic Workshop平台上的Web服务。在WebLogic Workshop上,我们通过服务控件来调用外部的另一个Web服务;在.NET上,我们将采用Web引用。
从WSDL创建Web引用
1. 打开“Project”菜单,选择“Add Web Reference”。
2. 在弹出的对话框中,你可以浏览各种Web服务。请在地址文本框中输入WSDL文件的路径,该WSDL文件是你为WebLogic Workshop Web服务创建的。
3. 选择“Add Reference”按钮。
这样就为你的项目添加了一个指向WebLogic Workshop Web服务的Web引用。在默认情况下,该引用命名为WebReference1。通过Solution Explorer,你可以看到这个新创建的引用已经被添加到项目里面了,在引用的下方,你可以找到该引用所出自的WSDL。
在C#中,你可以像使用其他任何对象一样来使用Web引用。首先,必须将Web引用导入到源文件中。你可以在C#文件中添加下面这行代码:
using DotNetClient.WebReference1;
将引用导入到源文件之后,就可以创建该Web引用的一个新的实例,并通过这个实例调用WebLogic Workshop上的Web服务。下面的代码演示了一个用C#描述的完成这些工作的Web服务:
using System.Web.Services;
using DotNetExample.WebReference1;
namespace DotNetClient
{
public class Service1 : WebService
{
public Service1()
{ InitializeComponent(); }
private IContainer components = null;
private void InitializeComponent() {}
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
components.Dispose();
base.Dispose(disposing);
}
private WLWExample wlwExample = new WLWExample();
[WebMethod] public DataSet callWLW()
{ wlwExample.getHelloMessage(); }
}
}
如果调用了callWLW方法,就可以收到来自WebLogic Workshop Web服务的问候消息。
<string xmlns="http://tempuri.org/">
Hello from WebLogic Workshop!
</string>
