- 浏览: 180233 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (186)
- Ant (11)
- Axis2 (15)
- Car (9)
- Eclipse (1)
- Java (19)
- Java-EM (4)
- Javascript (11)
- Jsp (1)
- Hibernate (9)
- Mysql (1)
- Ms-Dos (5)
- Music (0)
- Oracle (3)
- Postgresql (0)
- Photoshop (1)
- Spring (17)
- Struts (8)
- Selenium (5)
- Ubuntu (13)
- News (17)
- Others (7)
- SSH (11)
- 算法 (5)
- FreeMarker (4)
- Tomcat (2)
- Linux (5)
最新评论
spring与axis的整合
eclipse resin axis1.4 springspring在整合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 Web Service 学习之Hello World篇2
2008-11-03 15:32 10836, 修改配置文件spring-ws- ... -
webservice之axis2方式开发总结
2008-11-04 09:33 723webservice之axis2方式开发总结 关键字: we ... -
基于Axis2开发WebService代码详解
2008-11-04 09:34 921基于Axis2开发WebService代码详解 关键字: we ... -
基于Tomcat5.0和Axis2开发Web Service应用实例
2008-11-04 09:38 770基于Tomcat5.0和Axis2开发Web Service应 ... -
使用Axis2来构建Web Service客户端
2008-11-04 09:46 767使用Axis2来构建Web Service客户端 2 ... -
webservice-之使用axis+spring开发
2008-11-04 17:42 635... -
webservice-之使用axis+spring开发2
2008-11-04 17:42 800三、配置文件 (全部放在 ... -
Axis 开发WebService
2008-11-04 18:16 747Axis 开发WebService Axis 开发WebSe ... -
在Eclipse中创建基于Axis2的web services
2008-11-05 09:04 1034本实验的目的是让你尽可能快的创建使用 Axis2 的服务和客户 ... -
Axis2快速上手指南
2008-11-05 09:06 727本指南的目的是让你尽可能快的创建使用Axis2的服务和客户端, ... -
Axis2快速上手指南2
2008-11-05 09:07 694创建服务 在这个部分,我们将看看根据StockQuoteSe ... -
Axis2快速上手指南4
2008-11-05 09:08 856使用ADB生成一个客户端 执行以下步骤来使用Axis Dat ... -
Axis2 Integration With The Spring Framework
2008-11-05 09:16 881Axis2 Integration With The Spri ... -
定义web service接口的十点注意事项
2008-11-05 14:03 1249一、接口是自说明的。 也就是说,接口的名字、参数和返回值在一看 ...
相关推荐
7. **Spring与Axis2的其他整合方式**:除了基本的Bean注入,还可以利用Spring AOP进行异常处理,或使用Spring的Transaction Management进行事务控制。此外,Spring MVC可以与Axis2结合,提供RESTful Web服务。 8. *...
本篇将详细探讨如何将Spring 3.2.5版本与Axis2 1.6.2版本进行整合,以便在Spring环境中便捷地部署和管理Web服务。 首先,我们需要理解Spring和Axis2的基本概念。Spring框架以其依赖注入(Dependency Injection,DI...
本文将深入探讨如何将Spring与Axis2整合,创建和消费Web服务。 1. **Spring与Web服务** Spring框架通过Spring-WS和Spring-Integration-WS模块提供了对Web服务的支持。Spring-WS专注于基于XML的消息交换,提供了一...
通过整合Spring和Axis2,我们可以利用Spring的依赖注入(DI)和管理功能,同时享受Axis2的高性能和易用性。 集成Spring和Axis2的过程大致分为以下几个步骤: 1. **配置Axis2**:在Spring项目中,首先需要将Axis2的...
**Axis2与Spring整合** 整合Axis2和Spring的主要目的是利用Spring的依赖注入(DI)和面向切面编程(AOP)特性,使得Web服务的创建和管理更加方便。以下是整合步骤: 1. **添加依赖**:在Maven项目中,需要在pom....
Spring 集成 AXIS2 的 Web service 配置方法 Spring 是一个流行的 Java 应用程序框架,它提供了一个灵活的方式来构建企业级应用程序。AXIS2 是一个流行的 Web Service 引擎,它提供了一个强大的方式来构建 Web ...
spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码
将Axis2与Spring整合的主要目的是利用Spring的DI和AOP特性来管理和控制Web服务的生命周期。这可以通过在Axis2中使用SpringBeanServiceHost和SpringBeanAxisServlet实现。SpringBeanServiceHost允许将Spring的bean...
”这意味着项目的核心功能是展示如何将Apache Axis2与Spring 3框架整合,以便利用Spring的依赖注入和管理能力来构建和控制Web服务。此外,资料是一个MyEclipse的Web工程,意味着它是用MyEclipse IDE创建的,开发者...
根据提供的文件信息,本文将详细解析Tuscany与Spring、Axis整合的相关知识点,以及如何解决在整合过程中可能遇到的jar包冲突问题。 ### Tuscany简介 Tuscany项目是Apache软件基金会的一个顶级项目,专注于提供一个...
描述中提到的“简单例子:axis2整合spring发布webservice”,意味着我们将学习如何将这两个框架结合,以便通过Spring来管理和控制Web服务的生命周期,同时利用Axis2的Web服务处理能力。此外,“以及session的管理”...
【描述】"cxf-2.4.1+axis-1.4,整合spring3.0所用jar包"说明了这个压缩包的目的,即为开发者提供了一套完整的环境,用于在Spring 3.0框架下整合Apache CXF(一个开源的服务端和客户端Web服务实现)和Axis(一个用于...
3. **Axis2与Spring的集成模块**:使用Spring-WS模块或者Spring-AXIS2模块,这些模块提供了集成工具,帮助将Spring的bean暴露为Web服务。 4. **部署服务**:在Axis2的配置文件(如services.xml)中引用Spring上下文...
将Axis2与Spring整合可以让我们在Spring的环境中便捷地创建、管理和部署Web服务,同时利用Spring的众多优点。本文将深入探讨如何将这两者融合,并介绍相关的技术细节。 首先,理解Axis2 Web服务的核心概念。Axis2是...
在本文中,我们将深入探讨如何将Apache Axis2与Spring Boot集成,以构建一个高效、可扩展的Web服务应用。Apache Axis2是Java平台上的一个Web服务框架,它提供了高性能、灵活的服务开发和部署机制。而Spring Boot是...
在此,我们将深入探讨Axis2和XFire这两个框架的特点以及它们与Spring的整合。 1. **Axis2框架**: - Axis2是Apache软件基金会开发的下一代SOAP引擎,它是Axis1.x的升级版,但采用了全新的架构,旨在提高模块化、...
标题"axis2+spring整合实例"表明了这个压缩包内容是关于如何将Apache Axis2服务框架与Spring框架进行集成的实践案例。Apache Axis2是用于构建Web服务和SOA(Service-Oriented Architecture)的高性能、灵活的开源...
标题“Axis整合Spring”指的是将Apache Axis,一个用于构建Web服务的开源框架,与Spring框架进行集成,以实现更高效、灵活的服务开发和管理。在Java世界中,这两个框架的结合能够提供强大的企业级应用解决方案。 ...
将Axis2与Spring2.5整合的主要好处在于,可以利用Spring的IoC(Inversion of Control,控制反转)和AOP特性来管理和控制Web服务。这使得Web服务的配置和管理更加简便,同时也便于测试和维护。以下是一些整合的关键...