当前位置:首页 > 网络编程 > 软件语言 > .NET > 如何配置和使用WebServices集群

如何配置和使用WebServices集群

点击次数:85 次 发布日期:2008-11-06 07:50:05 作者:源代码网
源代码网推荐
广告载入中
        随着WebServices的推广,WebServices应用逐渐增多,一些使用WebServices的关键应用对WebServices实现也提出 了更高的要求,而集群往往是高可用性和高性能应用所必须的。本文档将详细的描述windows平台上Apusic应用服务器3.0的 WebServices集群的配置和使用方法。在各种Unix平台(如AIX)和linux平台上配置和使用Apusic WebServices集群的方法与本文所讲述的方法大同小异。

源代码网整理以下    本文所讲述的例子的集群结构如下图所示:

源代码网整理以下    图中包括了一个负载均衡器,两个内部服务器和一个客户端,我们的WebServices将部署在两个内部服务器Backend1和Backend2上。客户端请求将发向负载均衡器,负载均衡器将选择一个后台服务器来处理客户端的请求。

源代码网整理以下    安装Apusic应用服务器

源代码网整理以下    获取Apusic应用服务器3.0   你可以在金蝶中间件的网站http://www.apusic.com上免费下载Apusic3.0开发版。Windows平台的安装程序的文件名为Apusic-3.0.exe。

源代码网整理以下    安装Apusic负载均衡器    运行Apusic-3.0.exe来执行Apusic安装程序,Apusic应用服务器默认安装在系统盘根目录下如:c:Apusic-3.0,本文假 设安装在c:Apusic-3.0目录。把C:Apusic-3.0分别拷贝两份放在c:Apusic1和c:Apusic2目录下。为了便于说 明,我们把放在c:Apusic-3.0目录下的应用服务器叫做负载均衡器,把c:Apuisc1目录下的应用服务器叫Backend1,把c: Apuisc2目录下的应用服务器叫Backend2。

源代码网整理以下    配置Apusic负载均衡器    修改Backend1的多路复用端口为6881,修改方法如下:打开c:Apusic1configapusic.conf文件,把6888替换成6881。把6889(SSL端口)替换成6789。

源代码网整理以下    修改Backend2的多路复用端口为6882,修改方法如下:打开c:Apusic2configapusic.conf文件,把6888替换成6882。把6889(SSL端口)替换成6689。

源代码网整理以下    注意:此处的端口号可以改成你所喜欢的有效的端口,只要不与别的端口号冲突就可以了。

源代码网整理以下     配置负载均衡器的端口:把c:Apusic-3.0config目录下的loadbalancer.conf文件替换掉apusic.conf文件。Apusic负载均衡器的默认端口为80,此处我们不需要修改,就采用80端口。

源代码网整理以下    配置负载均衡器的内部服务器,打开c:Apusic-3.0configloadbalancer.conf文件,其中有一个重要的属性 BackendServers定义了集群中的服务器,这是一个用逗号分隔的服务器地址列表,包括主机名和端口号,Apusic负载均衡器将根据这个列表采 取Rand-robin策略来选择服务器。负载均衡器和内部服务器启动的先后次序无关紧要,负载均衡器将总是选择目前可用的内部服务器,并周期性地检测内 部服务器是否正常工作。它的默认设置如下:    修改成:  其中6881和6882分别为前面指定的两个内部服务器Banckend1和Backend2的多路复用端口。

源代码网整理以下    以上的工作全部完成后,此时我们的集群的基本配置已经全部完成,下面可以分别启动三个服务器,你可以分别运行三个服务器的bin目录下的Apusicw.exe来启动三个服务器(分别为负载均衡器,内部服务器Backend1和Backend2)。 软件开发网 www.mscto.com

源代码网整理以下    访问http://localhost/可以看到Apusic3.0的欢迎信息,查看Backend1和Backend2的系统日志的最后一行分别可以看 到如下信息:“ 信息 [apusic.webapp.default./"> file: init”若能看到以上信息,表示Apusic集群基本配置已经完成。下面将讲述如何开发WebServices应用和部署Apusic WebServices应用到这一个集群当中。

源代码网整理以下    开发WebServices

源代码网整理以下    开发部署到Apusic集群中的WebServices与开发普通的WebServices一样,因此本文简单的描述如何开发Apusic WebServices。详细的开发手册请参考Apusic应用服务器用户手册,你可以在c:Apusic-3.0docs webservice目录下找到Apusic WebServices的详细的开发文档。

源代码网整理以下    编写Endpoint接口类

源代码网整理以下    首先编写一个Endpoint接口类Hello.java,在这个Endpoint接口中定义一个WebServices方法sayHello()。

源代码网整理以下 import java.rmi.Remote;

源代码网整理以下    import java.rmi.RemoteException;

软件开发网 www.mscto.com

源代码网整理以下    public interface Hello extends Remote

