用Java Web服务打造聊天程序 - 编程入门网
ChatService类为一个Web服务。这个服务的URI由服务器的地址和服务器的服务路径组成。WASP还自动地创建描述服务WSDL文档并且把它发布在SERVICE_URI/wsdl。
图2:运行服务器。 构造并运行聊天服务器 聊天服务器现在可以运行了。在构造完毕之后(Project->Build Add),你可以启动它。首先,创建一个Web服务运行器。这个运行器保证服务器有所有需要的库并且被适当的配置。为了创建运行器,从com.systinet.simplechat.server.impl程序包中选择ChatServerApp并且从IDE菜单中选择Run->Run...。 打开的对话框是工程中的所有的运行器的管理器。双击WASP Java Application运行模板。创建了一个称为ChatServerApp的新的运行器。总是使用这个运行器来运行ChatServerApp类。按下Run按钮来启动聊天服务器。 服务器启动并且运行,准备与SOAP通信。它的位置是http://localhost:6060/ChatService/。动态生成WSDL文档的位置是http://localhost:6060/ChatService/wsdl。 业务逻辑现在使用Runtime API被编程部署到服务器上。 图3:运行服务器的输出。 用Java Web服务打造聊天程序(3)时间:2010-12-16客户端 现在,你需要一个消费这个ChatService的客户端。 假定你对这个服务所了解的所有的东西只是它的WSDL描述的位置: http://localhost:6060/ChatService/wsdl。你不能访问原始的Web服务的源代码。你甚至不知道它是使用什么语言来实现的。你还不知道ChatService的精确位置,但是你知道每个Web服务都在它的WSDL文档中完全描述。 服务器创建一个代理,隐藏所有的SOAP并且从开发者垂直传送,并且让它们使用单一方法调用来调用Web服务。为了运行,这个代理必须知道Web服务的WSDL描述的位置,Web服务的URI和它的Java接口。你知道ChatService的WSDL位置,并且服务的URI包含在这个WSDL中。现在你所需要的是取得服务的Java接口。手工创建它意味着非常了解WSDL和XML Schema,并且它甚至仍然是一个很难的任务。幸运的是,WASP Developer包含一个从它的WSDL生成一个Web服务的Java接口的工具。这个工具,称为WSDL2Java,可用作命令行实用程序和一个ANT任务,所以它非常便于与使用ANT的构造整合。 图4:创建客户端程序包。 客户端的代码 首先,创建一个用于客户端的新的程序包。从菜单选择File - > New - > Package。在New Package对话框中输入名为com.systinet.simplechat.client的程序包,并且按下finish按钮。 WASP Developer需要WSDL文件存在于工程中以便生成客户端类。下载聊天服务的WSDL文档到工程中。选择com.systinet.simplechat.client程序包,并且从菜单选择File - > New - > Other...。New对话框现在打开了。在左边的工具栏中选择Systinet Web Services。所有可用的向导现在出现在右边的工具栏中。选择WSDL from Internet条目并且转到下一窗囗。 在第二个窗口中填入WSDL文件的位置并且选择Next。ChatService的WSDL文件位于http://localhost:6060/ChatService/wsdl。 在最后一个窗口中,填充下载的WSDL文件的名称。设置它为ChatService并且点击finish。 WSDL文件现在在你的工程中了。为了生成客户端类,从它的上下文菜单选择Generate Client...条目。 当Generate Client from WSDL向导打开的时候,所有的值都设置为它们的默认值并且结束向导。 现在你在两个新程序包中创建了几个文件;com.systinet.simplechat.client.iface和com.systinet.simplechat.client.iface.struct。前一个程序包包含接口定义,ChatService.java和一个被WASP框架使用的支持文件ChatService.xmap。后一个程序包包含使用在ChatService.java接口- ChatMessage.java和ChatPerson.java的附加的结构。如果你检查这个生成的类,它们应该为你所 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |