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

集成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服务的源代码...

    axis2-spring-1.5.4.jar

    《 Axis2 与 Spring 整合详解:axis2-spring-1.5.4.jar 入门指南》 ...开发者可以专注于业务逻辑,而将基础设施的复杂性交给Spring和Axis2来处理。总的来说,这个jar包是实现高效、灵活的Web服务架构的关键组件。

    axis2-1.8.0apache-cxf-3.4.4.rar

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

    axis2-1.6.1

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

    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_3.zip_axis_axis-src-1_3_axis1 1.3 src_axis源码

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

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

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

    axis-src-1_4.tar.gz

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

    axis-1_4.jar

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

    maven-spring-mybatis-webservice整合

    在IT行业中,构建一个完整的Web应用常常涉及到多个...Spring和MyBatis的结合提供了强大的业务处理和数据访问能力,而Web服务则使系统具有更广泛的交互能力。理解并掌握这些知识点对于开发复杂的分布式系统至关重要。

    spring-ws-reference-1.5.9

    **Spring Web Services** 是一个用于构建 Web 服务的应用框架,它与 **CXF** 和 **AXIS** 等其他流行的 Web 服务框架相比具有简单易用、易于配置的特点,使得 Web 服务的开发更加高效快捷。 ##### 1.1 介绍 Spring...

    axis2-1.2包,放心下载

    Axis2可以轻松地与各种Java EE组件(如EJB、JMS)集成,并支持Spring框架,便于服务组件化。同时,它还提供了丰富的API和插件机制,方便开发者扩展其功能。 9. **安全性** Axis2支持WS-Security标准,可以实现...

    Spring整合axis2经典

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

    Spring集成AXIS2的Web_service配置方法

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

    springmvc和mybatis集成全部jar包(全)

    springmvc4.3.3和mybatis3.4.1集成最新全部jar包,还包含了其他一些常用的jar包,很全,已经在项目中验证过。 lib/antlr-2.7.2.jar lib/aopalliance-1.0.jar lib/asm-3.3.1.jar lib/aspectjweaver-1.6.5.jar ...

    axis2-1.6.1-bin

    10. **集成其他技术**:Axis2可以与Spring框架、EJB(Enterprise JavaBean)等无缝集成,提供更强大的企业级功能。 在"axis2-1.6.1-bin"压缩包中,通常会包含以下内容: - `bin`目录:包含可执行脚本,如启动和停止...

    Axis2与Spring整合发布多个WebService

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

    spring-boot-starter-samples:spring-boot-starter-samples

    9. **Axis**:Axis是Apache的一个SOAP Web服务框架,Spring Boot starter-axis支持在Spring Boot应用中使用Axis。 10. **Swagger2**:Swagger2是一个流行的API文档生成和测试工具,Spring Boot starter-swagger2...

Global site tag (gtag.js) - Google Analytics