源代码网整理以下   {

源代码网整理以下    public String sayHello() throws RemoteException;

源代码网整理以下    }

源代码网整理以下     编写Endpoint实现类实现Endpoint接口 编写Endpoint实现类HelloImpl.java,实现前面定义的Endpoint接口Hello。

源代码网整理以下     public class HelloImpl implements Hello

源代码网整理以下    {

源代码网整理以下    public String sayHello()

源代码网整理以下     {

源代码网整理以下     return "Hello,my first web service! ";

源代码网整理以下        }

源代码网整理以下    }

源代码网整理以下    编译服务类

源代码网整理以下    前面讲述的WebServices服务类源文件Hello.java和HelloImpl.java可以直接在Apusic应用服务器的目录中找到,无须自己编写,它存放的目录为:

软件开发网 www.mscto.com

源代码网整理以下     c: Apusic-3.0docssampleswebserviceshello

源代码网整理以下    编译刚才编写两个java源文件到build目录下,打开DOS命令窗口,

软件开发网 www.mscto.com

源代码网整理以下    在c: Apusic-3.0docssampleswebserviceshello目录下执行如下命令:

源代码网整理以下     mkdir build

源代码网整理以下    javac -d build Hello.java HelloImpl.java

源代码网整理以下    部署WebSerivces到集群服务器

源代码网整理以下    编写部署描述文件config.xml

源代码网整理以下    部署描述文件config.xml内容如下:

源代码网整理以下    "http://www.apusic.com/dtds/endpoint-config_1_0.dtd">

源代码网整理以下        HelloWorld Service

源代码网整理以下        A simple web service

源代码网整理以下        Hello

源代码网整理以下        HelloImpl

源代码网整理以下       MyHello

源代码网整理以下        /hello

源代码网整理以下       部署描述文件config.xml同样可以在c: Apusic-3.0docssampleswebserviceshello目录下找到。


源代码网整理以下    部署WebSerivces到Apusic集群

源代码网整理以下    在执行部署之前确保内部服务器Backend1和Backend2已经处于运行状态。

源代码网整理以下    打开DOS命令窗口,在c: Apusic-3.0docssampleswebserviceshello目录下执行如下命令:部署到Backend1:

源代码网整理以下     wsdeploy -s localhost:6881 -u admin -p admin -d .config.xml build hello.ear

源代码网整理以下     部署到Backend2:

源代码网整理以下    wsdeploy -s localhost:6882 -u admin -p admin -d .config.xml build hello.ear client.jar

源代码网整理以下    上面两步运行成功以后,我们可以在c:Apusic1upload目录下看到hello????.ear。同样也可以在c:Apusic2 upload目录下看到hello????.ear。其中的????表示几个数字,这几个数字是随机产生的。此时我的集群部署还没有完成。还必须的执行下 面三个步骤:停止Backend1服务器,把c:Apusic2upload目录下看到hello????.ear文件覆盖c:Apusic1 upload目录下hello????.ear,然后再启动Backend1服务器。此时整个部署才算完成。

源代码网整理以下    调用WebSerivces集群中的WebSerivces

源代码网整理以下    到现在我们可以开始调用前面部署的WebServices了。

源代码网整理以下    编写客户端HelloClient.java

源代码网整理以下首先编写WebServices的客户端HelloClient.java:

软件开发网 www.mscto.com

源代码网整理以下    import javax.xml.rpc.Stub;

源代码网整理以下   public class HelloClient

