分享
 
 
 

Sun ONE Application Server 开发者指南(10)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

JAX-RPC客户端模型

下面这一节讲述了这些步骤:

生成stub

编写客户端代码

编译客户端代码

组装客户端类生成JAR文件

运行客户端

生成stub

可以使用wscompile工具为客户端生成stub。除了生成stub,wscompile工具还为服务器生成tie。为了生成stub,请设置PATH到install_dir/share/bin目录。使用下面的语法运行该工具:

wscompile -gen:client -d build/client -classpath build/shared config.xml

关于wscompile工具的更多信息,请参见"wscompile工具"

有两种方法可以生成stub。可以从服务终端定义或是WSDL文件生成stub。上面的Wscompile命令采用了服务终端定义来生成stub。

编写客户端代码

确定在类路径中添加了必要的jar文件。想要了解更多,请参见"配置客户端环境 "

客户端执行了以下步骤:

1.获得接口stub的一个实例

2.设定stub的终端属性,从而指定web服务的服务终端。

3.调用方法。

本例使用服务终端定义生成stub。你可以利用JAX-RPC实现的客户端API javax.xml.rpc.Stub来提供配置信息。

以下代码示范了上面提到的步骤:

package hello;

import javax.xml.rpc.Stub;

public class HelloClient {

public static void main(String[] args) {

try {

HelloIF_Stub stub = (HelloIF_Stub)(newHelloWorld_Impl().getHelloIFPort());

stub._setProperty( javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, args[0]);

System.out.println(stub.sayHello("Duke!"));

command-line }

catch (Exception ex) {

ex.printStackTrace();

}

}

}

在上面的代码示例中,HelloClient是调用HelloWorld服务中的sayHello方法的一个独立程序。它通过stub,一个充当远程服务代理的本地对象,进行调用。请注意在代码清单中名为HelloIF_Stub和HelloWorldImpl的类,它们由wscompile工具生成。HelloIF前缀与服务定义接口相吻合,HelloWorld前缀对应配置文件中指定的服务名称。HelloWorldImpl类是JAX-RPC规范中描述的服务的实现。客户端通过调用HelloWorldImpl 类的getHelloIF方法获得对stub的引用,HelloWorldImpl类是在运行wscompile工具的时候创建的。

stub._setProperty方法的args[0]参数是一个表示目标服务端口的URI。

编译客户端代码

注意

确定在编译客户端代码之前运行了wscompile和wsdeploy工具。客户端代码引用了wscompile工具的产物。

wscompile -gen:client -d build/client -classpath build/shared

要编译客户端,请切换到保存客户端代码的目录并输入以下命令:

asant compile

该命令编译Java源代码。

组装客户端类生成JAR文件

你可以使用asant工具组装客户端类生成JAR文件。Asant是一个命令行接口工具。请输入以下命令:

asant jar

该命令创建客户端jar文件。

运行客户端

使用asant工具运行客户端。输入以下命令:

asant run

asant的运行目标会执行以下命令:

java -classpath cpath client endpoint

cpath – 包括已经创建的客户端jar文件的类路径,也包括作为JAX-RPC实现的一部分的几个其他JAR文件。

注意

为了远程运行客户端,所有的JAR文件必须存在于远程客户端系统中。

endpoint- http://localhost:8080/jaxrpc-hello/jaxrpc/HelloIF

这个URL的jaxrpc-hello部分是实现了HelloWorld服务的servlet的上下文,它对应jaxrpc-hello.war文件的前缀。字符串jaxrpc对应sun-web.xml配置描述文件中<url-pattern> 元素的值。最后,HelloIF是在服务中定义的接口名称。

可以通过build.xml文件完成编译、组装、和部署任务,并且可以通过它运行客户端。绑定在Sun ONE应用服务器中的本例的build.xml文件位于:

install_dir/samples/webservices/jaxrpc/simple/src

使用动态调用接口创建客户端

使用动态调用接口(DLL),客户端可以调用服务或是远程过程。利用可以动态查找服务及其远程过程的服务代理,客户端能够在运行时发现服务或是过程的名称。javax.xml.rpc.Service封装了两类不需要任何生成代码的动态调用。本节讲述创建动态客户端的过程。

使用动态代理创建JAX-RPC客户端

使用调用接口创建JAX-RPC客户端

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有