Posted on 2010-01-13 22:48
断点 阅读(403)
评论(0) 编辑 收藏 所属分类:
EJB3.0
Web服务也是一种分布式技术,属于行业规范,可以跨平台及语言。
EJB属于java平台规范,尽管理论上可以跨平台,但实现起来比较麻烦,所以其应用范围局限在java平台。
二者偏重点不同:
Web服务偏重的是这个系统对外提供什么功能;
EJB偏重的是如何使用一个个组件组装这些功能。
例如:一个硬盘,它对外提供的是存储服务,这是web服务的关注点;对于怎样组装这个硬盘,web服务并不关心,而这些是EJB所关注的。
JavaEE为web service提供了两种不同的编程模型:EJB容器模型、Web容器模型。
下面以最新的JAX-WS2.x规范(Java API for XML-based Web Services)介绍Webservice的开发。
注:JAX-WS的下载路径为https://jax-ws.dev.java.net/servlets/ProjectDocumentList?folderID=7796&expandFolder=7796&folderID=11088
EJB容器模型的WEB服务的客户端开发:
注:首先我们需要建立一个无状态SessionBean,然后把此无状态SessionBean发布为web service。
1.在应用的类路径下放入JAX-WS的全部jar文件,并且把引进的jar文件添加到类路径上,即右击项目名-->Properties-->Java Build Path-->Add JARS。
如果你使用的是JDK6,这一步可以省略,因为JDK6已经绑定了JAX-WS。目前JDK6绑定的JAX-WS版本是2.0。
2.把JAX-WS产品lib目录中找到jaxws-api.jar和jaxb-api.jar,把这两个文件copy到JDK_HOME/jre/lib/endorsed目录下。
3.利用Web Service客户端生成工具(wsimport工具的Ant任务类)生成辅助类。
build.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="WSClient" default="wsclientgen" basedir=".">
<property name="src.dir" value="${basedir}/src" />
<path id="build.classpath" description="设置类路径">
<fileset dir="${basedir}/lib">
<include name="*.jar"></include>
</fileset>
</path>
<target name="wsclientgen" description="生成webservice客户端辅助代码,执行后请刷新项目">
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport"
classpathref="build.classpath"/>
<wsimport wsdl="http://localhost:8090/WebService/OrderServiceBean?wsdl"
sourcedestdir="${src.dir}" package="cn.ztf.ws.client" keep="true"
verbose="true" destdir="${basedir}/bin"/>
</target>
</project>
4.借助辅助类调用Web Service。
posted @ 2009-03-30 14:22 断点 阅读(169) | 评论 (0)