您的位置:首页 > 运维架构 > Tomcat

TOMCAT上Web Service开发攻略

2008-04-25 14:22 375 查看
TOMCATWebService开发攻略欢迎大家同我交流:小白enhydra_boy@tom.com欢迎转载,请保留本声明,谢谢!随着以.NET和J2EE为代表的Web计算技术的兴起,WebService已经成为越来越重要的应用,WebService为应用系统间的集成提供了一种新型的交换方式,.NET,J2EE都相继支持WebService应用。笔者不想对WebService概念和理论作过多的讨论和阐述,大家可以从下面相关的资料中进一步进行了解。Web服务概念性体系架构WebServices/ws-wsca/part1/index.shtml">http://www-900.ibm.com/developerWorks/cn/WebServices/ws-wsca/index.shtmlXMLWebServiceWebServices/">http://msdn.microsoft.com/WebServices/目前,WebService应用一般都采用SOAP(SimpleObjectAccessProtocol,即简单对象访问协议)协议,和传统的DCOM/COM,CORBA相比,SOAP有以下优点:首先,前者都是基于2进制流的数据交换,而SOAP是采用基于XML的文本数据交换,因此在数据交换上更容易,更方便。调试以SOAP为基础的应用程序更容易。其次,SOAP采用HTTP协议,并非私有的协议,所以,能够更加安全的穿越防火墙。如今,Microsoft、IBM、SUN都在各自的产品中添加了对SOAP协议的支持,所以,前者COM/DCOM,CORBA和SOAP相比,简直不值得一提。正是SOAP的出现,使得采用不同架构技术的系统的协作、交互成为可能。SOAP是一种新型的分布式计算技术。利用SOAP,同时结合其他技术,比如UDDI(UniversalDiscoveryDescription,andIntegration)和WSDL(WebServicesDescriptionLanguage),在Web服务这一概念的支持下,从而可以实现未来商业应用跨越Web进行通信的方式。那么,接下来,让我直接进入正题,谈一谈TOMCAT下,如何快速开发WebService应用。首先,要搭建一个环境,笔者搭建的环境是:Windows2000Server(中文版)+TOMCAT41从http://jakarta.apache.org/下载TOMCAT4,安装,并且配置好。启动TOMCAT4,在浏览器中输入http://localhost:8080。可以看到首页面,表示TOMCAT4已经配置好了。

2从http://xml.apache.org/dist/axis/1_1RC1/下载AXIS,解压缩到$TOMCAT_HOME/Webapps/axis下面去。在浏览器中运行http://localhost:8080/axis/index.html,测试是否可以运行。

接下来,我们开始开发一个WebService应用。编辑一个java文件CalcService.javapublicclassCalcService{
publicintadd(intp1,intp2){returnp1+p2;}publicintsubtract(intp1,intp2){returnp1-p2;}}复制CalcService.java文件到$TOMCAT_HOME/Webapps/axis目录下,改名为CalcService.jws。在浏览器中,输入Service.jws">http://localhost:8080/axis/CalcService.jws,得到提示信息如下:

Axis把CalcService.jws包装后,提供了一个WSDL的接口外露信息。可以输入Service.jws?WSDL">http://localhost:8080/axis/CalcService.jws?WSDL察看WSDL的接口信息。通过WSDL接口,我们可以遍写一个VB程序来调用。测试步骤如下:1从http://www.microsoft.com上下载SOAPTOOLKIT3.0,安装。2VB6中新建一个工程,添加一个FORM,FROM的界面如下。

3分别在两个按钮cmdAdd和cmdMinus中写上如下代码PrivateSubcmdAdd_Click()
'测试add方法OnErrorResumeNextDimSoapClientAsObjectSetSoapClient=CreateObject("MSSOAP.SoapClient30")CallSoapClient.MSSoapInit2(Text1.Text,"","","CalcService","")IfErr.Number<>0ThenMsgBoxSoapClient.FaultString,vbExclamationExitSubEndIf'NowtheclientcancallanoperationlistedintheportTypeelement'specifiedwhencallingmssoapinit().Text4.Text=CStr(SoapClient.Add(Val(Text2.Text),Val(Text3.Text)))IfErr.Number<>0ThenMsgBoxSoapClient.FaultString,vbExclamationExitSubEndIfEndSubPrivateSubcmdMinus_Click()'测试substract方法OnErrorResumeNextDimSoapClientAsObjectSetSoapClient=CreateObject("MSSOAP.SoapClient30")CallSoapClient.MSSoapInit2(Text1.Text,"","","CalcService","")IfErr.Number<>0ThenMsgBoxSoapClient.FaultString,vbExclamationExitSubEndIf'NowtheclientcancallanoperationlistedintheportTypeelement'specifiedwhencallingmssoapinit().Text7.Text=CStr(SoapClient.subtract(Val(Text5.Text),Val(Text6.Text)))IfErr.Number<>0ThenMsgBoxSoapClient.FaultString,vbExclamationExitSubEndIfEndSub其中需要注意的是,MSSoapInit2方法简单地说明如下:
HRESULTMSSoapInit2(
[in]VARIANTpar_WSDLFile,
[in]VARIANTpar_WSMLFile,
[in]BSTRpar_ServiceName,
[in]BSTRpar_Port,
[in]BSTRpar_Namespace);
par_WSDLFileWSDL文件的位置,本例中为
http://localhost:8080/axis/CalcService.jws?wsdl
par_WSMLFile本例中为空
par_ServiceName本例中为空
par_Port服务端口号,可以从wsdl文件中找到。
par_Namespace本例中为空

关于MicrosoftSOAPTOOLKIT3.0的详细说明,我会以后,专门写文章介绍。4运行,并且测试。

总结,应用WebService技术,我们已经看到了,用VB编写的程序一样可以享用JAVA技术,当然也可以享用.NET技术,当然java编写的应用一样可以享用VB6或.NET开发的WebService。这项技术的应用必将给信息系统的结构模式带来全新的改变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: