以前用过axis, 不过好久不弄, 有忘记了。很多很多东西放在收藏夹里面, 但是长时间不去看,结果就是还是不熟悉!现在再简单总结一下吧。

Axis开发服务器端webservice其实很简单。

1 下载引入axis相关jar。

2 新建javaweb项目axis,取名最好就是axis,否则可能报错或者访问无返回, 具体为什么, 没有研究。

  然后,引入axis jar

3 web.xml加入:

  <listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener> <servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet> <servlet>
<servlet-name>AdminServlet</servlet-name>
<display-name>Axis Admin Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup></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>

<!-- uncomment this if you want the admin servlet -->
<!--
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
-->

  <servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value></param-value>
</init-param>
<load-on-startup></load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>

同web.xml目录增加 server-config.wsdd 表示对外提供的webservice, 这个wsdd是axis自带的,一般包含AdminService 、Version 两个webservice。

两个不可去掉,Adminservice 用来部署其他一些webservice用的。

3 部署axis项目,启动tomcat,访问 http://localhost:8080/axis/services

可以看到刚刚的两个webservice, 同时客户端可以对它进行访问。

4 部署其他webservice。

首先:服务端(当前项目axis中)建立一个简单的java类:

public class HelloWorld {
public String sayHello()
{
return "HELLO WORLD!";
}
}

然后:同样的,我们需要在web.xml目录提供我们的wsdd:myWS.wsdd,以让axis检查到。 wsdd的描述主要是:

deployment>service>parameter 这样的结构。 service就是表达对外的服务,通常其为服务端(当前项目axis中)一个简单的java类,里面只要提供public方法即可。

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="SMSendService" provider="java:RPC">
<parameter name="className" value="com.smns.SMSender"/>
<parameter name="allowedMethods" value="*"/>
</service>
<service name="HelloService" provider="java:RPC">
<parameter name="className" value="HelloWorld"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>

一个wsdd里面可以部署多个webservice

再次:

在在web.xml同目录打开命令行,执行下面命令, 将我们新写的webservice部署上。

java -cp D:\ws\la\axis\WebRoot\WEB-INF\lib\activation.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\axis-ant.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\axis.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\commons-discovery-0.2.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\commons-logging-1.0.4.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\jaxrpc.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\log4j-1.2.8.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\mailapi.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\saaj.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\wsdl4j-1.5.1.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\xmlsec-1.4.2.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\xml-apis-2.6.2.jar;D:\ws\la\axis\WebRoot\WEB-INF\lib\mail.jar  org.apache.axis.client.AdminClient -1http://localhost:8080/axis/services/AdminService myWS.wsdd

注:此时,tomcat应该已经启动了,否则无法通过Adminservice部署新的服务。

然后重新访问 http://localhost:8080/axis/services会发现我们的webservice已经部署上了!

当然, 我想还有其他方式部署webservice

然后呢,服务端的webservice就写好了!!

客户端:

Axis同时提供一些客户端api对其webservice进行访问。

首先:创建客户端的java项目(不一定的java项目,只要是java程序即可):TestAxis。

   public static void main(String [] args) throws Exception {

       String endpoint = "http://localhost:" +""+ "/axis/services/HelloService ";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName("sayHello" );
String res = (String) call.invoke( new Object[] {} );
System.out.println( res );
}

执行,即可看到结果HELLO WORLD! 当然,这个是客户端的结果。 服务端的结果则由服务端决定。

参考:http://www.cnblogs.com/mingzi/archive/2009/03/09/1406839.html

