一、环境配置 :在 eclipse 中配置引入相应的 spring框架( core/Remoting/Web )、 axis 包。

 

二、代码开发

1、  在 MyEclipse 中建立一个新的 J2EE 的 Web Project, 新建 Java包 test 。

2、  接口文件 HelloWorldRemote.java

package test;

//Spring 工程中要使用的接口文件

public interface HelloWorldRemote

{

public String getMessage(String name);

}

3、  接口实现文件 HelloWorldBean.java

package test;

//Spring 工程中要使用的接口实现文件

public class HelloWorldBean implements HelloWorldRemote

{

private String helloStr; // Spring 中需要注入的字符串

public String getHelloStr()

{

return helloStr;

}

public void setHelloStr(String helloStr)

{

this.helloStr = helloStr;

}

// 实现接口中的方法

public String getMessage(String name)

{

return helloStr + ":" + name;

}

}

4、  在 Spring 中对 Web Service 进行封装很简单,仅仅需要继承

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

package test;

import javax.xml.rpc.ServiceException;

import org.springframework.remoting.jaxrpc.ServletEndpointSupport;

public class HelloWorldWebService

extends ServletEndpointSupport

implements HelloWorldRemote

{

private HelloWorldRemote helloWorld;

protected void onInit() throws ServiceException

{

// 在 Spring 容器中获取 Bean 的实例

helloWorld = (HelloWorldRemote) getApplicationContext()

.getBean("myHelloWorldBean");

}

public String getMessage(String name)

{

// 执行 Bean 中的相同的方法

return helloWorld.getMessage(name);

}

}

三、配置文件 (全部放在 /WEB-INF/ 目录下 )

1、  web.xml 为 web 加载 spring 和 axis 配置

<!--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 发布路径 -->

2、  applicationContext.xml 为 spring 的配置

<?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="myHelloWorldBean" class="test.HelloWorldBean">

<property name="helloStr">

<value>Say Hello to :</value>

</property>

</bean>

</beans>

3、  server-config.wsdd 为 axis 服务配置

<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="AdminService" provider="java:MSG">

<parameter name="allowedMethods" value="AdminService" />

<parameter name="enableRemoteAdmin" value="false" />

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

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

</service>

<service name="Version" provider="java:RPC">

<parameter name="allowedMethods" value="getVersion" />

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

</service>

<!-- 自定义服务 -->

<service name="myWebService" provider="java:RPC">

<parameter name="className"

value="test.HelloWorldWebService" />

<parameter name="allowedMethods" value="*" />

</service>

<transport name="http">

<requestFlow>

<handler type="URLMapper" />

</requestFlow>

</transport>

</deployment>

 

四、测试 客户端 TestWebServiceClient.java

package test;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

public class TestWebServiceClient

{

public static void main(String[] args)

{

try

{

String wsdlUrl

= "http://localhost:8080/spring-axis/services/myWebService?wsdl";

String nameSpaceUri

= "http://localhost:8080/spring-axis/services/myWebService";

// 创建调用对象

Service service = new Service();

Call call = null;

call = (Call) service.createCall();

// 调用 getMessage

System.out.println(">>>getMessage");

call.setOperationName(new QName(nameSpaceUri, "getMessage"));

call.setTargetEndpointAddress(new java.net.URL(wsdlUrl));

String ret = (String) call.invoke(new Object[] { "ABC" });

System.out.println("return value is " + ret);

}

catch (Exception e)

{

e.printStackTrace();

}

}

}

关注流行国外网站

facebook:http://www.fb-on.com

facebook官网:http://www.facebookzh.com

facebook:http://www.cn-face-book.com

youtube:http://www.youtubezh.com

twitter:http://www.twitterzh.com

