论坛首页 Java版 Spring

另一种集成axis和spring的方案

浏览 5618 次
该帖已经被评为精华帖
作者 正文
最后更新时间:2005-03-26
Spring 提供了一种使用ServletEndpointSupport同axis的集成方案。[code:1]public class AccountServiceEndpoint extends ServletEndpointSupport implements RemoteAccountService {
   
    private AccountService biz;

    protected void onInit() {
        this.biz = (AccountService) getWebApplicationContext().getBean("accountService");
    }

//... 
}[/code:1] 可以看出这种方案并不是很优雅


在这里提供另一种集成方案。在Spring端不需要作任何更改,而是从axis入手,模拟EJBProvider的做法,设计一个新的SpringProvider,尝试从Spring中直接获取bean。在Spring中配置的任何bean,都可以很方便的作为webservice的服务发布。
deploy.wssd内容是这样的
[code:1]<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>[/code:1]
其中provider名称为 java:spring
[code:1]<parameter name="beanName" value="cacl"/>[/code:1]
是spring中所配置的bean名字。

代码和例子见附件

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

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

跳转论坛:
JavaEye推荐