`

spring与axis的整合

阅读更多

spring与axis的整合

eclipse resin axis1.4 spring

spring在整合axis上还是很不错的。

1. 环境配置

1、 基本设置,略
2、 在eclipse中配置引入相应的Spring框架、axis包,略。
因为axis还有一些可选包,所以可以把一些可选包都引进来,虽然网上下载的axis1.4只有核心包,但通过happyaxis.jsp,可以把相关可选包都找到。

2. 场景描述

在本例中,我们要完成的是通过Web Service调用到Spring工程中的getMessage的方法,传入人名,然后返回相应的Say Hello to somebody的字符串,并将调用后的字符串打印到前台Application界面中。

3. 代码开发

在MyEclipse中建立一个新的J2EE的Web Project。
编写IHelloWorld接口文件,代码如下:
package com.test.www;
/**
* Spring工程中要使用的接口文件
*/
public interface IHelloWorld {
public String getMessage(String name);
}

编写HelloWorldImpl实现文件,代码如下:
package com.test.www.impl;
import com.test.www.IHelloWorld;
/**
* Spring工程中要使用的接口文件
*/
public class HelloWorldImpl implements IHelloWorld{
private String helloStr; //Spring中需要注入的字符串
/**
* 实现接口中的方法,得到Say Hello to <somebody>的字符串
*/
public String getMessage(String name){
return helloStr+":"+name;
}
public String getHelloStr() {
return helloStr;
}
public void setHelloStr(String helloStr) {
this.helloStr = helloStr;
}
}

编写Web-INF下的Web工程文件Web.xml,具体配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!—Spring框架需要引入的配置文件及相关类 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!—axis需要引入的Servlet -->
<servlet>
<servlet-name>axis</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<!—axis的Web Service的Web发布路径 -->
</web-app>

简要说明:这个配置文件里,可能还会有许多,不要怕,只需要把关于axis的copy到你自己的web.xml就可以了,不会冲突的,当然也可以稍加修改的,比如:/services/*.jws,这样看起来标准一些,其实这都是可以调试修改的。

编写Web-INF下的Spring工程文件xxx-services.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="helloWorld"
class="com.test.www.impl.HelloWorldImpl">
<property name="helloStr">
<value>Say Hello to :</value>
</property>
</bean>
</beans>

原文在这里有一些小错,不过是可以看出来的,我把正确的贴上来了,上面这段要放到services的配置下,记得要把包名和类名写对。

以 上就完成了整个Spring的代码部分的编写,好像到了这个地方还一直没有介绍Web Service的部分(除了如何配置axis)。其实在 Spring中对Web Service进行封装很简单,仅仅需要继承 org.springframework.remoting.jaxrpc.ServletEndpointSupport类,实现里面的一些方法,包装 一次,将其发布出来就可以勒。
编写包装成Web Service的JaxRpcHelloWorld类,代码如下:
package com.test.www.webservice;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
import com.test.www.IHelloWorld;
public class JaxRpcHelloWorld extends ServletEndpointSupport implements IHelloWorld{
private IHelloWorld helloWorld;

protected void onInit() throws ServiceException {
//在Spring容器中获取Bean的实例
helloWorld = (IHelloWorld) getApplicationContext().getBean(
"helloWorld");
}

public String getMessage(String name) throws RemoteException {
//执行Bean中的相同的方法
return helloWorld.getMessage(name);
}
}

最后编写server-config.wsdd文件,发布Web Service,具体代码如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<service name="HelloWorld" provider="java:RPC">
<parameter name="className"
value="/blog/com.test.www.webservice.JaxRpcHelloWorld"/>
<parameter name="allowedMethods" value="*"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
</requestFlow>
</transport>
</deployment>

所 有的工作全部完成,接下来只需要启动resin来验证你的Web Service是否已经发布成功,启动resin后,在你的浏览器中输入:http: //localhost:8080/<YourProject>/services/HelloWorld?wsdl,如果能发现 HelloWorld(wdsl)等信息,恭喜你,你的所有的工作都已经完成。

4. 测试调用

编写一个叫TestWebServiceClient类,代码如下:
import java.net.URL;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.client.ServiceFactory;
public class testWebServiceClient {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String wsdlUrl = "http://localhost:8080/services/HelloWorld?wsdl";
String nameSpaceUri = "http://localhost:8080/services/HelloWorld";
// 创建调用对象
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
// 调用sayHello
System.out.println(">>>getMessage");
call.setOperationName(new QName(nameSpaceUri, "getMessage"));
call.setTargetEndpointAddress(new java.net.url(http://www.zhmy.com/wsdlUrl));
String ret = (String) call.invoke(new Object[] { "ABC" });
System.out.println("return value is " + ret);
} catch (Exception e) {
e.printStackTrace();
}
}
}

执行出来的结果,可想而知,会在控制台上输出一排字,内容如下:
Say Hello to:ABC

5:总结分析

因为用的是resin,所以要一定要配相关发布路径,要不然会报i18n的错的。

tomcat下更好弄。

这样就把resin+spring+axis结合起来了,与自己目前相关应用结合,就可以做实际业务处理了。
分享到:
评论

相关推荐

    spring和axis 整合

    7. **Spring与Axis2的其他整合方式**:除了基本的Bean注入,还可以利用Spring AOP进行异常处理,或使用Spring的Transaction Management进行事务控制。此外,Spring MVC可以与Axis2结合,提供RESTful Web服务。 8. *...

    spring axis2整合

    本篇将详细探讨如何将Spring 3.2.5版本与Axis2 1.6.2版本进行整合,以便在Spring环境中便捷地部署和管理Web服务。 首先,我们需要理解Spring和Axis2的基本概念。Spring框架以其依赖注入(Dependency Injection,DI...

    Spring整合axis2经典

    本文将深入探讨如何将Spring与Axis2整合,创建和消费Web服务。 1. **Spring与Web服务** Spring框架通过Spring-WS和Spring-Integration-WS模块提供了对Web服务的支持。Spring-WS专注于基于XML的消息交换,提供了一...

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

    通过整合Spring和Axis2,我们可以利用Spring的依赖注入(DI)和管理功能,同时享受Axis2的高性能和易用性。 集成Spring和Axis2的过程大致分为以下几个步骤: 1. **配置Axis2**:在Spring项目中,首先需要将Axis2的...

    Axis2与Spring整合发布多个WebService

    **Axis2与Spring整合** 整合Axis2和Spring的主要目的是利用Spring的依赖注入(DI)和面向切面编程(AOP)特性,使得Web服务的创建和管理更加方便。以下是整合步骤: 1. **添加依赖**:在Maven项目中,需要在pom....

    Spring集成AXIS2的Web_service配置方法

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

    spring集成axis发布webservice源码

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

    使用Axis2整合Spring(二)

    将Axis2与Spring整合的主要目的是利用Spring的DI和AOP特性来管理和控制Web服务的生命周期。这可以通过在Axis2中使用SpringBeanServiceHost和SpringBeanAxisServlet实现。SpringBeanServiceHost允许将Spring的bean...

    spring-axis2-test.rar_Axis2 Spring3_axis2_axis2 spring3_axis2 s

    ”这意味着项目的核心功能是展示如何将Apache Axis2与Spring 3框架整合,以便利用Spring的依赖注入和管理能力来构建和控制Web服务。此外,资料是一个MyEclipse的Web工程,意味着它是用MyEclipse IDE创建的,开发者...

    是tuscany与spring,axis整合所有的jar包,已解决冲突问题。

    根据提供的文件信息,本文将详细解析Tuscany与Spring、Axis整合的相关知识点,以及如何解决在整合过程中可能遇到的jar包冲突问题。 ### Tuscany简介 Tuscany项目是Apache软件基金会的一个顶级项目,专注于提供一个...

    axis2+spring webservice

    描述中提到的“简单例子:axis2整合spring发布webservice”,意味着我们将学习如何将这两个框架结合,以便通过Spring来管理和控制Web服务的生命周期,同时利用Axis2的Web服务处理能力。此外,“以及session的管理”...

    cxf+spring+axis包

    【描述】"cxf-2.4.1+axis-1.4,整合spring3.0所用jar包"说明了这个压缩包的目的,即为开发者提供了一套完整的环境,用于在Spring 3.0框架下整合Apache CXF(一个开源的服务端和客户端Web服务实现)和Axis(一个用于...

    axis2整合spring

    3. **Axis2与Spring的集成模块**:使用Spring-WS模块或者Spring-AXIS2模块,这些模块提供了集成工具,帮助将Spring的bean暴露为Web服务。 4. **部署服务**:在Axis2的配置文件(如services.xml)中引用Spring上下文...

    Axis2WebService与Spring的整合

    将Axis2与Spring整合可以让我们在Spring的环境中便捷地创建、管理和部署Web服务,同时利用Spring的众多优点。本文将深入探讨如何将这两者融合,并介绍相关的技术细节。 首先,理解Axis2 Web服务的核心概念。Axis2是...

    springboot集成axis2-1.7.9实例

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

    spring+axis2_xfire整合的webservice

    在此,我们将深入探讨Axis2和XFire这两个框架的特点以及它们与Spring的整合。 1. **Axis2框架**: - Axis2是Apache软件基金会开发的下一代SOAP引擎,它是Axis1.x的升级版,但采用了全新的架构,旨在提高模块化、...

    axis2+spring整合实例

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

    axis整合spring

    标题“Axis整合Spring”指的是将Apache Axis,一个用于构建Web服务的开源框架,与Spring框架进行集成,以实现更高效、灵活的服务开发和管理。在Java世界中,这两个框架的结合能够提供强大的企业级应用解决方案。 ...

    axis2+spring2.5整合(webservice)

    将Axis2与Spring2.5整合的主要好处在于,可以利用Spring的IoC(Inversion of Control,控制反转)和AOP特性来管理和控制Web服务。这使得Web服务的配置和管理更加简便,同时也便于测试和维护。以下是一些整合的关键...

Global site tag (gtag.js) - Google Analytics