信息化 频道

视频走入考场 谁为黑龙江高考保驾护航?

    从WebLogic Workshop调用.NET网络服务

    无论WebLogic Workshop或者是Visual Studio .NET,都有其内部机制来使用WSDL或引用被调用网络服务。在 WebLogic Workshop中,必须创建服务控制(Service Control),在Visual Studio .NET中,相应的概念是网络 引用(Web Reference)。本节将讨论如何为WSDL文件创建服务控制(Service Control),用于调用底层的网络 服务。下一节将对网络引用(Web Reference)进行讨论。

    首先,需要创建一个新的WebLogic Workshop网络服务作为客户端访问.NET 网络服务。结束以后,再对此网络访 问增加服务控制。

    从WSDL创建服务控制
    1. 在设计视窗中点击"Add Control" (增加控制)下拉菜单并选择"Service Control."(服务控制)
    2. 在第一个正文框中输入控制的变量名。这个变量名将被用于在源代码中引用此控制。
    3. 选择组合框选项"Create a service control from a WSDL" (从WSDL创建服务控制),在正文框中输入WSDL 路径,也可以使用"Browse"(浏览)按钮指定WSDL位置 。
    4. 按"Create"(创建)按钮。

    创建服务控制将在您的网络服务中增加一行类似下列的代码:

/** @jws:control */
DotNetExampleControl dotNetExample;
    控制变量名应引起足够重视,因为这个名子将用于调用.NET网络服务。现在,可以添加一个方法使用服务控制 调用.NET 网络服务。这个调用看起来像下面的代码:

/** @jws:operation */
public String callDotNet()
{ return dotNetExample.getHelloMessage(); }
    之后,您应该有一个类似下面的WebLogic Workshop网络服务:

public class WLWClient
{
/** @jws:control */
private DotNetExampleControl dotNetExample;

/** @jws:operation */
public String callDotNet()
{ return dotNetExample.getHelloMessage(); }
}
    假设.NET网络服务正在运行,您应该能够运行这个网络服务,并激活callDotNet方法向.NET网络服务发送跨平台 调用。当激活这个方法时,将获得一个应答消息:.NET hello 消息:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
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网络服务,下一步将从.NET调用WebLogic Workshop 网络服务。 在WebLogic Workshop中,我们采用了服务控制来调用外部网络服务,在.NET中,我们将采用网络引用(Web Reference)。

    从WSDL创建网络引用
    1. 选择"Project"菜单,然后选择"Add Web Reference."(添加网络引用)
    2. 这时将弹出一个对话框用于浏览网络服务。在地址正文输入框中,输入为WebLogic WorkshopIn网络服务创建 的WSDL文件的路径。
    3. 选择"Add Reference"(添加引用) 按钮。

    您选择已经为项目(project)添加了指向WebLogic Workshop 网络服务的网络引用。默认情况下,将命名为 WebReference1。采用Solution Explorer,能够看到引用已添加到项目中,在引用之下,可以看到引用相应的WSDL 。

    像使用其它对象一样,您可以在C#中使用网络引用。首先,必须将引用输入(import)到源文件中, 只需在C#文 件中增加下列代码:
using DotNetClient.WebReference1;

    一旦将引用输入到源文件中,就可以创建引用实例(instance),并使用它调用WebLogic Workshop 网络服务。 下列代码说明了C#服务的这个功能:

using System.ComponentModel;
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 网络服务的hello消息。

< ?xml version="1.0" encoding="utf-8" ? >
< string xmlns="http://tempuri.org/" >
Hello from WebLogic Workshop!
</string >

0
相关文章