`
bluepopopo
  • 浏览: 91690 次
  • 性别: 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 Improving the Steganographic Algorithm LSB

    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中并直接使用。

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

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

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

    atmosphere-ee6-2.1.5.zip

    testfun.zip,一个轻量级的junit运行程序,允许测试jee代码,比如jpa、slsb和jax-rs,而不需要

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

    Spring 2.0 开发参考手册

    18.2.2. 访问本地的无状态Session Bean(SLSB) 18.2.3. 访问远程SLSB 18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS 19.2.1. JmsTemplate 19.2.2. 连接工厂 19.2.3. ...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson ...18.2.2. 访问本地的无状态Session Bean(SLSB) 18.2.3. 访问远程SLSB 18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS ...

    CPetstore-开源

    CPestore 是另一个使用开源 COTS 的更短、更干净的 Petstore。 它的特点是: 生成带有查找器的实体 bean JAAS;... 由 Xdoclet 生成 SLSB; Goodie (Weblogic + Oracle) 和 Freebie (Jboss + MySQL) 构建无代码更改。

Global site tag (gtag.js) - Google Analytics