`
ywChen
  • 浏览: 121572 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

axis2+spring集成

 
阅读更多

axis2+spring集成

1、新建一个web project项目,最终工程目录如下:

注意:本文只注重webservice服务器端的开发,因此com.ljq.client和com.ljq.test忽略不计

         

2、添加所需jar

            

3、接口HelloWorld

package com.ljq.service;

publicinterface HelloWorld {
public String greeting(String name);
public String print();
}

         

4、接口实现类HelloWorldBean

复制代码
package com.ljq.service;

publicclass HelloWorldBean implements HelloWorld {
public String greeting(String name) {
return"你好 "+name;
}

public String print() {
return"我叫林计钦";
}
}
复制代码

          

5、webservice类HelloWorldWebService

复制代码
package com.ljq.service;

import org.apache.axis2.AxisFault;
import org.apache.axis2.ServiceObjectSupplier;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.i18n.Messages;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
* 可能出现Axis2 spring bean not found 或者 Spring applicationContext not found。
*
* 解决办法:构建自己的ServiceObjectSupplier,实现接口ServiceObjectSupplier,同时也实现Spring的ApplicationContextAware接口
*
*
*
@author Administrator
*
*/
publicclass HelloWorldWebService implements ServiceObjectSupplier,
ApplicationContextAware {
privatestatic ApplicationContext ctx;

public Object getServiceObject(AxisService axisService) throws AxisFault {
Parameter springBeanName
= axisService.getParameter("SpringBeanName");
String beanName
= ((String) springBeanName.getValue()).trim();
if (beanName !=null) {
if (ctx ==null)
thrownew AxisFault("applicationContext is NULL! ");
if (ctx.getBean(beanName) ==null)
thrownew AxisFault("Axis2 Can't find Spring Bean: "+ beanName);
return ctx.getBean(beanName);
}
else {
thrownew AxisFault(Messages.getMessage("paramIsNotSpecified",
"SERVICE_SPRING_BEANNAME"));
}

}

publicvoid setApplicationContext(ApplicationContext ctx)
throws BeansException {
this.ctx = ctx;
}

}
复制代码

            

6、配置web.xml文件

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
<!-- 添加spring监听器 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 加载spring的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>


<!-- 注册axis2的servlet -->
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis2.transport.http.AxisServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>


<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
复制代码

       

7、在WEB-INF目录下配置applicationContext.xml(不存在则自己创建)

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"
>
<beans>
<bean id="applicationContext"
class
="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder"/>
<bean id="helloWorld" class="com.ljq.service.HelloWorldBean"></bean>
</beans>
复制代码

         

8、在WEB-INF\services\axis\META-INF\目录下配置services.xml(不存在则自己创建)

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<service name="hwWebService">
<description>axis2与spring集成案例</description>
<!-- 通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier类来获得Spring的ApplicationContext对象 -->
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
</parameter>
<!--
SpringBeanName固定的不能改
helloWorld是spring中注册的实现类得id
-->
<parameter name="SpringBeanName">helloWorld</parameter>
<!--
在这里最值得注意的是<messageReceivers>元素,该元素用于设置处理WebService方法的处理器。
例如,getGreeting方法有一个返回值,因此,需要使用可处理输入输出的RPCMessageReceiver类,
而update方法没有返回值,因此,需要使用只能处理输入的RPCInOnlyMessageReceiver类。
-->
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class
="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class
="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
</service>
复制代码

        

axis2+spring集成到此已经开发完成,接下把工程部署到tomcat,

然后通过http://localhost:8083/axis2spring/services/hwWebService?wsdl访问

 

分享到:
评论

相关推荐

    axis2+spring整合实例

    标题"axis2+spring整合实例"表明了这个压缩包内容是关于如何将Apache Axis2服务框架与Spring框架进行集成的实践案例。Apache Axis2是用于构建Web服务和SOA(Service-Oriented Architecture)的高性能、灵活的开源...

    axis2+spring webservice

    标题中的“axis2+spring webservice”指的是使用Apache Axis2框架与Spring框架集成来开发Web服务。Apache Axis2是Java环境中广泛使用的Web服务引擎,它提供了高性能、灵活且可扩展的架构。Spring框架则是一个全面的...

    axis2+spring+ibatis

    Spring还支持与其他框架的集成,如Axis2,使得Web服务的调用更加方便。 3. iBATIS:iBATIS(现在已经演变为MyBatis)是一个持久层框架,它简化了Java应用与数据库之间的交互。开发者可以通过XML或注解定义SQL查询,...

    axis2和axis2+spring发布服务指南

    3. **Axis2与Spring集成**:说明如何配置Spring应用上下文,将Spring Bean作为Axis2服务,以及如何利用Spring的IoC和AOP特性优化服务行为。 4. **创建服务**:详细步骤指导如何创建一个基于Axis2的服务,包括编写...

    axis2+Spring提供WebService服务

    Axis2和Spring框架的结合提供了一种高效且灵活的方式来创建和管理WebService。让我们深入了解一下这两个技术以及它们如何协同工作。 首先,Apache Axis2是Java平台上一个成熟的Web服务引擎,专门用于处理SOAP消息。...

    axis2+spring+hibernate Webservice

    在“axis2+spring+hibernate Webservice”这个组合中,Spring通常作为胶水层,将Axis2和Hibernate集成在一起。Spring可以帮助管理Web服务的生命周期,同时协调数据库操作。例如,可以使用Spring的AOP功能来实现事务...

    axis2 + spring3.2.0

    在提供的链接(http://blog.csdn.net/linlinv3/article/details/9017767)中,你可以找到更具体的关于如何在实际项目中集成和使用Axis2与Spring3.2.0的详细步骤和示例。对于Java Web开发者来说,理解并掌握这种整合...

    axis2+spring2.5整合(webservice)

    7. **安全集成**:Spring的安全框架如Spring Security可以与Axis2集成,提供认证、授权和加密等功能,增强Web服务的安全性。 整合Axis2和Spring2.5不仅提高了开发效率,还增强了Web服务的灵活性和可维护性。这种...

    在自己的项目中利用axis2+spring发布webservice与客户端调用包括session

    在集成Axis2和Spring的过程中,开发者通常会将Spring的业务逻辑和服务层组件暴露为Web服务,这样可以使得服务具有更好的解耦性和可重用性。具体步骤可能包括以下几个方面: 1. **配置Spring容器**:首先,你需要...

    MYECLIPSE AXIS2 + SPRING 文件上传

    SPRING框架则为AXIS2提供了良好的集成,使得我们可以利用SPRING的依赖注入特性来管理AXIS2的服务实例,以及处理文件上传后的业务逻辑。SPRING的AOP(面向切面编程)功能也可以用来实现文件上传的事务管理和权限控制...

    axis2+spring 实现webservice需要jar包

    在构建基于Axis2和Spring的Web服务时,我们需要一系列的依赖库来支持整个框架的运行。这些库提供了从XML解析到服务部署的各种功能。以下是标题和描述中提及的关键知识点及其详细解释: 1. **Axis2**:Apache Axis2...

    axis2与spring集成

    axis2与spring的集成,在application中配置要发布的Java类,然后配置aar文件,在aar打包文件中的services.xml要嵌入 &lt;parameter name="ServiceObjectSupplier"&gt;org.apache.axis2.extensions.spring.receivers....

    Axis2与Spring整合发布多个WebService

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

    axis2+EJB整合开发 源代码

    这个标题暗示了我们将深入理解如何将EJB的功能集成到基于Axis2的Web服务中,以实现更强大的业务逻辑处理和分布式计算能力。 【描述】"一个webservice整合EJB的小例子"意味着这个压缩包包含了一个实际的、可运行的...

    springboot集成axis2-1.7.9实例

    在本文中,我们将深入探讨如何将Apache Axis2与Spring Boot集成,以构建一个高效、可扩展的Web服务应用。Apache Axis2是Java平台上的一个Web服务框架,它提供了高性能、灵活的服务开发和部署机制。而Spring Boot是...

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

    总结来说,Spring集成Axis2实现Web服务涉及到Spring的IoC容器、服务的创建和发布、以及客户端的调用等多个环节。了解并掌握这些知识点,对于开发高质量的Web服务应用至关重要。在实际项目中,务必确保所有必要的库...

    WebService(Axis+spring+jpa)

    【WebService(Axis+Spring+jpa)】是一种将Web服务与企业级Java技术相结合的应用实例,...这种集成方式的优势在于,Axis提供了Web服务的生成和调用,Spring简化了服务层的管理,而JPA则让数据存储变得更加透明和高效。

    java webservice之axis2与spring集成(二)

    以下是关于"java webservice之axis2与spring集成(二)"的详细知识点讲解: 1. **Spring框架**: Spring是Java领域的一个开源框架,主要用于简化企业级应用的开发。它提供了一个全面的编程和配置模型,特别强调了...

    Spring集成AXIS2的Web_service配置方法

    Spring 集成 AXIS2 的 Web service 配置方法 Spring 是一个流行的 Java 应用程序框架,它提供了一个灵活的方式来构建企业级应用程序。AXIS2 是一个流行的 Web Service 引擎,它提供了一个强大的方式来构建 Web ...

Global site tag (gtag.js) - Google Analytics