Axis环境之下实现web services调用EJB

来源:互联网 发布:淘宝店铺导航条隐藏 编辑:程序博客网 时间:2024/05/07 06:31

         在Axis环境之下,实现web services调用EJB
1.首先要确保Web Services和EJB都是有效的,可以分别给他们写一个同台机器上的客户端访问一下(本BOLOG上有有关于它们的开发)。
   注意:axis要注册相关axis的jar文件,EJB要注册相应的JNDI的jar到环境变量
2. 必须把EJB的interface类打包,并注册到服务器所在操作系统的环境变量。
3. 启动相关服务就可以实现调用。

注意:1.第二步很重要,否则即使通过了web services访问编译放到了Axis中去了,但是当服务启动之后,仍然找不到PortableRemoteObject.narrow所转型的类,从而服务陷于停顿,但是web services只是执行到这个位置就不再执行了,且不报错;只有客户访问web service端会出现inovicationReflectException的异常。
      2.在服务器端,对于web部署目录下写文件可能会出现由于权限而引起些文件后的映射异常(userException relection),故可以在程序中直接创建相关目录,然后把文件放到相关目录之下,这样就不会引起异常出现。

分析:1.java是一种即时是编译运行的语言(这是区别于.exe文件的特点),因此它的外部调用并不确定,需要编程着自己维护。
      2.Axis作为一个web程序,只是提供一个装载注册的web services,它需要的外部调用类只能注册在环境变量中成为系统共用(对于web程序,还可以javaBean的形式注册到wen.xml中,但是这个在axis中不太可行。
      3。注意java程序的之间访问的jdk的一致性,否则会引起严重错误。
     
当然这个可以由jboss工具生成一个调用,以及实现(网上很多),但是不够透明。