源代码网整理以下    {

源代码网整理以下     public static void main(String["> args)

源代码网整理以下    {

源代码网整理以下    try

源代码网整理以下    {

源代码网整理以下    //获得静态存根类

源代码网整理以下    Stub stub = new Hello_Stub();

源代码网整理以下     //指定要调用的目标服务器,(这里我们指向前面配置的负载均衡器)

源代码网整理以下     stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY,   

源代码网整理以下     http://locahost:80/hellobase/hello)

源代码网整理以下    //转换成接口类

源代码网整理以下   Hello hello = (Hello)stub;

源代码网整理以下    //调用接口类的方法

源代码网整理以下    String ret = hello.sayHello();

源代码网整理以下    //输出调用结果 System.out.println(ret);

软件开发网 www.mscto.com

源代码网整理以下    }catch(Exception ex)

源代码网整理以下     { 软件开发网 www.mscto.com

源代码网整理以下   ex.printStackTrace();

源代码网整理以下    }

源代码网整理以下 }

源代码网整理以下} 软件开发网 www.mscto.com

源代码网整理以下    HelloClient.java同样可以在c: Apusic-3.0docssampleswebserviceshello目录下找到。但是我们得做一些修改,在获得客户端存根stub后, 必须设置属性Stub.ENDPOINT_ADDRESS_PROPERTY,指向负载均衡器,设置方法如前面代码段中的黑体所示。因为它默认不是指向负 载均衡器。

源代码网整理以下     编译客户端程序: javac -classpath ".;client.jar;%classpath%;" HelloClient.java

源代码网整理以下    运行客户端程序

源代码网整理以下    在运行客户端之前,必须确保负载均衡器和两个后台服务器Backend1和Backend2都已经处于运行状态。

源代码网整理以下     运行客户端程序,命令如下: 软件开发网 www.mscto.com

源代码网整理以下     java -classpath ".;client.jar;%classpath%;" HelloClient

源代码网整理以下    如果运行成功将看到如下信息:

源代码网整理以下     Hello,my first web service!

源代码网整理以下    到此时我们的整个Apusic WebServices集群的基本配置方法和如何使用已经完成。正如你所看到的不管是Apusic集群的配置,还是Apusic的Webservices的开发和使用都是如此的简单,很多人都认为简单就是美,不是吗?


源代码网整理以下    "http://www.apusic.com/dtds/endpoint-config_1_0.dtd">

源代码网整理以下        HelloWorld Service

源代码网整理以下        A simple web service

源代码网整理以下        Hello

源代码网整理以下        HelloImpl

源代码网整理以下       MyHello

源代码网整理以下        /hello

源代码网整理以下       部署描述文件config.xml同样可以在c: Apusic-3.0docssampleswebserviceshello目录下找到。

源代码网整理以下    部署WebSerivces到Apusic集群

源代码网整理以下    在执行部署之前确保内部服务器Backend1和Backend2已经处于运行状态。

源代码网整理以下    打开DOS命令窗口,在c: Apusic-3.0docssampleswebserviceshello目录下执行如下命令:部署到Backend1:

源代码网整理以下     wsdeploy -s localhost:6881 -u admin -p admin -d .config.xml build hello.ear

源代码网整理以下     部署到Backend2:

源代码网整理以下    wsdeploy -s localhost:6882 -u admin -p admin -d .config.xml build hello.ear client.jar

源代码网整理以下上面两步运行成功以后,我们可以在c:Apusic1upload目录下看到hello????.ear。同样也可以在c:Apusic2 upload目录下看到hello????.ear。其中的????表示几个数字,这几个数字是随机产生的。此时我的集群部署还没有完成。还必须的执行下 面三个步骤:停止Backend1服务器,把c:Apusic2upload目录下看到hello????.ear文件覆盖c:Apusic1 upload目录下hello????.ear,然后再启动Backend1服务器。此时整个部署才算完成。

源代码网整理以下    调用WebSerivces集群中的WebSerivces

源代码网整理以下    到现在我们可以开始调用前面部署的WebServices了。

源代码网整理以下    编写客户端HelloClient.java

源代码网整理以下    首先编写WebServices的客户端HelloClient.java:

源代码网整理以下    import javax.xml.rpc.Stub;

源代码网整理以下    public class HelloClient

源代码网整理以下    {

源代码网整理以下     public static void main(String["> args)

源代码网整理以下    {

源代码网整理以下    try

源代码网整理以下    {

源代码网整理以下    //获得静态存根类

源代码网整理以下    Stub stub = new Hello_Stub();

源代码网整理以下     //指定要调用的目标服务器,(这里我们指向前面配置的负载均衡器)

源代码网整理以下     stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY,   

源代码网整理以下     http://locahost:80/hellobase/hello)

源代码网整理以下    //转换成接口类

源代码网整理以下   Hello hello = (Hello)stub;

源代码网整理以下    //调用接口类的方法

源代码网整理以下    String ret = hello.sayHello();

源代码网整理以下    //输出调用结果 System.out.println(ret);

软件开发网 www.mscto.com

源代码网整理以下    }catch(Exception ex)

源代码网整理以下     {

源代码网整理以下   ex.printStackTrace();

源代码网整理以下    }

源代码网整理以下 }

源代码网整理以下}

源代码网整理以下    HelloClient.java同样可以在c: Apusic-3.0docssampleswebserviceshello目录下找到。但是我们得做一些修改,在获得客户端存根stub后, 必须设置属性Stub.ENDPOINT_ADDRESS_PROPERTY,指向负载均衡器,设置方法如前面代码段中的黑体所示。因为它默认不是指向负 载均衡器。

软件开发网 www.mscto.com

源代码网整理以下     编译客户端程序: javac -classpath ".;client.jar;%classpath%;" HelloClient.java

源代码网整理以下    运行客户端程序

源代码网整理以下    在运行客户端之前,必须确保负载均衡器和两个后台服务器Backend1和Backend2都已经处于运行状态。

源代码网整理以下     运行客户端程序,命令如下:

源代码网整理以下     java -classpath ".;client.jar;%classpath%;" HelloClient

源代码网整理以下    如果运行成功将看到如下信息:

源代码网整理以下     Hello,my first web service!

源代码网整理以下    到此时我们的整个Apusic WebServices集群的基本配置方法和如何使用已经完成。


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华