文档详情

企业级开发WEB服务应用

痛***
实名认证
店铺
2024-10-05
PPT
2.11MB
约46页
企业级开发WEB服务应用_第1页
1/46
企业级开发WEB服务应用_第2页
2/46
企业级开发WEB服务应用_第3页
3/46

单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第六章,WEB服务(WEB SERVICE)开发和应用,课程内容,WebService的各种创建和查看,实现WebService客户端,WebService的应用场合,WebService的优点和缺点,WebService的性能优化,创建和查看WEB服务,Web Service软件的支持,Web Service构建工具如下:,微软,.NET,IBM,的,WebSphere,Borland,的,JBuilder,开源的,Eclipse,总之,在Web Service开发上,.NET 和Java都是很好的选择,尽管两者现在都有一些需要完善的地方,但是就目前来说,它们还是最好的开发手段和技术具体选择哪种开发工具,也是仁者见仁,智者见智的问题使用XFire开发Web服务,一个Demo:,一个银行业应用程序,将资金从一个账户转到另外一个账户上它需要四个输入参数:,String fromAccount:转帐的帐户帐号String toAccount,:被转到的帐户帐号double amount,:转帐的资金数目。

String bankName,:服务的银行名称XFire是一个免费的开源SOAP框架,它不仅可以极大方便地实现这样一个环境,并且可以提供许多Web Services规范中的高级特征,这些特征在多数的商业或者开源工具都没有提供下面你将会看到使用XFire创建Web Services是多么的简单接口的设计:,package;,public interface IBankService,public String transferFunds(String fromAccount,String toAccount,double amount,String bankName);,编写Java类简单的实现以上接口(代码省略),Web应用的部署描述符,首先,修改web.xml我们需要增加下面的XFire servlet相关的条目,部分代码如下:,XFireServlet,/servlet/XFireServlet/*,XFireServlet,/services/*,在Java中,Web应用程序通常需要至少一个部署描述符对其进行配置XFire本身是一个基于Servlet的应用程序因此,我们需要增加必要的引用到描述符文件中。

然后我们还必须配置将要创建的Web Services我们使用一个称为services.xml的新文件来完成这件事services.xml,Web Services是由一个叫做services.xml的文件组成的,存放在META-INF/xfire目录下该文件的部分配置代码如下:,BankService,wrapped,literal,application,分析service.xml文件中的元素,,它可以是你提供任何的合法名字这将会被客户端程序和其它需要定位你的服务的组件用到可以在浏览器上使用这个名字来查看WSDL任何合法的XML名字都是可以的用来唯一标识你的服务的各个参数元素包含了Java类的名字,它指定了方法签名在我们的例子中,它是接口IBankingService如果Java类没有实现任何接口,就需要把类的名字放在这里在你的Java类或者接口中可能有几个方法只需要一个入口把它们全部发布为Web Services保存了实现方法的Java类名这是一个可选元素如果上一个元素包含了一个接口,那么相应的实现类必须在这里指定基本的Web Services开发步骤,基本的Web Services开发步骤 如下:,1编写Java类,类中的方法和默认构造函数确保为public。

2增加XFire servlet相关条目到web.xml中3创建services.xml,把它放到WEB-INF/classes/META-INF/xfire目,录下4增加XFire和第三方包到你的Web应用的WEB-INF/lib文件夹中XFire的其他高级特性,本地数据绑定支持,POJOs,(,plain-old Java objects,)、,XMLBeans,、,JAXB,(,Java Architecture for XML Binding,)、,Castor,等等使用,StAX(Streaming,API for XML),处理,XML,文档支持多种传输协议,如,HTTP,、,JMS,(,Java Message Service,)和,JVM,内部传输嵌入式,这是,XFire,的核心功能之一丰富的,API,,它使,XFire,可高度自定义兼容最新的标准例如,SOAP1.1,(没有加密远程工程调用,或者,RPC,)和,1.2,、,WSDL1.1,等其他开发Web服务的途径,一:使用EJB来暴露Web服务,二:将Web工程发布为Web服务,查看Web服务,假如我们的Web服务是发布在JBoss服务器中的,我们可以通过JBoss管理平台查看刚才发布的Web Service,我们可以输入:“http:/localhost:8080/jbossws/”进入JBossWS的查看界面,点击“View”连接后,可以查看已经发布的Web服务,两种实现Web服务的方法,1开始编写Java类,并让容器去生成WSDL及其它所需要的XML文档;,2开始编写(或直接使用现成的)WSDL文件,并借助于开发工具生成所需要的Java类。

其他开发Web服务的途径,实现WEB服务客户,调用WebService的方法,在J2EE平台中,Web服务客户同EJB客户类似如以下两种方式能够访问到Web服务:,1单独的JAX-WS客户它们不借助于JNDI来访问Web服务2J2EE客户(比如Web客户、J2EE应用客户)它们借助于客户端的JNDI上下文访问Web服务分析:,第一种方式:不借助于JNDI,即单独客户,比如那些未运行在应用服务器中的远程Java客户能够访问到Web服务第二种方式:依赖于Dispatch对象它在运行的时候以来动态调用接口(Dynamic Invocation Interface,DII)创建调用对象开发一个客户端,如以下代码:,/创建一个服务模型,Service serviceModel=new,ObjectServiceFactory().create(IBankService.class);,/获得服务的代理工厂,XFire xfire=XFireFactory.newInstance().getXFire();,XFireProxyFactory factory=new XFireProxyFactory(xfire);,可以使用任何的SOAP工具创建客户端,例如,.Net或者Apache Axis,有很多种方法,使用从WSDL产生的stubs,使用动态代理等等。

下面这个例子中,我们使用一个动态代理,以一个简单的Servlet形式,叫做WsClient.java为了保持代码量最小,所有在屏幕显示的元素都放在了doGet()方法中String serviceUrl=,http:/localhost:8080/BankWebService/services/BankService;,IBankService client=null;,try,client=(IBankService)factory.create(serviceModel,serviceUrl);,catch(MalformedURLException e),log.error(WsClient.callWebService():出现异常:+e.toString();,/调用服务,String serviceResponse=;,try,serviceResponse=client.transferFunds(fromAccount,toAccount,amount,currency);,catch(Exception e),/返回服务的调用结果,return serviceResponse;,WEB服务的应用探讨,WebService的缺点,XML,限制,无状态(,stateless,)的服务,数据绑定也存在一些不足,技术要求高,学习曲线较长,在体会到WebService自身的优点的同时,不要忘了WebService也存在很多的缺点:,什么应用适合Web Services?,基于,WAN,和,Internet,的应用,基于异构平台的应用,需要强安全特性的应用,EAI,(企业应用集成),行业内部,B2B,应用,就目前来说,Web Services比较适合用于下列形式的应用:,提高Web Services的性能,要想提高Web Services应用的性能,需要对整个系统做全盘的考虑。

一般来说,有以下几点需要注意:,(,1,),Web Services,的颗粒度,,,Web Services,比较适用于大颗粒度的应用,在一个调用中便获得所有的信息,(,2,)谨慎使用,XML,接口,,避免不必要的,XML,文档的解析和效验;在处理,XML,的时候,尽量将,XML,转换成内部对象,,XML,的传递只会增加系统的开销3,)最大可能性使用,CACHE,,,可以使用,CACHE(,缓冲技术,),无论是客户端的,CACHE,还是服务器端的,CACHE,,都能大大提高系统的性能本章总结,WebService的各种创建和查看,实现WebService客户端,WebService的应用场合,WebService的优点和缺点,WebService的性能优化,动手实践:人数计算器,人数计数器,要开始本章的体验项目首先要做以下的准备工作:,(1)首先将本章体验项目下配置文件按照指定要求放到指定目录,下:C盘根目录下2)之后将体验项目部署到服务器中,并启动服务器3)最后在浏览器中输入以下地址:,http:/localhost:8080/CounterWebService/counter.jsp,如果成功运行则会看到类似以下的画面,如图6-1所示:,图6-1 计数器页面,可以看到页面中成功的输出了当天的访问量以及当周的访问量和总访问量,当刷新页面的时候,会看到统计的数字依次加一。

实现步骤,(1)新建一个WebService工程,之后编写业务操作的接口类:ICounterSerivce;,(2)实现该接口的业务Bean:CounterServiceImpl,(3)编写一个简单客户端是如何调用以上Web服务,(4)在工程中新建一个JSP页面:counter.jsp,通过客户端Bean应用该Web服务,在开始开发WebSerivce之前,我们首先要做的是在c盘下或者是其它目录下新建一个文件-counter.xml,用于保存记录的数字1)创建一个Web服务,实现对用户访问页面的次数进行分天或分周进行统计2)在Java中调用该Web服务,并在JSP页面中把结果显示出来1)在开始开发Web Serivce之前,我们首先要做的是在C盘下或者是其它目录下新建一个文件counter.xml,用于保存记录的数字,counter.xml文件内容如下:,admin,123456,1,24,56,2007-6-18 5:42:58,(2)新建一个Web Services工程,命名为CounterWebSerivce,之后编写业务操作的接口类ICounterSerivce,代码如下:,package com.test.webserivce;,public interface ICounterSerivce,public String counter(String userName,String password);,(3)编写实现类CounterServiceImpl,代。

下载提示
相关文档
正为您匹配相似的精品文档