`
anyeeye
  • 浏览: 145523 次
  • 来自: ...
社区版块
存档分类
最新评论

集成Spring和Axis- -

阅读更多
集成Spring Framework和Axis的一个简单方案,使Axis Web服务引擎可以使用Spring的IoC容器和AOP技术。要使用SpringProvider,Axis的server-config.wsdd配置例子如下:
        <service name="SpringTestService" provider="java:SPRING">
              <parameter name="beanName" value="springTest"/>
              <parameter name="allowedMethods" value="*"/>
        </service>

        配置Spring的applicationContext.xml如下:
        <beans>
              <bean id="springTest" class="org.samples.SpringAxisTest"/>
        </beans>

        以下是集成Spring Framework和Axis引擎的类结构图,可以使用同样的方法集成Axis和其他IoC容器(如PicoContainer)。





       以上类图中,紫色的是Spring Framework原有的类;草绿和天蓝色的类是Axis原有的类,其中草绿色的类需要做些修改;只有橙色的是需要开发的类。以下是SpringProvider类的代码片断:

public class SpringProvider extends RPCProvider {
      protected static Log log = LogFactory.getLog(SpringProvider.class.getName());

      public static final String OPTION_BEANNAME = "beanName";

      protected Object makeNewServiceObject(MessageContext msgContext, String clsName) throws Exception {
           String beanName = getStrOption(OPTION_BEANNAME, msgContext.getService());
           return getService(beanName, msgContext);
      }

      protected String getServiceClassNameOptionName() {
           return OPTION_BEANNAME;
      }

      protected Object getService(String beanName, MessageContext context) throws AxisFault {
           ApplicationContext appContext = getAppContext(context);
           if (appContext == null) {
                 log.fatal("Spring ApplicationContext is NULL.");
                 throw new AxisFault("get Spring ApplicationContext error.");
           }

           Object bean = appContext.getBean(beanName);
           if (bean == null) {
                 log.error("bean named:" + beanName + " is NULL");
                 throw new AxisFault("bean named:" + beanName + " is NULL");
           }
           return bean;
       }

       protected String getStrOption(String optionName, Handler service) {
            String value = null;
            if (service != null)
                  value = (String) service.getOption(optionName);
            if (value == null)
                  value = (String) getOption(optionName);
            return value;
       }

       protected Class getServiceClass(String beanName, SOAPService service, MessageContext msgContext) throws AxisFault {
            ConfigurableListableBeanFactory beanFactory = getBeanFactory(msgContext);
            if (beanFactory == null) {
                 log.error("BeanFactory is NULL");
                 throw new AxisFault("BeanFactory is NULL");
            }
            Object bean = beanFactory.getBeanDefinition(beanName);
            return bean.getClass();
        }

        protected XmlWebApplicationContext getAppContext(MessageContext msgContext) {
             HttpServlet servlet = (HttpServlet) msgContext.getProperty(HTTPConstants.MC_HTTP_SERVLET);
             ServletContext servletContext = servlet.getServletContext();
             XmlWebApplicationContext appContext = (XmlWebApplicationContext) servletContext
                     .getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
             return appContext;
        }

        private final ConfigurableListableBeanFactory getBeanFactory(MessageContext msgContext) {
             XmlWebApplicationContext appContext = getAppContext(msgContext);
             return appContext.getBeanFactory();
        }
}

分享到:
评论

相关推荐

    springboot集成axis2-1.7.9实例

    首先,集成Spring Boot和Axis2需要以下几个关键步骤: 1. **添加依赖**:在Spring Boot的`pom.xml`文件中,我们需要引入Axis2和Spring Boot的Web服务支持依赖。具体而言,需要包含Axis2的核心库和Spring Web ...

    axis-1.4.jar

    "Axis-1.4.jar" 是一个用于Java的Web服务框架的重要组件,它主要用于构建和部署SOAP(简单对象访问协议)服务。这个JAR(Java Archive)文件是Apache Axis库的一部分,版本为1.4。Apache Axis是一个开源项目,旨在...

    spring-axis2-test.rar_Axis2 Spring3_axis2_axis2 spring3_axis2 s

    标题中的“spring-axis2-test.rar_Axis2 Spring3_axis2_axis2 spring3_axis2 s”指的是一个关于Spring和Axis2集成的示例项目,它包含了一组用于演示如何在Spring框架中使用Apache Axis2来开发和部署Web服务的源代码...

    Spring集成axis2实现webservice所用到的包

    集成Spring和Axis2的过程大致分为以下几个步骤: 1. **配置Axis2**:在Spring项目中,首先需要将Axis2的相关库添加到项目的类路径下。这些库通常包括`axis2-*.jar`, `axiom-*.jar`, `neethi-*.jar`, `wsdl4j-*.jar`...

    axis2-spring-1.5.4.jar

    本文将详细介绍如何在项目中使用axis2-spring-1.5.4.jar这个jar包,以便在Axis2中集成Spring。 首先,让我们了解为什么需要整合 Axis2 和 Spring。Axis2虽然在处理Web服务方面表现出色,但它的依赖管理和配置相对...

    Spring集成AXIS2的Web_service配置方法

    将 Spring 集成 AXIS2 可以实现基于 Spring 的 Web 服务配置,该配置方法可以提高开发效率和系统可维护性。 一、配置 Spring 项目 首先,需要在 Spring 项目中添加 AXIS2 的依赖项,包括 axis2-spring-1.4.1.jar ...

    axis 和spring 集成

    标题中的“Axis和Spring集成”指的是在Java Web开发中,将Apache Axis,一个用于构建Web服务的开源工具,与Spring框架结合使用的过程。这个主题涵盖了如何利用Spring的强大依赖注入(DI)和管理bean的能力,来增强...

    spring集成axis发布webservice源码

    spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码

    Spring整合axis2经典

    整合Spring和Axis2,主要是为了利用Spring的依赖注入和管理能力,以及Axis2的Web服务处理能力。整合过程主要包括以下步骤: - 配置Spring容器:首先在Spring配置文件中定义Web服务的bean,这些bean通常代表了服务...

    axis-src-1_3.zip_axis_axis-src-1_3_axis1 1.3 src_axis源码

    3. 配置服务:在 Axis 的配置文件 `axis-server.xml` 中添加服务的元数据,指定服务的类名和 WSDL 地址。 4. 启动服务:通过 AxisServlet 运行在 Web 服务器上,当接收到 HTTP 请求时,Axis 将自动处理并调用服务...

    axis2-1.6.1

    在实际应用中,开发人员可能需要配置Axis2服务器,创建和部署Web服务,处理服务调用,集成其他框架(如Spring),或者调试和优化服务性能。通过阅读`axis2-1.6.1-docs.zip`中的文档,可以深入了解这些过程和最佳实践...

    axis-1_4.jar

    7. **与其他技术的集成**: Axis可以与Spring、EJB等其他Java技术集成,方便构建复杂的分布式应用。 总的来说,"axis-1_4.jar"是开发基于Java的Web服务客户端的重要工具,它简化了Web服务调用的过程,并提供了与...

    Axis2与Spring整合发布多个WebService

    在IT行业中,开发Web服务是常见的任务,而Axis2和Spring框架的整合为开发者提供了强大的工具来实现这一目标。本文将深入探讨如何利用这两个技术来发布多个WebService,并着重讲解项目管理和整合过程。 首先,让我们...

    axis2-1.8.0apache-cxf-3.4.4.rar

    3. **丰富的API和插件**:CXF提供了一套丰富的API供开发者使用,并且有众多插件,如Spring集成、JAXB绑定和WS-Security等。 4. **易于调试和测试**:CXF提供了内置的测试工具和调试功能,方便开发者对Web服务进行...

    spring+axis集成webservice

    Spring框架和Apache Axis是实现Web服务集成的两个关键工具。本文将深入探讨如何使用Spring与Axis进行集成,以便开发和消费Web服务。 首先,让我们了解Spring和Axis的基本概念。Spring是一个开源Java框架,它为构建...

    axis2-1.5.3-bin.zip axis2-1.5.3-bin.zip axis2-1.5.3-bin.zip

    Axis2可以轻松与Spring框架、MyBatis等其他Java技术集成,提供更丰富的企业级应用解决方案。 10. **故障排查与日志记录** Axis2使用log4j进行日志记录,通过调整log4j.properties配置文件,可以获取详细的调试...

    axis-src-1_4.tar.gz

    总的来说,"axis-src-1_4.tar.gz" 提供了一个深入了解和定制Axis 1.4的机会,对于Java Web服务开发者来说,这是一个宝贵的资源。通过学习和研究这个源代码,不仅可以提升技术能力,还可以了解Web服务开发的历史和...

    axis2+spring webservice

    在集成Axis2和Spring时,通常会使用Spring的ApplicationContext来加载Axis2配置,并将服务组件作为Spring Bean管理。这样,我们可以在Web服务的生命周期中利用Spring的依赖注入(DI)和面向切面编程(AOP)特性。...

    使用Axis2整合Spring(二)

    此外,集成Spring和Axis2还能利用Spring的安全和事务管理功能,为Web服务提供更好的安全保障和事务一致性。例如,可以使用Spring的AOP来拦截服务方法,实现权限验证或事务控制。 总之,Apache Axis2与Spring的集成...

    springboot+axis1.4

    通过以上步骤,你可以在Spring Boot应用中成功集成Axis1.4并创建和部署SOAP Web服务。这个过程中涉及的知识点涵盖了Spring Boot的启动配置、依赖管理、Web服务的创建与暴露、以及应用的测试与部署等多个方面。

Global site tag (gtag.js) - Google Analytics