webservice-之使用axis+spring开发的更多相关文章

  1. 转载 WebService 的CXF框架 WS方式Spring开发

    WebService 的CXF框架 WS方式Spring开发   1.建项目,导包. 1 <project xmlns="http://maven.apache.org/POM/4.0 ...

  2. WebService 的CXF框架 WS方式Spring开发

    1.建项目,导包. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...

  3. Java WebService学习笔记 - Axis(一)

    WebService 简介 实际开发中,很多系统都是基于历史遗留系统进行开发,有时,这些系统基于不同的语言,如C,C++,C#,java,PHP等等.为了实现历史系统的再利用,或向外部程序暴露调用接口 ...

  4. 【Spring学习笔记-0】Spring开发所需要的核心jar包

    spring开发所需要的核心jar 1. libs目录下的核心jar包: 2. common-logging-xxx.jar 来自为知笔记(Wiz) 附件列表

  5. 使用Spring开发第一个HelloWorld应用

    http://www.importnew.com/13246.html 让我们用Spring来写第一个应用程序吧. 完成这一章要求: 熟悉Java语言 设置好Spring的环境 熟悉简单的Eclips ...

  6. 【Spring开发】—— Spring Core

    原文:[Spring开发]-- Spring Core 前言 最近由于一些工作的需要,还有自己知识的匮乏再次翻开spring.正好整理了一下相关的知识,弥补了之前对spring的一些错误认知.这一次学 ...

  7. Spring(一):eclipse上安装spring开发插件&下载Spring开发包

    eclipse上安装spring开发插件 1)下载安装插件包:https://spring.io/tools/sts/all 由于我的eclipse版本是mars 4.5.2,因此我这里下载的插件包是 ...

  8. Spring开发环境搭建教程

    Spring开发环境搭建 JDK7以上版本 eclispe for j2ee 4.0以上版本 Spring frameWorks 3.0以上版本 至于前两个我们就不介绍,直接百度就可以了,对于Spri ...

  9. Java WebService 教程系列之 Spring 整合 CXF

    Java WebService 教程系列之 Spring 整合 CXF 一.引入 jar 包 <dependency> <groupId>org.apache.cxf</ ...

随机推荐

  1. UVA-10269 Adventure of Super Mario (dijkstra)

    题目大意:有A个村庄,B个城市,m条边,从起点到终点,找一条最短路径.但是,有一种工具可以使人不费力的移动L个长度,但始末点必须是城市或村庄.这种工具有k个,每个只能使用一次,并且在城市内部不可使用, ...

  2. linux-Centos7安装nginx

    首先配置linux环境,我这里是刚刚装好linux,所以一次性安装了一系列我需要到的环境: yum install pcre pcre-devel zlib zlib-devel openssl op ...

  3. hdu 6034 Balala Power!

    Balala Power! Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  4. ES查询index对应的mapping信息

    private void getMappingByIndex(String indices) throws IOException { GetMappingsRequest getMappingsRe ...

  5. jsp中把js变量赋给java变量,或者将java变量赋给js变量怎么做?

    在jsp中经常会遇到把js变量赋给java变量,或者将java变量赋给js变量的情况,在此将通用的处理方法小结如下: java变量传给js好办,var a=”<%=javaParam%>“ ...

  6. (转)MapReduce Design Patterns(chapter 3 (part 2))(六)

    Top Ten Pattern Description Top ten模式跟前面的有很大的不同,跟输入数据大小无关,最终得到的记录数量是确定的.而在通用filtering中,输出的规模取决于输入数据. ...

  7. [置顶] 记最近一次Nodejs全栈开发经历

    背景: 前段时间大部门下新成立了一个推广百度OCR.文字识别.图像识别等科技能力在金融领域应用的子部门.因为部门刚成立,基础设施和人力都是欠缺的.当时分到我们部门的任务是抽调一个人做新部门主站前端开发 ...

  8. ng开启缓存 造成的问题:

    开启缓存 造成的问题:

  9. caffe学习笔记教程

    1 官网:http://caffe.berkeleyvision.org/ 2 豆丁网中:http://www.docin.com/p-871820917.html 3 下载的caffe中,.../d ...

  10. 【剑指offer】判断一个序列是否是二叉搜索树的后序遍历,C++实现

    原创文章,转载请注明出处! 本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 1.题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出N ...