<o:p> </o:p>接手的项目用到了基于stateless session bean 的webservice,以前没有怎么接触过ws.整理一下自己的学习资料:<o:p>
</o:p>
• Quick introduction Webservice<o:p></o:p>
HTTP is supported by all Internet browsers and servers. Firewalls and proxy servers will not block this kind of traffic.<o:p>
</o:p>
1.Soap:Simple Object Access Protocol
2.WSDL:Web Services Description Language
3.UDDI :Universal Description, Discovery, and Integration<o:p>
</o:p>
应用场合: Reusable application components or connect existing software<o:p>
</o:p>
目前比较流行的两个Framework:<o:p></o:p>
1. Axis is a an implementation of the SOAP. JBoss 4.0.3 and lower are based on axis.<o:p></o:p>
2. xfire is a next-generation java SOAP framework. Feature: POJO, high performance, spring integration<o:p>
</o:p>
• SLSB exposed to WS<o:p>
</o:p>
在In J2EE1.4和EJB2.1规范中为SLSB增加了一种接口: service endpoint interface (SEI).<o:p></o:p>
ejb-jar.xml如下:
<session> </session>
xml 代码
- <session >
- <ejb-name>HelloWorld<!---->ejb-name>
- <home> services.ejb.HelloWorldHome<!---->home>
- <remote> services.ejb.HelloWorld<!---->remote>
- <service-endpoint>services.ejb.HelloWorld<!---->service-endpoint>
- <ejb-class> services.ejb.HelloWorldSession<!---->ejb-class>
- <session-type>Stateless<!---->session-type>
- <transaction-type>Container<!---->transaction-type>
- <!---->session>
<transaction-type>
</transaction-type>
<o:p>
</o:p>
一般在J2EE1.4平台上开发时,需要有四个xml文件,分别是:<o:p></o:p>
ejb-jar.xml;
wsdl;
mapping.xml主要用来定义在soap中使用的数据类型定义;
webservice.xml主要定义slsb所使用的mapping文件和wsdl.<o:p>
</o:p>
可以使用JAX-RPC开发包生成所需要的mapping.xml和wsdl文件,该开发包被包括在jwsdp中可在SUN的网站上下载。目前是支持JDK1.5的JAX-WS.<o:p>
</o:p>
基于SLSB的webservice的开发真个麻烦呀,又是remote又是bean的,写build.xml时就花了好长时间。不过还好网上有例子,用xdoclet结合axis1.x的java2wsdl命令以及<o:p></o:p>
jwsdb的wscompile命令基本可以搞定。<o:p>
</o:p>
听说EJB3.0遵循JSR181的annotations,呵呵,那样stateless session bean就可以非常方便的发布为WS了,还不用强制remote <o:p>
</o:p>
build.xml部分:
<target name="wsdeploy" depends="wsee"><exec executable="F:/Sun/jwsdp-1.5/jaxrpc/bin/wscompile.bat"><arg line="-verbose"><arg line="-cp ${buildDir}"><arg line="-gen:server"><arg line="-nd ${buildDir}/META-INF/wsdl"><arg line="-d ${srcDir}"><arg line="-mapping ${buildDir}/META-INF/jaxrpc-mapping.xml"> </arg></arg></arg></arg></arg></arg></exec></target>
xml 代码
-
- <taskdef resource="axis-tasks.properties" classpathref="classpath" />
-
- <target name="ejbdoclet">
- <taskdef classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.classpath"
- name="ejbdoclet" />
- <ejbdoclet ejbSpec="2.1" destDir="${srcDir}">
- <fileset dir="${srcDir}" includes="services/ejb/HelloWorldBean.java" />
- <homeinterface />
- <remoteinterface />
- <service-endpoint />
- <utilobject includeGUID="true" />
- <deploymentdescriptor destdir="${buildDir}/META-INF" validatexml="true"
- MergeDir="fake-to-debug" />
- <jboss version="4.0" unauthenticatedPrincipal="nobody" xmlencoding="UTF-8"
- destdir="${buildDir}/META-INF" validatexml="true" generateRelations="no" preferredrelationmapping="relation-table" />
- <!---->ejbdoclet>
- <!---->target>
-
- <target name="wsee">
- <taskdef classpathref="xdoclet.classpath" classname="xdoclet.modules.wsee.WseeDocletTask"
- name="wseedoclet" />
- <wseedoclet jaxrpcMappingFile="mappings.xml" wsdlFile="HelloWorldService.wsdl"
- destDir="${buildDir}" force="true" verbose="true">
- <fileset dir="${srcDir}" includes="**/HelloWorldBean.java" />
- <deploymentdescriptor>
- <configParam name="Name" value="HelloWorldAxisService" />
- <!---->deploymentdescriptor>
- <!---->wseedoclet>
- <replace file="${buildDir}/webservices.xml" token="WEB-INF/HelloWorldService.wsdl"
- value="META-INF/wsdl/HelloWorldService.wsdl" />
- <replace file="${buildDir}/webservices.xml" token="WEB-INF/mappings.xml"
- value="META-INF/jaxrpc-mapping.xml" />
- <!---->target>
-
-
- <target name="wsdeploy" depends="wsee">
- <exec executable="F:/Sun/jwsdp-1.5/jaxrpc/bin/wscompile.bat">
- <arg line="-verbose" />
- <arg line="-cp ${buildDir}" />
- <arg line="-gen:server" />
- <arg line="-nd ${buildDir}/META-INF/wsdl" />
- <arg line="-d ${srcDir}" />
- <arg line="-mapping ${buildDir}/META-INF/jaxrpc-mapping.xml" />
- <arg line="${srcDir}/resource/wsconfig.xml" />
- <!---->exec>
- <!---->target>
<o:p></o:p>
分享到:
相关推荐
SLSB(Selected Least Significant Bits)是基于空间域的一种新型隐写术算法,由Juan José Roque和Jesús María Minguet提出。它主要通过改变图像像素颜色分量中的最低有效位(LSB)来实现信息的隐藏。与传统的LSB...
"Java"标签明确了该项目是基于Java编程语言实现的,特别是使用了Java EE(Enterprise Edition)的规范和技术。 **文件名称列表分析:** 由于只给出了项目名 "slsb-nointerface-demo-master",我们可以推测这可能是...
基于JCF的代码生成工具 博文链接:https://onecan.iteye.com/blog/83136
基于此,将支持动态数据索引的LSH和B-tree结合,构建新的SLSB-forest索引结构,使散列桶里的数据维持在一个合理的区间。针对SLSB-forest提出了两种查询算法:快速查找和准确率优先查找,并通过理论和实验证明查找...
SLSB带接口的远程演示具有接口但具有仅WAR部署的现代Java EE EJB的演示。 Bean类同时使用@LocalBean和@Remote进行注释,并且都被注入到JSF托管Bean中并直接使用。
这个系统涵盖了多种JavaEE核心技术,包括Servlet、Java Persistence API (JPA)、有状态会话Bean(Stateful Session Beans, SFSB)、无状态会话Bean(Stateless Session Beans, SLSB)、Web服务(Webservice)、Java...
- 开发目标:利用SLSB(无状态会话Bean)和EJB(Enterprise JavaBeans)开发一个分布式计算系统,实现客户端查询软件工程0901-0905班的选课名单功能。 - **实验基本原理与设计**: - 新建Java EE企业应用程序(whutx)...
4. **MVC框架**:"struts-guides"可能涉及到Struts,这是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。Struts帮助开发者组织代码,提高应用程序的可维护性和可扩展性。 5. **分布式系统**:"ums...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器...
在这个阶段,系统架构主要基于Perl、CGI和Mysql,使用Apache服务器。由于硬件和网络条件限制,开发、测试和部署都需要远程进行,这时期的架构简单但效能有限。 2. **石器时代(2001年)**: 阿里巴巴开始转向Java...
2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 ...
2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 ...
在1999年的史前时代,阿里巴巴的网站架构主要基于Perl语言和CGI(Common Gateway Interface)技术,使用MySQL数据库和Apache web服务器。由于服务器位于美国,远程开发和运维都是通过56K Modem进行的,效率较低且不...
然而,"atmosphere-ee6-2.1.5.zip" 和 "testfun.zip" 提供了一种更为轻量级的解决方案,使得开发者可以在不依赖完整应用服务器的情况下,对JPA、SLSB(Stateless Session Beans)和JAX-RS(Java API for RESTful Web...
在传统的EJB 2.x时代,`ejbCreate`方法被用于无状态会话bean(Stateless Session Beans, SLSB)和有状态会话bean(Stateful Session Beans, SFSB)的实例化过程。对于SLSB,`ejbCreate`会在每次客户端请求一个新的...