axis网上的教程很多,不过搜来搜去,总是只有那么几篇。仔细看了一下那几篇文章,都感觉到不是自己想要的,所以自己整理了一篇分享一下。

本文介绍axis应用的一个小例子,没有麻烦的命令行操作,只需照下面的步骤做就可以了。以下是详细的操作步骤。(注:本实例用的是axis,非axis2)

  1. 1.       环境准备

l  MyEclipse 6.5

l  Tomcat 6

l  JDK 1.5

l  axis(非axis2)

  1. 2.       新建web工程

新建一web工程,工程名称为axistest。新建完成后,导入下图所示的axis相关的jar包。

  1. 3.       在web.xml中添加axis相关的配置信息
  1. <servlet>
  2. <display-name>Apache-Axis Servlet</display-name>
  3. <servlet-name>AxisServlet</servlet-name>
  4. <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  5. </servlet>
  6. <servlet>
  7. <display-name>Axis Admin Servlet</display-name>
  8. <servlet-name>AdminServlet</servlet-name>
  9. <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
  10. <load-on-startup>100</load-on-startup>
  11. </servlet>
  12. <servlet-mapping>
  13. <servlet-name>AxisServlet</servlet-name>
  14. <url-pattern>/servlet/AxisServlet</url-pattern>
  15. </servlet-mapping>
  16. <servlet-mapping>
  17. <servlet-name>AxisServlet</servlet-name>
  18. <url-pattern>*.jws</url-pattern>
  19. </servlet-mapping>
  20. <servlet-mapping>
  21. <servlet-name>AxisServlet</servlet-name>
  22. <url-pattern>/services/*</url-pattern>
  23. </servlet-mapping>
  24. <servlet-mapping>
  25. <servlet-name>AdminServlet</servlet-name>
  26. <url-pattern>/servlet/AdminServlet</url-pattern>
  27. </servlet-mapping>
  1. 4.       新建提供服务的Java

在src下新建com包,在com包下新建HelloWorld类,HelloWorld的内容如下:

  1. package com;
  2. public class HelloWorld {
  3. public String sayHello(String msg){
  4. if(null==msg || "".equals(msg)){
  5. return "您好!";
  6. }else{
  7. return "您好" + msg + "!";
  8. }
  9. }
  10. public int sayAge(){
  11. return 28;
  12. }
  13. }
  1. 5.       配置server-config.wsdd

在WEB-INF下新建server-config.wsdd文件,内容如下:

  1. <deployment xmlns="http://xml.apache.org/axis/wsdd/"
  2. xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  3. <!-- 处理器 -->
  4. <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />
  5. <!-- 一个服务 -->
  6. <!-- provider="java:RPC"  webservice是以javabean的形式提供的-->
  7. <service name="helloWorldService" provider="java:RPC">
  8. <!-- 指定类名 -->
  9. <parameter name="className" value="com.HelloWorld" />
  10. <!-- 类中允许访问的方法 -->
  11. <parameter name="allowedMethod" value="*"></parameter>
  12. </service>
  13. <!-- 指定处理器 -->
  14. <transport name="http">
  15. <requestFlow>
  16. <handler type="URLMapper"/><!-- 引用上边的 -->
  17. </requestFlow>
  18. </transport>
  19. </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相关的东西已经配置好,此时工程的目录结构如下

  1. 6.       部署到Tomcat测试

将工程发布到Tomcat,在浏览器里访问http://127.0.0.1:9999/axistest/services,如果出现如下页面,则表示web service部署成功

点击上面的wsdl链接,进入下图所示页面

注意上面的红圈的namespace,下面测试QName有用到。

  1. 7.       客户端测试

在com包下新建测试类,名称为ClientTest,内容如下:

  1. package com;
  2. import java.NET.MalformedURLException;
  3. import java.rmi.RemoteException;
  4. import javax.xml.namespace.QName;
  5. import javax.xml.rpc.ServiceException;
  6. import org.apache.axis.client.Call;
  7. import org.apache.axis.client.Service;
  8. /**
  9. * @author 花非花雾非雾
  10. * @date 2010-12-24
  11. */
  12. public class ClientTest {
  13. public static void main(String[] args) throws MalformedURLException, RemoteException {
  14. Service service = new Service();
  15. try {
  16. Call call = (Call) service.createCall();
  17. //设置地址
  18. call.setTargetEndpointAddress(new java.Net.URL("http://127.0.0.1:9999/axistest/services/helloWorldService?wsdl"));
  19. //设置要执行的方法
  20. call.setOperationName(new QName("http://com","sayHello"));
  21. //设置要传入参数,如果没有要传入的参数,则不要写这个
  22. call.addParameter("msg", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
  23. //设置返回的类型
  24. call.setReturnType(org.apache.axis.Constants.XSD_STRING);
  25. String name = "花非花雾非雾";
  26. //执行,调用webservice
  27. String result = (String) call.invoke(new Object[]{name});
  28. System.out.println("返回的结果是:"+result);
  29. } catch (ServiceException e) {
  30. e.printStackTrace();
  31. }
  32. }
  33. }

如果一切正常,运行结果如下:

返回的结果是:您好花非花雾非雾!

参考资料:

  1. axis 的官方资料

Axis通过wsdd部署Web Service的更多相关文章

  1. 部署web Service到tomcat

    建立项目 打开jdeveloper 12c,然后新建一个java项目,点击java,生成web services. package simple; import javax.jws.WebMethod ...

  2. JAVA中使用HTTP 1.1提高基于AXIS 1.4的web service的性能

    HTTP 1.1会在第一次连接的时候进行认证, 而在一定时间内保持连接而不用重新验证. 一般情形下,每个web service请求都会在web service服务端验证, 而验证会消耗很多时间, 因此 ...

  3. java 使用AXIS调用远程的web service

    1.服务 2.代码 import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.ax ...

  4. IIS 部署 web service

    1.在控制台检查 IIS 功能是否已经全部启用 2.重新注册IIS 3.设定程序池的正确版本

  5. Axis开发Web Service

    可以自动生成代码的 一.Axis环境的安装 1.安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2. 2.到 http://xml.apache.org 网站下载Axis ...

  6. ASP.NET WEB SERVICE 创建、部署与使用

    PS: 开发工具 VS2010, 所有工程都为Debug状态,本人刚接触 Web Service,此文为菜鸟入门用例,高手勿笑! 转载请注明出处 :http://www.cnblogs.com/yyc ...

  7. 4.菜鸟教你一步一步开发 web service 之 axis 客户端创建

    转自:https://blog.csdn.net/shfqbluestone/article/details/37723517 在上个教程中我们创建了一个 axis 服务端的 web service ...

  8. CentOS 调用.Net 的Web Service,提示连接超时解决方案

    我是使用axis调用.NET 的Web Service ,在Window下跑没有问题,将项目部署到Linux下,发现Web Service 连接超时,百度了下,发现是因为Linux不能直接跑.Net, ...

  9. MyEclipse JAX-WS Web Service

    在Myeclipse8.5下开发Web service程序,目前系统支持的开发框架有3个,JAX-WS,REST(JAX-RS),XFire.其中系统建议不要使用XFire 的框架,可能是要被淘汰了( ...

随机推荐

  1. SQL SERVER 2012 第三章 T-SQL 基本语句 group by 聚合函数

    select Name,salesPersonID From Sales.store where name between 'g' and 'j' and salespersonID > 283 ...

  2. Caocao's Bridges-HDU4738(Tarjin+求桥)

    http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意: 给定n个点和m条边  和每条边的价值,求桥的最小价值(最小桥) 看着挺简单的但是有好多细节: ...

  3. codevs——1385 挤牛奶

    1385 挤牛奶 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解  查看运行结果     题目描述 Description 三个农民每天清 ...

  4. redhat 6 配置 yum 源

    1.删除redhat原有的yum rpm -aq|grep yum|xargs rpm -e --nodeps 2.下载yum安装文件 注意,如果下载时找不到文件,就登录到:http://mirror ...

  5. MongoDB小结19 - find【查询条件$all】

    利用all来查询所以满足的匹配项,已知数据库有这些数据 db.user.find({},{"_id":0}) { "fruit" : [ "apple ...

  6. swift container server 莫名stuck

    openstack swift container server的进程经常莫名其妙进入 D Ds等状态 记录一下这个时候 storage.error的log 便于分析 一种情形是下面这种log Jun ...

  7. component and slot

    component and slot 使用: 1.component panel <article class="message"> <div class=&qu ...

  8. reactjs 视频教程

    近期玩了一下react,感觉挺不错的,搜了一下没有看到什么视频教程,于是自己便录制了几个入门视频.希望能够帮到大家.已经上传土豆了,能够点击以下的链接查看. http://www.tudou.com/ ...

  9. C#的SplitPanel如何设置上下和左右

    定位到Orientation属性即可

  10. C# .NET想要另存一个项目,sln文件丢了怎么办

    如下图所示,我想要另存一个工程,把 V4.4整个的项目另存为V4.5,我可以把解决方案文件(.sln)改名字,但是我没法把文件夹改名字,改了打开sln就说找不到.   很简单的一个思路是反正sln是多 ...