`
zhuyuanxiang
  • 浏览: 130561 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

webservice-之使用axis+spring开发(转自勇哥的BLOG)

阅读更多

一、环境配置 :在 eclipse 中配置引入相应的 Spring 框架( core/Remoting/Web )、 axis 包。 <!----> <o:p> </o:p>

<!----> <v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:stroke joinstyle="miter"> </v:stroke> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"> </v:f> <v:f eqn="sum @0 1 0"> </v:f> <v:f eqn="sum 0 0 @1"> </v:f> <v:f eqn="prod @2 1 2"> </v:f> <v:f eqn="prod @3 21600 pixelWidth"> </v:f> <v:f eqn="prod @3 21600 pixelHeight"> </v:f> <v:f eqn="sum @0 0 1"> </v:f> <v:f eqn="prod @6 1 2"> </v:f> <v:f eqn="prod @7 21600 pixelWidth"> </v:f> <v:f eqn="sum @8 21600 0"> </v:f> <v:f eqn="prod @7 21600 pixelHeight"> </v:f> <v:f eqn="sum @10 21600 0"> </v:f> </v:formulas> <v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"> </v:path> <o:lock aspectratio="t" v:ext="edit"> </o:lock> </v:shapetype> <v:shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 273pt" type="#_x0000_t75"> <v:imagedata o:title="" src="file:///D:\Winbak\Temp\msohtml1\01\clip_image001.png"> </v:imagedata> </v:shape> <o:p> </o:p>

<o:p> </o:p>

二、代码开发 <o:p> </o:p>

1、  MyEclipse 中建立一个新的 J2EE Web Project, 新建 java test <o:p> </o:p>

2、  接口文件 HelloWorldRemote.java<o:p></o:p>

package test;<o:p></o:p>

//Spring 工程中要使用的接口文件 <o:p> </o:p>

public interface HelloWorldRemote <o:p></o:p>

{<o:p></o:p>

       public String getMessage(String name);<o:p></o:p>

}<o:p></o:p>

3、  接口实现文件 HelloWorldBean.java<o:p></o:p>

package test;<o:p></o:p>

//Spring 工程中要使用的接口实现文件 <o:p> </o:p>

public class HelloWorldBean implements HelloWorldRemote <o:p></o:p>

{     <o:p></o:p>

       private String helloStr; // Spring 中需要注入的字符串        <o:p> </o:p>

       public String getHelloStr() <o:p></o:p>

       {<o:p></o:p>

              return helloStr;<o:p></o:p>

       }<o:p></o:p>

       public void setHelloStr(String helloStr) <o:p></o:p>

       {<o:p></o:p>

              this.helloStr = helloStr;<o:p></o:p>

       }<o:p></o:p>

       // 实现接口中的方法 <o:p> </o:p>

       public String getMessage(String name) <o:p></o:p>

       {<o:p></o:p>

              return helloStr + ":" + name;<o:p></o:p>

       }     <o:p></o:p>

}<o:p></o:p>

4、  Spring 中对 Web Service 进行封装很简单,仅仅需要继承 <o:p> </o:p>

org.springframework.remoting.jaxrpc.ServletEndpointSupport 类,实现里面的一些方法,包装一次,将其发布出来就可以。 HelloWorldWebService.java<o:p></o:p>

package test;<o:p></o:p>

import javax.xml.rpc.ServiceException;<o:p></o:p>

import org.springframework.remoting.jaxrpc.ServletEndpointSupport;<o:p></o:p>

public class HelloWorldWebService <o:p></o:p>

              extends ServletEndpointSupport <o:p></o:p>

              implements HelloWorldRemote <o:p></o:p>

{<o:p></o:p>

       private HelloWorldRemote helloWorld;<o:p></o:p>

       protected void onInit() throws ServiceException <o:p></o:p>

       {<o:p></o:p>

              // Spring 容器中获取 Bean 的实例 <o:p> </o:p>

              helloWorld = (HelloWorldRemote) getApplicationContext()<o:p></o:p>

                            .getBean("myHelloWorldBean");<o:p></o:p>

       }<o:p></o:p>

       public String getMessage(String name)  <o:p></o:p>

       {<o:p></o:p>

              // 执行 Bean 中的相同的方法 <o:p> </o:p>

              return helloWorld.getMessage(name);<o:p></o:p>

       }<o:p></o:p>

}<o:p></o:p>

<o:p> </o:p>

三、配置文件 (全部放在 /WEB-INF/ 目录下 <o:p> </o:p>

1、  web.xml web 加载 spring axis 配置 <o:p> </o:p>

<!--Spring 框架需要引入的配置文件及相关类 --><o:p></o:p>

       <context-param><o:p></o:p>

              <param-name>contextConfigLocation</param-name><o:p></o:p>

              <param-value>/WEB-INF/applicationContext.xml</param-value><o:p></o:p>

       </context-param><o:p></o:p>

       <servlet><o:p></o:p>

              <servlet-name>context</servlet-name><o:p></o:p>

              <servlet-class><o:p></o:p>

                     org.springframework.web.context.ContextLoaderServlet<o:p></o:p>

              </servlet-class><o:p></o:p>

              <load-on-startup>1</load-on-startup><o:p></o:p>

       </servlet><o:p></o:p>

       <!--axis 需要引入的 Servlet --><o:p></o:p>

       <servlet><o:p></o:p>

              <servlet-name>axis</servlet-name><o:p></o:p>

              <servlet-class><o:p></o:p>

                     org.apache.axis.transport.http.AxisServlet<o:p></o:p>

              </servlet-class><o:p></o:p>

              <load-on-startup>2</load-on-startup><o:p></o:p>

       </servlet><o:p></o:p>

       <servlet-mapping><o:p></o:p>

              <servlet-name>axis</servlet-name><o:p></o:p>

              <url-pattern>/services/*</url-pattern><o:p></o:p>

       </servlet-mapping><o:p></o:p>

       <!--axis Web Service Web 发布路径 --><o:p></o:p>

2、  applicationContext.xml spring 的配置 <o:p> </o:p>

<?xml version="1.0" encoding="UTF-8"?>   <o:p></o:p>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" <o:p></o:p>

"http://www.springframework.org/dtd/spring-beans.dtd">     <o:p></o:p>

<beans><o:p></o:p>

<bean id="myHelloWorldBean" class="test.HelloWorldBean"><o:p></o:p>

              <property name="helloStr"><o:p></o:p>

                     <value>Say Hello to :</value><o:p></o:p>

              </property><o:p></o:p>

       </bean><o:p></o:p>

</beans><o:p></o:p>

3、  server-config.wsdd axis 服务配置 <o:p> </o:p>

<deployment xmlns="http://xml.apache.org/axis/wsdd/"<o:p></o:p>

       xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"><o:p></o:p>

       <handler name="URLMapper"<o:p></o:p>

              type="java:org.apache.axis.handlers.http.URLMapper" />    <o:p></o:p>

       <!-- 系统服务 --><o:p></o:p>

       <service name="AdminService" provider="java:MSG"><o:p></o:p>

              <parameter name="allowedMethods" value="AdminService" /><o:p></o:p>

              <parameter name="enableRemoteAdmin" value="false" /><o:p></o:p>

              <parameter name="className" value="org.apache.axis.utils.Admin" /><o:p></o:p>

              <namespace>http://xml.apache.org/axis/wsdd/</namespace><o:p></o:p>

       </service><o:p></o:p>

       <service name="Version" provider="java:RPC"><o:p></o:p>

              <parameter name="allowedMethods" value="getVersion" /><o:p></o:p>

              <parameter name="className" value="org.apache.axis.Version" /><o:p></o:p>

       </service>      <o:p></o:p>

       <!-- 自定义服务 --><o:p></o:p>

       <service name="myWebService" provider="java:RPC"><o:p></o:p>

              <parameter name="className"<o:p></o:p>

                     value="test.HelloWorldWebService" /><o:p></o:p>

              <parameter name="allowedMethods" value="*" /><o:p></o:p>

       </service><o:p></o:p>

       <transport name="http"><o:p></o:p>

              <requestFlow><o:p></o:p>

                     <handler type="URLMapper" /><o:p></o:p>

              </requestFlow><o:p></o:p>

       </transport><o:p></o:p>

</deployment><o:p></o:p>

<o:p> </o:p>

四、测试 客户端 TestWebServiceClient.java<o:p></o:p>

package test;<o:p></o:p>

import javax.xml.namespace.QName;<o:p></o:p>

import org.apache.axis.client.Call;<o:p></o:p>

import org.apache.axis.client.Service;<o:p></o:p>

public class TestWebServiceClient <o:p></o:p>

{     <o:p></o:p>

       public static void main(String[] args)<o:p></o:p>

       {     <o:p></o:p>

              try <o:p></o:p>

              {<o:p></o:p>

                     String wsdlUrl <o:p></o:p>

= "http://localhost:8080/spring-axis/services/myWebService?wsdl";<o:p></o:p>

                     String nameSpaceUri <o:p></o:p>

= "http://localhost:8080/spring-axis/services/myWebService";<o:p></o:p>

                     // 创建调用对象 <o:p> </o:p>

                     Service service = new Service();<o:p></o:p>

                     Call call = null;<o:p></o:p>

                     call = (Call) service.createCall();<o:p></o:p>

                     // 调用 getMessage<o:p></o:p>

                     System.out.println(">>>getMessage");<o:p></o:p>

                     call.setOperationName(new QName(nameSpaceUri, "getMessage"));<o:p></o:p>

                     call.setTargetEndpointAddress(new java.net.URL(wsdlUrl));<o:p></o:p>

                     String ret = (String) call.invoke(new Object[] { "ABC" });<o:p></o:p>

                     System.out.println("return value is " + ret);<o:p></o:p>

              } <o:p></o:p>

              catch (Exception e) <o:p></o:p>

              {<o:p></o:p>

                     e.printStackTrace();<o:p></o:p>

              }<o:p></o:p>

       }<o:p></o:p>

}<o:p></o:p>

<o:p> </o:p>

分享到:
评论

相关推荐

    axis2+spring webservice

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

    WebService(Axis+spring+jpa)

    【WebService(Axis+Spring+jpa)】是一种将Web服务与企业级Java技术相结合的应用实例,旨在提供基于HTTP的远程调用功能。在这个项目中,Apache Axis作为SOAP(简单对象访问协议)服务的生成器和客户端工具,Spring...

    axis2+Spring提供WebService服务

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

    SpringBoot开发WebService之Axis示例

    在本文中,我们将深入探讨如何使用SpringBoot框架开发基于Axis的Web服务。SpringBoot以其便捷的启动和配置方式,已经成为Java开发中的首选框架之一。而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供...

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

    标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...

    WebService-xfire和axis开发指南

    而"Axis1[1].4+开发指南_V1.0.pdf"则可能详细介绍了Axis1.4版本的使用,包括设置开发环境,创建和发布服务,调用远程服务,以及处理异常和安全问题。 在深入学习这两个框架时,开发者应理解它们的原理,熟悉配置和...

    WebService------AXIS

    WebService——AXIS是一个重要的主题,尤其对于那些在IT行业中涉及Web服务开发的人员。Web服务是一种基于开放标准的,能够使应用程序之间进行交互的方式。它允许不同系统间的数据交换,促进了分布式系统的集成。AXIS...

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

    4. **部署和发布服务**:如果我们要在Spring中发布一个Web服务,可以使用Axis2的`SpringServiceDeployer`。这需要将服务类和相关的配置文件打包成一个Axis2模块(.aar文件),然后部署到Axis2服务器上。 5. **测试...

    axis2+spring+hibernate Webservice

    标题 "axis2+spring+hibernate Webservice" 指出的是一个基于Java的开源项目,它结合了三个关键的技术框架:Axis2、Spring和Hibernate。这些技术都是企业级应用开发中的重要组件,用于构建高效、灵活且可扩展的服务...

    axis2+spring2.5整合(webservice)

    当我们谈论“Axis2+Spring2.5整合(Web服务)”时,我们指的是将Apache Axis2和Spring框架结合在一起,以便更高效地开发和管理Web服务。 Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了SOAP消息...

    axis2+spring 实现webservice需要jar包

    2. **Spring框架**:Spring是一个广泛使用的Java企业级应用开发框架,它提供了一个全面的编程和配置模型,用于简化企业级应用的开发。在Web服务场景中,Spring可以帮助管理服务的生命周期,提供依赖注入,以及与其他...

    mybatis+spring MVC+webservice axis例子程序实现

    首先,该工程实现了spring MVC、mybatis、axis webservice功能 其次,这个工程很简单,只做了最简单的功能实现 再次,数据库要自己准备 最后,该工程里的src目录下,有一个readme.txt,请下载者仔细阅读,里面有...

    axis2-WebService-开发指南.docx

    Axis2 WebService 开发指南 Axis2 是一个基于 Java 的开源 WebService 框架,具有高效、灵活、可扩展等特点。以下是对 Axis2 WebService 开发指南的知识点总结: 1. 环境准备: Axis2 的开发需要下载相关的 jar ...

    Axis2与Spring整合发布多个WebService

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

    axis+webservice spring

    通过axis2与spring进行集成,发布webservice服务,

    Spring + axis2 开发 webservice

    当我们谈论“Spring + Axis2 开发 WebService”时,这通常指的是使用Spring框架与Apache Axis2工具来创建、部署和消费基于SOAP(Simple Object Access Protocol)的Web服务。以下是关于这个主题的详细知识点: 1. *...

    axis1.4+mybatis3+spring实现webservice

    在IT行业中,构建高效、可扩展的企业级应用是至关重要的,而 Axis1.4、MyBatis3 和 Spring3 的集成则为实现这样的目标提供了一种强大的解决方案。本项目通过将这三个框架组合在一起,旨在创建一个能够提供Web服务的...

    WebService -AXIS工程

    【WebService - AXIS工程】是一个基于Java的Web服务开发框架,它允许开发者创建、部署和消费Web服务。在本文中,我们将深入探讨WebService和AXIS的相关知识点,并结合标签"源码"和"工具"来理解其核心概念和使用方法...

    axis2+spring+ibatis

    标题中的"axis2+spring+ibatis"是一个典型的Java企业级应用架构组合,它涉及到三个主要的技术组件:Apache Axis2、Spring框架和iBATIS。接下来,我们将详细探讨这三个技术以及它们在项目集成中的作用。 1. Apache ...

Global site tag (gtag.js) - Google Analytics