论坛首页 Java企业应用论坛

另一种集成axis和spring的方案

浏览 11300 次
该帖已经被评为精华帖
作者 正文
   发表时间:2005-03-26  
Spring 提供了一种使用ServletEndpointSupport同axis的集成方案。
public class AccountServiceEndpoint extends ServletEndpointSupport implements RemoteAccountService {
    
    private AccountService biz;
	
    protected void onInit(); {
        this.biz = (AccountService); getWebApplicationContext();.getBean("accountService");;
    }

 //...  
}
可以看出这种方案并不是很优雅


在这里提供另一种集成方案。在Spring端不需要作任何更改,而是从axis入手,模拟EJBProvider的做法,设计一个新的SpringProvider,尝试从Spring中直接获取bean。在Spring中配置的任何bean,都可以很方便的作为webservice的服务发布。
deploy.wssd内容是这样的
<deployment xmlns="http://xml.apache.org/axis/wsdd/" 
     xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> 
 <!-- define the service, using the log handler we just defined -->
 <service name="cacl" provider="java:spring"> 
  <parameter name="beanName" value="cacl"/>
  <parameter name="allowedMethods" value="*"/>
 </service>
</deployment>

其中provider名称为 java:spring
<parameter name="beanName" value="cacl"/>

是spring中所配置的bean名字。

代码和例子见附件

现在这个方案还有一个问题
在尝试打开http://localhost:8080/myservice/services/这样的地址时会有问题。

另:
作好后又上网找了一下,发现有位朋友很早就想到这样的办法了
http://starrynight.blogdriver.com/starrynight/425172.html
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics