集成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();
}
}
分享到:
相关推荐
首先,集成Spring Boot和Axis2需要以下几个关键步骤: 1. **添加依赖**:在Spring Boot的`pom.xml`文件中,我们需要引入Axis2和Spring Boot的Web服务支持依赖。具体而言,需要包含Axis2的核心库和Spring Web ...
"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集成的示例项目,它包含了一组用于演示如何在Spring框架中使用Apache Axis2来开发和部署Web服务的源代码...
《 Axis2 与 Spring 整合详解:axis2-spring-1.5.4.jar 入门指南》 ...开发者可以专注于业务逻辑,而将基础设施的复杂性交给Spring和Axis2来处理。总的来说,这个jar包是实现高效、灵活的Web服务架构的关键组件。
3. **丰富的API和插件**:CXF提供了一套丰富的API供开发者使用,并且有众多插件,如Spring集成、JAXB绑定和WS-Security等。 4. **易于调试和测试**:CXF提供了内置的测试工具和调试功能,方便开发者对Web服务进行...
在实际应用中,开发人员可能需要配置Axis2服务器,创建和部署Web服务,处理服务调用,集成其他框架(如Spring),或者调试和优化服务性能。通过阅读`axis2-1.6.1-docs.zip`中的文档,可以深入了解这些过程和最佳实践...
Axis2可以轻松与Spring框架、MyBatis等其他Java技术集成,提供更丰富的企业级应用解决方案。 10. **故障排查与日志记录** Axis2使用log4j进行日志记录,通过调整log4j.properties配置文件,可以获取详细的调试...
3. 配置服务:在 Axis 的配置文件 `axis-server.xml` 中添加服务的元数据,指定服务的类名和 WSDL 地址。 4. 启动服务:通过 AxisServlet 运行在 Web 服务器上,当接收到 HTTP 请求时,Axis 将自动处理并调用服务...
集成Spring和Axis2的过程大致分为以下几个步骤: 1. **配置Axis2**:在Spring项目中,首先需要将Axis2的相关库添加到项目的类路径下。这些库通常包括`axis2-*.jar`, `axiom-*.jar`, `neethi-*.jar`, `wsdl4j-*.jar`...
总的来说,"axis-src-1_4.tar.gz" 提供了一个深入了解和定制Axis 1.4的机会,对于Java Web服务开发者来说,这是一个宝贵的资源。通过学习和研究这个源代码,不仅可以提升技术能力,还可以了解Web服务开发的历史和...
7. **与其他技术的集成**: Axis可以与Spring、EJB等其他Java技术集成,方便构建复杂的分布式应用。 总的来说,"axis-1_4.jar"是开发基于Java的Web服务客户端的重要工具,它简化了Web服务调用的过程,并提供了与...
在IT行业中,构建一个完整的Web应用常常涉及到多个...Spring和MyBatis的结合提供了强大的业务处理和数据访问能力,而Web服务则使系统具有更广泛的交互能力。理解并掌握这些知识点对于开发复杂的分布式系统至关重要。
**Spring Web Services** 是一个用于构建 Web 服务的应用框架,它与 **CXF** 和 **AXIS** 等其他流行的 Web 服务框架相比具有简单易用、易于配置的特点,使得 Web 服务的开发更加高效快捷。 ##### 1.1 介绍 Spring...
Axis2可以轻松地与各种Java EE组件(如EJB、JMS)集成,并支持Spring框架,便于服务组件化。同时,它还提供了丰富的API和插件机制,方便开发者扩展其功能。 9. **安全性** Axis2支持WS-Security标准,可以实现...
整合Spring和Axis2,主要是为了利用Spring的依赖注入和管理能力,以及Axis2的Web服务处理能力。整合过程主要包括以下步骤: - 配置Spring容器:首先在Spring配置文件中定义Web服务的bean,这些bean通常代表了服务...
将 Spring 集成 AXIS2 可以实现基于 Spring 的 Web 服务配置,该配置方法可以提高开发效率和系统可维护性。 一、配置 Spring 项目 首先,需要在 Spring 项目中添加 AXIS2 的依赖项,包括 axis2-spring-1.4.1.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 ...
10. **集成其他技术**:Axis2可以与Spring框架、EJB(Enterprise JavaBean)等无缝集成,提供更强大的企业级功能。 在"axis2-1.6.1-bin"压缩包中,通常会包含以下内容: - `bin`目录:包含可执行脚本,如启动和停止...
在IT行业中,开发Web服务是常见的任务,而Axis2和Spring框架的整合为开发者提供了强大的工具来实现这一目标。本文将深入探讨如何利用这两个技术来发布多个WebService,并着重讲解项目管理和整合过程。 首先,让我们...
9. **Axis**:Axis是Apache的一个SOAP Web服务框架,Spring Boot starter-axis支持在Spring Boot应用中使用Axis。 10. **Swagger2**:Swagger2是一个流行的API文档生成和测试工具,Spring Boot starter-swagger2...