liferay4.4.2中调用webservice接口(一)

   因为下个项目要用到在liferay中调用远程的.net webservce,为了评估这个工作的开发的难度和可行性,这几天一直在搞这个,现在有了点成果拿出来和大家一起分享一下。
   liferay调用webservice,有两种方法一种是用liferay提供的方法,一种是用普通JAVA调用方法,先说第二种。
   我们没有必要自已亲自去写这些方法,我们可以用axis或xfire服务引擎,而且都有现成的插件可以用,axis可以去apache官网去下载(Axis2_Codegen_Wizard_1.3.0),这个插件是要用LINK方式来安装的,建目录{home}/axis2/eclipse/plugins,然后把这个插件丢进去,目录放那里都可以,但是elispse/plugins是必须的,然后在{eclipse home}/links下面建一个文件,随便命名,里面写上path={home}/axis2,然后删除{eclipse home}/configuration下面文件(config.ini除外)重启,然后在liferay-ext-src里面建上一个包专门放生成的代码,通过wsdl文件(客户方提供网址下载)自动生成代码,编译,可能会报找不到一些相关的包,去插件安装的目录lib下找到相关的包,丢到ext/lib/global下面刷新elipse然后再编译就OK了,然后打成jar包放到ext/lib/development下面,这是因为在开发过程中别的包会依赖于这个,发布的时候要把这些包都丢到WEB-INF/lib下面。xfire也有插件,在xfire官网很容易就可以找到eclipse-plugin,按照他的方式(update)安装,不过我怎么也显示不出来,明明在plugin manage里面可以看得到这个插件可是就是显示不出来,什么招都使了就是不能显示,不知道什么原因,后来我是用myeclipse里面的webservice clent来做的,他就是用的xfire引擎。这个和axis操作方式基本上一样的。因为是做可行性分析,所以对这axis和xfire都做了测试,结果是每次访问webservice,xfire基本上要比axis速度快上200ms,同一个远程的webservice。
   第二种方法还在研究当中,先说一下自已的基本思想,通过liferay现有的ESB,mule或者servicemix来调用webservice,liferay调用mule基本就是通过HTTP这个类来调用的,这个我在前面的JBPM上面讲到过,基本上就想和他调用JBPM一样来操作,只不过一个发往的地址不同而已,今天简单的用mule测了一下,结果失败,具体的实施过程中肯定还会遇到很多的问题,下周继续,等有了成果会在我blog上面贴出来,如果有朋友对liferay调用webservice有更好的办法,希望能告知一下,本人感激不尽。还有就是,每个portlet下面都有一个http包,下面的类应该就是webservice用来,具体怎么用的一点也不知道,希望有朋友能告诉我一下。
   本人MSN:[email protected]

你可能感兴趣的:(eclipse,webservice,MyEclipse,jbpm,ext)