`
bluepopopo
  • 浏览: 92358 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

基于SLSB的webservice

    博客分类:
  • J2EE
阅读更多

<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.4EJB2.1规范中为SLSB增加了一种接口: service endpoint interface (SEI).<o:p></o:p>

ejb-jar.xml如下:
<session> </session>

xml 代码
  1. <session >
  2. <ejb-name>HelloWorld<!---->ejb-name>
  3. <home> services.ejb.HelloWorldHome<!---->home>
  4. <remote> services.ejb.HelloWorld<!---->remote>
  5. <service-endpoint>services.ejb.HelloWorld<!---->service-endpoint>
  6. <ejb-class> services.ejb.HelloWorldSession<!---->ejb-class>
  7. <session-type>Stateless<!---->session-type>
  8. <transaction-type>Container<!---->transaction-type>
  9. <!---->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.xmlwsdl文件,该开发包被包括在jwsdp中可在SUN的网站上下载。目前是支持JDK1.5JAX-WS.<o:p>
</o:p>

基于SLSBwebservice的开发真个麻烦呀,又是remote又是bean,build.xml时就花了好长时间。不过还好网上有例子,用xdoclet结合axis1.xjava2wsdl命令以及<o:p></o:p>

jwsdbwscompile命令基本可以搞定。<o:p>
</o:p>

听说EJB3.0遵循JSR181annotations,呵呵,那样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 代码
  1. <!---->
  2. <taskdef resource="axis-tasks.properties" classpathref="classpath" />
  3. <!---->
  4. <target name="ejbdoclet">
  5. <taskdef classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.classpath"
  6. name="ejbdoclet" />
  7. <ejbdoclet ejbSpec="2.1" destDir="${srcDir}">
  8. <fileset dir="${srcDir}" includes="services/ejb/HelloWorldBean.java" />
  9. <homeinterface />
  10. <remoteinterface />
  11. <service-endpoint />
  12. <utilobject includeGUID="true" />
  13. <deploymentdescriptor destdir="${buildDir}/META-INF" validatexml="true"
  14. MergeDir="fake-to-debug" />
  15. <jboss version="4.0" unauthenticatedPrincipal="nobody" xmlencoding="UTF-8"
  16. destdir="${buildDir}/META-INF" validatexml="true" generateRelations="no" preferredrelationmapping="relation-table" />
  17. <!---->ejbdoclet>
  18. <!---->target>
  19. <!---->
  20. <target name="wsee">

  21. <taskdef classpathref="xdoclet.classpath" classname="xdoclet.modules.wsee.WseeDocletTask"
  22. name="wseedoclet" />
  23. <wseedoclet jaxrpcMappingFile="mappings.xml" wsdlFile="HelloWorldService.wsdl"
  24. destDir="${buildDir}" force="true" verbose="true">
  25. <fileset dir="${srcDir}" includes="**/HelloWorldBean.java" />
  26. <deploymentdescriptor>
  27. <configParam name="Name" value="HelloWorldAxisService" />
  28. <!---->deploymentdescriptor>
  29. <!---->wseedoclet>
  30. <replace file="${buildDir}/webservices.xml" token="WEB-INF/HelloWorldService.wsdl"
  31. value="META-INF/wsdl/HelloWorldService.wsdl" />
  32. <replace file="${buildDir}/webservices.xml" token="WEB-INF/mappings.xml"
  33. value="META-INF/jaxrpc-mapping.xml" />
  34. <!---->target>
  35. <!---->
  36. <target name="wsdeploy" depends="wsee">
  37. <exec executable="F:/Sun/jwsdp-1.5/jaxrpc/bin/wscompile.bat">
  38. <arg line="-verbose" />
  39. <arg line="-cp ${buildDir}" />
  40. <arg line="-gen:server" />
  41. <arg line="-nd ${buildDir}/META-INF/wsdl" />
  42. <arg line="-d ${srcDir}" />
  43. <arg line="-mapping ${buildDir}/META-INF/jaxrpc-mapping.xml" />
  44. <arg line="${srcDir}/resource/wsconfig.xml" />
  45. <!---->exec>
  46. <!---->target>

<o:p></o:p>

分享到:
评论

相关推荐

    SLSB Improving the Steganographic Algorithm LSB

    SLSB(Selected Least Significant Bits)是基于空间域的一种新型隐写术算法,由Juan José Roque和Jesús María Minguet提出。它主要通过改变图像像素颜色分量中的最低有效位(LSB)来实现信息的隐藏。与传统的LSB...

    slsb-nointerface-demo:使用SLSB无界面视图的网页演示

    "Java"标签明确了该项目是基于Java编程语言实现的,特别是使用了Java EE(Enterprise Edition)的规范和技术。 **文件名称列表分析:** 由于只给出了项目名 "slsb-nointerface-demo-master",我们可以推测这可能是...

    Artemis1.0-快速的SLSB+spring+hibernate代码生成工具

    基于JCF的代码生成工具 博文链接:https://onecan.iteye.com/blog/83136

    SLSB-forest:高维数据的近似k近邻查询

    基于此,将支持动态数据索引的LSH和B-tree结合,构建新的SLSB-forest索引结构,使散列桶里的数据维持在一个合理的区间。针对SLSB-forest提出了两种查询算法:快速查找和准确率优先查找,并通过理论和实验证明查找...

    slsb-remote-demo:具有独立客户端的远程接口访问的无状态会话Bean演示

    SLSB带接口的远程演示具有接口但具有仅WAR部署的现代Java EE EJB的演示。 Bean类同时使用@LocalBean和@Remote进行注释,并且都被注入到JSF托管Bean中并直接使用。

    吉林大学JavaEE景区管理系统大作业

    这个系统涵盖了多种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)...

    important-java

    4. **MVC框架**:"struts-guides"可能涉及到Struts,这是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。Struts帮助开发者组织代码,提高应用程序的可维护性和可扩展性。 5. **分布式系统**:"ums...

    Spring-Reference_zh_CN(Spring中文参考手册)

    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. 在应用服务器...

    阿里大数据架构.pptx

    在这个阶段,系统架构主要基于Perl、CGI和Mysql,使用Apache服务器。由于硬件和网络条件限制,开发、测试和部署都需要远程进行,这时期的架构简单但效能有限。 2. **石器时代(2001年)**: 阿里巴巴开始转向Java...

    Spring中文帮助文档

    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 支持 ...

    Spring API

    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 支持 ...

    IT系统架构概述.pdf

    在1999年的史前时代,阿里巴巴的网站架构主要基于Perl语言和CGI(Common Gateway Interface)技术,使用MySQL数据库和Apache web服务器。由于服务器位于美国,远程开发和运维都是通过56K Modem进行的,效率较低且不...

    atmosphere-ee6-2.1.5.zip

    然而,"atmosphere-ee6-2.1.5.zip" 和 "testfun.zip" 提供了一种更为轻量级的解决方案,使得开发者可以在不依赖完整应用服务器的情况下,对JPA、SLSB(Stateless Session Beans)和JAX-RS(Java API for RESTful Web...

    ejbCreate函数用于初始化一个EJB实例

    在传统的EJB 2.x时代,`ejbCreate`方法被用于无状态会话bean(Stateless Session Beans, SLSB)和有状态会话bean(Stateful Session Beans, SFSB)的实例化过程。对于SLSB,`ejbCreate`会在每次客户端请求一个新的...

Global site tag (gtag.js) - Google Analytics