Axis通过wsdd部署Web Service
axis网上的教程很多,不过搜来搜去,总是只有那么几篇。仔细看了一下那几篇文章,都感觉到不是自己想要的,所以自己整理了一篇分享一下。
本文介绍axis应用的一个小例子,没有麻烦的命令行操作,只需照下面的步骤做就可以了。以下是详细的操作步骤。(注:本实例用的是axis,非axis2)
- 1. 环境准备
l MyEclipse 6.5
l Tomcat 6
l JDK 1.5
l axis(非axis2)
- 2. 新建web工程
新建一web工程,工程名称为axistest。新建完成后,导入下图所示的axis相关的jar包。
- 3. 在web.xml中添加axis相关的配置信息
- <servlet>
- <display-name>Apache-Axis Servlet</display-name>
- <servlet-name>AxisServlet</servlet-name>
- <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
- </servlet>
- <servlet>
- <display-name>Axis Admin Servlet</display-name>
- <servlet-name>AdminServlet</servlet-name>
- <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
- <load-on-startup>100</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>/servlet/AxisServlet</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>*.jws</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>AdminServlet</servlet-name>
- <url-pattern>/servlet/AdminServlet</url-pattern>
- </servlet-mapping>
- 4. 新建提供服务的Java类
在src下新建com包,在com包下新建HelloWorld类,HelloWorld的内容如下:
- package com;
- public class HelloWorld {
- public String sayHello(String msg){
- if(null==msg || "".equals(msg)){
- return "您好!";
- }else{
- return "您好" + msg + "!";
- }
- }
- public int sayAge(){
- return 28;
- }
- }
- 5. 配置server-config.wsdd
在WEB-INF下新建server-config.wsdd文件,内容如下:
- <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" />
- <!-- 一个服务 -->
- <!-- provider="java:RPC" webservice是以javabean的形式提供的-->
- <service name="helloWorldService" provider="java:RPC">
- <!-- 指定类名 -->
- <parameter name="className" value="com.HelloWorld" />
- <!-- 类中允许访问的方法 -->
- <parameter name="allowedMethod" value="*"></parameter>
- </service>
- <!-- 指定处理器 -->
- <transport name="http">
- <requestFlow>
- <handler type="URLMapper"/><!-- 引用上边的 -->
- </requestFlow>
- </transport>
- </deployment>
wsdd文件标签节点说明:
deployment:表明这是一个axis部署描述文件;
service:axis提供的一个web service服务。service标签中parameter allowedMethod用于指定一个以空格分隔的方法名,只有这些方法可以通过web service访问。也可以将这个值指定为“*”表示所有的方法都可以访问。
provider:服务类型,共有四种,分别是RPC,Document,Wrapped和Message。详见org.apache.axis.providers包的API文档;
parameter:用来设置Axis的各种属性;
requestFlow:局的请求Handlers,在调用实际的服务之前调用;
transport:定义了服务器端的传输方式
至此web service相关的东西已经配置好,此时工程的目录结构如下
- 6. 部署到Tomcat测试
将工程发布到Tomcat,在浏览器里访问http://127.0.0.1:9999/axistest/services,如果出现如下页面,则表示web service部署成功
点击上面的wsdl链接,进入下图所示页面
注意上面的红圈的namespace,下面测试QName有用到。
- 7. 客户端测试
在com包下新建测试类,名称为ClientTest,内容如下:
- package com;
- import java.NET.MalformedURLException;
- import java.rmi.RemoteException;
- import javax.xml.namespace.QName;
- import javax.xml.rpc.ServiceException;
- import org.apache.axis.client.Call;
- import org.apache.axis.client.Service;
- /**
- * @author 花非花雾非雾
- * @date 2010-12-24
- */
- public class ClientTest {
- public static void main(String[] args) throws MalformedURLException, RemoteException {
- Service service = new Service();
- try {
- Call call = (Call) service.createCall();
- //设置地址
- call.setTargetEndpointAddress(new java.Net.URL("http://127.0.0.1:9999/axistest/services/helloWorldService?wsdl"));
- //设置要执行的方法
- call.setOperationName(new QName("http://com","sayHello"));
- //设置要传入参数,如果没有要传入的参数,则不要写这个
- call.addParameter("msg", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
- //设置返回的类型
- call.setReturnType(org.apache.axis.Constants.XSD_STRING);
- String name = "花非花雾非雾";
- //执行,调用webservice
- String result = (String) call.invoke(new Object[]{name});
- System.out.println("返回的结果是:"+result);
- } catch (ServiceException e) {
- e.printStackTrace();
- }
- }
- }
如果一切正常,运行结果如下:
返回的结果是:您好花非花雾非雾!
参考资料:
- axis 的官方资料
Axis通过wsdd部署Web Service的更多相关文章
- 部署web Service到tomcat
建立项目 打开jdeveloper 12c,然后新建一个java项目,点击java,生成web services. package simple; import javax.jws.WebMethod ...
- JAVA中使用HTTP 1.1提高基于AXIS 1.4的web service的性能
HTTP 1.1会在第一次连接的时候进行认证, 而在一定时间内保持连接而不用重新验证. 一般情形下,每个web service请求都会在web service服务端验证, 而验证会消耗很多时间, 因此 ...
- java 使用AXIS调用远程的web service
1.服务 2.代码 import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.ax ...
- IIS 部署 web service
1.在控制台检查 IIS 功能是否已经全部启用 2.重新注册IIS 3.设定程序池的正确版本
- Axis开发Web Service
可以自动生成代码的 一.Axis环境的安装 1.安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2. 2.到 http://xml.apache.org 网站下载Axis ...
- ASP.NET WEB SERVICE 创建、部署与使用
PS: 开发工具 VS2010, 所有工程都为Debug状态,本人刚接触 Web Service,此文为菜鸟入门用例,高手勿笑! 转载请注明出处 :http://www.cnblogs.com/yyc ...
- 4.菜鸟教你一步一步开发 web service 之 axis 客户端创建
转自:https://blog.csdn.net/shfqbluestone/article/details/37723517 在上个教程中我们创建了一个 axis 服务端的 web service ...
- CentOS 调用.Net 的Web Service,提示连接超时解决方案
我是使用axis调用.NET 的Web Service ,在Window下跑没有问题,将项目部署到Linux下,发现Web Service 连接超时,百度了下,发现是因为Linux不能直接跑.Net, ...
- MyEclipse JAX-WS Web Service
在Myeclipse8.5下开发Web service程序,目前系统支持的开发框架有3个,JAX-WS,REST(JAX-RS),XFire.其中系统建议不要使用XFire 的框架,可能是要被淘汰了( ...
随机推荐
- 【Eclipse】eclipse中设置tomcat启动时候的JVM参数
主要通过以下的几个jvm参数来设置堆内存的: -Xmx512m 最大总堆内存,一般设置为物理内存的1/4 -Xms512m 初始总堆内存,一般将它设置的和最大堆内存一样大,这样就不需要根据当前堆使用情 ...
- UVA 10006_Carmichael number
题意: N 为合数,对于任意一个在(1,N)之间的数满足 anmodn=a,则称N为Carmichael number,对于给定的N,判断是否为Carmichael number. 分析: 素数区间筛 ...
- lambda简单记录
lambda表达式对集合的一些操作,持续记录一下新的用法 List<Integer> list = new ArrayList<>(); list.add(1); list.a ...
- 洛谷 U41571 Agent2
U41571 Agent2 题目背景 炎炎夏日还没有过去,Agent们没有一个想出去外面搞事情的.每当ENLIGHTENED总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了.只有不 ...
- MongoDB小结23 - 索引简介
MongoDB中的索引,可以看作是书的目录. 想象一下给你一本没有目录的书,然后让你去查询指定内容,我只想说,我不是电脑,我很蛋疼! 让你翻没有目录的书,就跟让电脑查询没有索引的集合一样,从头查询到尾 ...
- linux复制文件/移动文件从一个文件夹到另一个文件夹
cp ~/baidu/* ~/zhidao/cp -r逐层复制mv /data/link /usr/local 移动文件夹 解决方法 1.在cp命令后,加一个选项 -r . cp -r /TEST/ ...
- ThinkPHP3.2 点击看不清刷新验证码
欢迎使用Markdown编辑器写博客 baidu了一下.发现没有可用的源码,自己想了想,以下的方法可行. <!DOCTYPE html> <html> <head> ...
- X-pack-6.2.4破解
1.前言: X-pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,虽然x-pack被设计为一个无缝的工作,但是你可以轻松的启用或者关闭一 ...
- 手动安装Firefox Linux
(2015-06-05 17:22:19)[编辑][删除] 转载▼ 标签: 股票 Firefox 下载文件以.tar和.bz2格式保存,必须从这些压缩包中提取文件.不想删除当前安装的 Firefox, ...
- sqlite自己主动更新数据库
写一个类继承自 SQLiteOpenHelper 系统会自己主动加入构造方法. onCreate方法.onUpgrade方法 当数据库里面数据或者表结构有所修改时.咱们须要升级数据库 这个时候.版本 ...