Apache-Axis小结的更多相关文章

  1. 应用Apache Axis进行Web Service开发

    转自(http://tscjsj.blog.51cto.com/412451/84813) 一.概述 SOAP原意为Simple Object Access Protocol(简单对象访问协议),是一 ...

  2. spring boot 集成axis1.4 java.lang.NoClassDefFoundError: Could not initialize class org.apache.axis.client.AxisClient

    pom配置: <dependencies> <dependency> <groupId>org.springframework.boot</groupId&g ...

  3. 利用Apache AXIS 1 发布WebService

    首先,AXIS 是apache的作品. 1.到apache去下载相关的包,包括axis.jar.axis-ant.jar.commons-discovery-0.2.jar等.将jar包放到WEB-I ...

  4. 1.Apache Axis配置文件WSDD详解

    转自:https://jyao.iteye.com/blog/1285516 1. Aapche Axis的Web Service Deployment Descriptor(WSDD)文件参考文档. ...

  5. linux下卸载apache方法小结

    方法一 代码如下: 1. root@server ~]# rpm -qa|grep httpd  httpd-2.2.3-11.el5_2.centos.4  httpd-manual-2.2.3-1 ...

  6. Apache axis2 + Eclipse 开发 WebService

    yd小结注意:1.axis2的2个插件的版本必须与引入的jar包匹配,如果不同则可能报以下错误 “没有实现序列化方法”或 “org.apache.axis2.databinding.utils.wri ...

  7. 使用axis开发web service服务端

    一.axis环境搭建 1.安装环境 JDK.Tomcat或Resin.eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4下载A ...

  8. AXIS最佳实践

    前言: Axis是apache一个开源的webservice服务,需要web容器进行发布.本节主要用于介绍使用Axis开发webservice,包括服务端的创建.webservice的部署.客户端的调 ...

  9. axis

    http://www.cnblogs.com/liyanblog/archive/2011/11/29/2266942.html 报错: D:\ws\la\WSofSMNS\WebRoot\WEB-I ...

  10. 【知识积累】服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)

    一.前言 由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebServic ...

随机推荐

  1. Linux/Centos下安装部署phantomjs 及使用

    PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, ...

  2. Thinkphp 关联模型

    1.定义关联模型 2.使用关联模型 D('BlogRelation')->relation(true)->add($data);

  3. System.Threading.Timer

    GLog.WLog("_thdTimer before"); _thdTimer = new System.Threading.Timer(new TimerCallback(Ti ...

  4. MyEclipse+Tomcat配置

    一.Tomcat 1 Tomcat概述 Tomcat服务器由Apache提供,开源免费.由于Sun和其他公司参与到了Tomcat的开发中,所以最新的JSP/Servlet规范总是能在Tomcat中体现 ...

  5. JAVA开源B2C系统

    前言 最近有人想面向境外销售商品,但是又不想依托于亚马逊这些平台,于是找我来帮忙想弄个B2C系统.因为刚开始只是打算试试水,也就不打算投入多少成本了.所以这边就考虑使用开源的B2C系统来直接使用了. ...

  6. 可用于在 Microsoft.NET Framework 4.0 中的 ASP.NET 浏览器定义文件的修补程序

    http://support.microsoft.com/kb/2600088 此修补程序为 Internet Explorer 和 Mozilla Firefox 在浏览器定义文件引入了更新的定义. ...

  7. JVM 专题

    未完待续>>> JVM - 整体结构 摘抄自:<分布式java应用基础与实践>-第三章 JVM - 内存 对上图各部分的概要解释: JVM - GC 详情参考: http ...

  8. jQuery 闪动的文字提示

    原文地址:http://www.cnblogs.com/kiter/archive/2013/02/22/2922242.html 声明,本文转自网络. jQuery 闪动的文字提示,仿QQ头像闪烁闪 ...

  9. folly无锁队列,尝试添加新的函数

    1. folly是facebook开源的关于无锁队列的库,实现过程很精妙.folly向队列中添加节点过程,符合标准库中的队列的设计,而取出节点的过程,则会造成多个线程的分配不均.我曾经试着提供一次 取 ...

  10. 漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)

    本文将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理.设计.以及在我们大数据场景下的实现方式. 全文由下面几个部分组成: 先分享一下拉链表的用途.什么是拉链表. 通过一些小的使用场景来对拉链表做近 ...