(四)Java EE 5实现Web服务(Web Services)及多种客户端实例-胖客户端

news/2024/6/18 19:56:51

()胖客户端(rich client)调用Web服务

胖客户端,相对于瘦客户端来说,有着界面丰富,操作速度快,功能强大等优点. 目前国内比较流行的炒股软件,比如钱龙,大智慧, 同花顺,都属于胖客户端类. 而胖客户端的缺点在于升级成本高等.

准备及安装软件

1JAVA SE 5 (JDK 1.5)及以上版本(http://java.sun.com/javase/downloads/index.jsp )

2NetBeans 5.5.1 (http://zh-cn.netbeans.org/index_zh_CN.html )

  1.  

建立胖客户端调用Web服务

1。打开NetBeans 5.5.1, 菜单“文件”中选择“新建项目”

2。“新建项目”窗口中,“类别”栏中选择“常规”,“项目“栏中选择“ Java应用程序”,点击“下一步”按钮。



3。“新建Java应用程序 ”窗口中,在“项目名称”栏中输入“RichClient”

取消”创建主类”. 点击”完成”


4. 接下来要创建GUI窗体. 鼠标右键点击”RichClient”项目. 选择"新建"->"文件/文件夹". "新建文件"窗口中, “类别”选择”Java GUI窗体”, “文件类型”选择”JFrame窗体”



5. "新建JFrame窗体”中, 输入如下

类名: StockQuoteJFrame

: com.sun.sdn.demo.ws.client

点击”完成”按钮



6. 空白窗体"StockQuoteJFrame"出现在设计窗口中. NetBeans中的GUI采用托拽”组件面板”部件到窗体的方式来布局, 打开"组件面板"窗口,可以通过菜单"窗口"->"组件面板". 完成后的StockQuoteJFrame.java 窗体如下:

  1.  



7. 建立完GUI窗体, 接下来需要建立Web服务的客户端. 需要先导入相关的Web服务库. 选择”RichClient"项目下的库。鼠标右键点击”库", 选择”添加库...”"添加库"窗口中,选择”JAX-WS 2.1”. 点击”添加库”按钮.


8。鼠标右键点击”RichClient”项目, 选择“新建”->“文件/文件夹”. ”新建文件”窗口中,“类别”选择“Web服务”,“文件类型”选择“Web服务客户端”。点击“下一步”。

9.“新建Web服务客户端”窗口中,输入如下:

WSDL URL: http://localhost:8080/StockQuoteWS/StockQuoteService?WSDL

包名:com.sun.sdn.demo.ws.client 

点击”完成”

关于WSDL URL,请参考<<JAVA EE 5平台上实现Web服务实例(模拟股票行情机)>>



另外, 点击”设置代理”按钮, 确认已经设置了适和的代理服务器.



10. 出现如下提示窗口,询问"已在外部修改了文件E:/mymodules/RichClient/catalog.xml, 是否重新装入它?", 点击”是”

11. NetBeans 自动在客户端生成Web服务的调用类.在”文件"Tab, 可以在”ThinClient”->"build"->"generated"->"wsimport",查看com.sun.sdn.demo.ws包中自动生成的调用类,

GetQuote.class

GetQuoteResponse.class

ObjectFactory.class

StockQuote.class

StockQuoteService.class

package-info.class


12. stockQuoteJFrame.java的源窗口中, 加入下面一个方法

public String getQuote(String stockCode){

return null;

}


13. getQuote()方法体中, 鼠标右键点击任一位置.选择”Web服务客户端资源”->"调用Web服务操作"



14. 自动生成的代码(黑体)如下

public String getQuote(String stockCode){

try { // Call Web Service Operation

com.sun.sdn.demo.ws.client.StockQuoteService service = new com.sun.sdn.demo.ws.client.StockQuoteService();

com.sun.sdn.demo.ws.client.StockQuote port = service.getStockQuotePort();

// TODO initialize WS operation arguments here

java.lang.String arg0 = "";

// TODO process result here

java.lang.String result = port.getQuote(arg0);

System.out.println("Result = "+result);

} catch (Exception ex) {

// TODO handle custom exceptions here

}

return null;

}

15. stockQuoteJFrame.java的设计页面, 右键点击”get quote”按钮, 选择”事件”->"Action"->"actionPerformed". 添加如下代码:

private void jButtonGetQuoteActionPerformed(java.awt.event.ActionEvent evt) {

String stockCode = jTextFieldStockCode.getText();

String quote = "Stock " + stockCode + " quote is " + this.getQuote(stockCode);

jLabelResult.setText(quote);

}

15. 修改后的stockQuoteJFrame.java的部分代码如下:

private void jButtonGetQuoteActionPerformed(java.awt.event.ActionEvent evt) {

String stockCode = jTextFieldStockCode.getText();

String quote = "Stock " + stockCode + " quote is " + this.getQuote(stockCode);

jLabelResult.setText(quote);

}

 

....

String getQuote(String stockCode){

String result = "";

try { // Call Web Service Operation

com.sun.sdn.demo.ws.client.StockQuoteService service = new com.sun.sdn.demo.ws.client.StockQuoteService();

com.sun.sdn.demo.ws.client.StockQuote port = service.getStockQuotePort();

result = port.getQuote(stockCode);

} catch (Exception ex) {

ex.printStackTrace();

}

return result;

}

16.鼠标右键点击“RichClient”, 选择“运行项目”。运行结果如下:


在胖客户端的建立过程中,有一个环节是导入JAX-WS库。而建立瘦客户端中没有这一步,因为瘦客户端部署在Sun Application Server 9 上,Java EE 5平台中带有JAX-WS. 部署胖客户端的Java SE 5则没有JAX-WS包。不过从Java SE 6 开始,已经把JAX-WS包中加了进去。

 



http://www.niftyadmin.cn/n/3654450.html

相关文章

湖北荆州农民用IC卡配肥种田

湖北荆州农民用IC卡配肥种田湖北荆州农民只需要拿着IC卡在智能终端配肥机的电脑上轻轻一刷&#xff0c;一袋满足持卡农户农田耕地所需养分数量和含量的配方肥片便“噌”落了地&#xff0c;在22日至23日召开的全省土肥工作&#xff08;荆州&#xff09;现场会上&#xff0c;与会…

加拿大发行PRESTO智能卡

不论是搭GO火车或GO巴士&#xff0c;或者是大多市地区内的公共交通工具&#xff0c;只须拿著一张PRESTO智能卡&#xff0c;就能方便抵达目的地。现在出售PRESTO智能卡的地点&#xff0c;包括61个GO火车站、400 架GO巴士上和七个城市的公车系统。加拿大安省省长麦坚迪24日来到万…

用JSP实现基于Web的RSS阅读器

转贴自己的原创&#xff1a;用JSP实现基于Web的RSS阅读器(http://blog.csdn.net/javachannel/archive/2006/06/28/846826.aspx )

Java游戏程序部署在不同平台的手机模拟器上

手持终端设备&#xff0c;包括手机&#xff0c;智能手机&#xff0c;掌上电脑等等。手持终端设备平台类似于计算机中的操作系统&#xff0c;目前比较广泛见到的有以下几种1。Linux&#xff1a;2。Symbian&#xff1a;3。BlackBerry&#xff1a;4。Windows Mobile&#xff1a;5。…

甘肃兰州年内发行市民卡

近日&#xff0c;随着“数字城关133工程”的顺利启动&#xff0c;“数字兰州”建设进入一个崭新的局面。 按照兰州市政府的工作进度要求&#xff0c;今年年内兰州市将先行发放3000张“市民卡”&#xff0c;目前&#xff0c;发放工作正在紧锣密鼓地进行中。到2012年末累计发…

(一)NetBeans IDE上的Java手机游戏例子

准备软件&#xff1a;1。下载Java SE 5.0或以上版本(http://java.sun.com/javase/downloads/index_jdk5.jsp )2。下载NetBeans IDE 5.5.1 (http://zh-cn.netbeans.org/ )3。下载NetBeans Mobility Pack for CLDC (http://zh-cn.netbeans.org/ )安装软件&#xff1a;按照以下顺序…

Vue3---放大镜的实现

1. 通过小图切换大图实现&#xff1a; 思路&#xff1a;维护一个数组图片列表&#xff0c; 鼠标划入小图记录当前小图下标值&#xff0c;通过下标值 在数组中取对应图片 &#xff0c;显示到大图位置 2. 放大镜效果实现------滑块跟随鼠标移动 useMouseInElement | VueUse 思路…

(二)Java游戏部署在Linux平台仿真器上(Motorola)

准备软件&#xff1a;&#xff11;。下载 Motorola Java ME SDK v6.4 for Linux OS Products (http://developer.motorola.com/docstools/sdks/linux64/)安装软件&#xff1a;&#xff11;。解压缩linux_64_SDK.zip, 例如,解压缩后的文件放在c:/java/Motorola目录下&#xff12…