您的位置:首页 > 编程语言 > Java开发

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

2007-12-14 12:41 429 查看
2007年08月21日 20:07:00
(四)胖客户端(rich client)调用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 ) 建立胖客户端调用Web[u]服务[/u]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 窗体如下:


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.classGetQuoteResponse.classObjectFactory.classStockQuote.classStockQuoteService.classpackage-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包中加了进去。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1753371
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