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

news/2025/4/22 0:51:39

()胖客户端(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包中加了进去。

 



https://dhexx.cn/news/show-3784645.html

相关文章

音频功率放大电路(使用过的语音方案电路记录)

电路小课堂&#xff0c;记录一下自己用过的几款语音方案电路目录前言一、语音模块1.1 YX6300-24SS1.2 WT588D二、耳机接口三、音频功率放大器3.1 SC80023.2 TPA3110结语前言 电路小课堂时间&#xff0c;以前已经把基本的、常用的一些电路设计给总结完了&#xff0c;曾经想过是…

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

(三)瘦客户端(thin client)调用Web服务瘦客户端指采用浏览器作客户端, 而代码实现通常采用Web应用程序. 准备及安装软件1。JAVA SE 5 (JDK 1.5)及以上版本(http://java.sun.com/javase/downloads/index.jsp )2。NetBeans 5.5.1 (http://zh-cn.netbeans.org/index_zh_CN.html )3…

ESP32-C3 学习测试 蓝牙 篇(五、添加 characteristic)

前面的蓝牙部分都是基础说明&#xff0c;示例分析&#xff0c;本文就来改他一改目录前言一、示例更换说明gatt_server_service_table二、示例测试2.1 广播包2.1.1 设备名称2.2 服务与特征值2.3 读写操作2.3.1 通知 notify2.3.2 值 value三、示例修改&#xff08;添加一个charac…

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

(二)JAVA EE 5平台上实现Web服务实例&#xff08;模拟股票行情机&#xff09;JAVA EE 5平台上的JAX-WS J2EE 1.4平台上实现Web Services的是JAX-RPC, 而到了JAVA EE 5上, 重新命名为JAX-WS. JAX-RPC与JAX-WS最大的不同是编程模式的差别。 JAVA EE 5采用了JAVA SE 5 的Java语言新…

ESP32-C3 学习测试 蓝牙 篇(六、添加 Service)

学会了添加 characteristic &#xff0c;还得学会添加 service&#xff0c;本文来学习新增蓝牙服务。目录前言一、添加一个 Service1.1 新 service 头文件枚举定义1.2 新 service 的一些定义1.3 新 service 的属性表1.4 新 service 的通知1.5 ☆新 service 的创建☆二、测试结语…

(五)Java游戏部署在Windows Mobile平台仿真器(Microsoft)

前面几种平台,都可以集成到NetBeans IDE开发环境中. 很遗憾的是, 目前NetBeans还没办法集成Windows Mobile平台的仿真器. 可以采用不同于前面平台的方式&#xff0c;把Java程序部署在Windows Mobile平台的仿真器上&#xff0e;准备软件&#xff1a;&#xff11;。下载&#xff…

ESP32-C3 学习测试 蓝牙 篇(七、GATT 数据通信 — 发送自定义数据)

前面我们已经入门了 GATT 的开发&#xff0c;更进一步&#xff0c;进行想要的数据通信 。目录前言1、通信问题思考2、 如何才能每次传输不同的数据3、 对 handle 的认识4、继续尝试5、测试成功结语前言 本来计划直接做一个蓝牙的小应用&#xff0c;首先得实现一下自己想要数据…

(四)Java游戏部署在BlackBerry仿真器上(RIM)

准备软件&#xff1a;&#xff11;。下载 BlackBerry Java Development Environment v4.2.1 (http://na.blackberry.com/eng/developers/downloads/jde.jsp) 安装软件&#xff1a;&#xff11;。运行BlackBerry_JDE_4.2.1.exe&#xff0c;安装目录&#xff0c;例如&#xff1a…

ESP32-C3 应用 篇(实例二、通过蓝牙将传感器数据发送给手机,手机端控制 SK6812 LED)

ESP32-C3 蓝牙部分我们学习了GATT&#xff0c;本文尝试使用蓝牙做一个简单的小应用。目录前言一、整体框架二、数据传输部分2.1 添加温湿度驱动组件2.2 传感器数据传输程序再次说明&#xff1a; ESP_GATTS_READ_EVT 事件2.3 功能测试2.4 代码优化三、控制部分3.1 添加LED驱动组…

嵌入式Linux 开篇大吉

❤️ 大家好&#xff0c;我是矜辰所致&#xff0c;从去年开始计划写博文的时候就已经在考虑嵌入式 Linux&#xff0c;但是在此之前花了快一年的时间整理了自己的一些笔记和心得&#xff0c;最后也就是以文章形式呈现给大家的这些博文。 ❤️ 发现在如今的C站&#xff0c;嵌入式…