Apache-Axis小结
以前用过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小结的更多相关文章
- 应用Apache Axis进行Web Service开发
转自(http://tscjsj.blog.51cto.com/412451/84813) 一.概述 SOAP原意为Simple Object Access Protocol(简单对象访问协议),是一 ...
- 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 ...
- 利用Apache AXIS 1 发布WebService
首先,AXIS 是apache的作品. 1.到apache去下载相关的包,包括axis.jar.axis-ant.jar.commons-discovery-0.2.jar等.将jar包放到WEB-I ...
- 1.Apache Axis配置文件WSDD详解
转自:https://jyao.iteye.com/blog/1285516 1. Aapche Axis的Web Service Deployment Descriptor(WSDD)文件参考文档. ...
- linux下卸载apache方法小结
方法一 代码如下: 1. root@server ~]# rpm -qa|grep httpd httpd-2.2.3-11.el5_2.centos.4 httpd-manual-2.2.3-1 ...
- Apache axis2 + Eclipse 开发 WebService
yd小结注意:1.axis2的2个插件的版本必须与引入的jar包匹配,如果不同则可能报以下错误 “没有实现序列化方法”或 “org.apache.axis2.databinding.utils.wri ...
- 使用axis开发web service服务端
一.axis环境搭建 1.安装环境 JDK.Tomcat或Resin.eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4下载A ...
- AXIS最佳实践
前言: Axis是apache一个开源的webservice服务,需要web容器进行发布.本节主要用于介绍使用Axis开发webservice,包括服务端的创建.webservice的部署.客户端的调 ...
- axis
http://www.cnblogs.com/liyanblog/archive/2011/11/29/2266942.html 报错: D:\ws\la\WSofSMNS\WebRoot\WEB-I ...
- 【知识积累】服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)
一.前言 由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebServic ...
随机推荐
- ThinkPHP 3.1.2 视图 MVC-V -5
一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl) ...
- 值得收藏的JSP连接mysql数据库的例子
1:用mysql驱动把mysql与tomcat的连接起来.把mysql驱动包(不用解压)放到Tomcat安装目录中lib文件夹下即可. 2:然后在自己的新建的web应用程序上面就可以下下面的代码 3: ...
- 自定义tt文本模板实现MySql指数据库中生成实体类
自定义tt文本模板实现MySql指数据库中生成实体类 1.在项目中依次点击“添加”/“新建项”,选择“文本模板”,输入名称后点击添加. 2.在Base.tt中添加如下代码. <#@ templa ...
- DS树+图综合练习--带权路径和
题目描述 计算一棵二叉树的带权路径总和,即求赫夫曼树的带权路径和. 已知一棵二叉树的叶子权值,该二叉树的带权案路径和APL等于叶子权值乘于根节点到叶子的分支数,然后求总和.如下图中,叶子都用大写字母表 ...
- "上市时间: 2014年秋冬季" unicode十进制编码转中文
"上市时间: 2014年秋冬季" unicode十进制编码转中文 System.Web.HttpUtility.HtmlDecode(tmp);
- 【linux】安装docker
硬件Centos6.9 x86_64 1.查看centos内核,uname -r 目前,CentOS 仅发行版本中的内核支持 Docker. Docker 运行在 CentOS 7 上,要求系统为64 ...
- 使用R语言-计算均值,方差等
R语言对于数值计算很方便,最近用到了计算方差,标准差的功能,特记录. 数据准备 height <- c(6.00, 5.92, 5.58, 5.92) 1 计算均值 mean(height) [ ...
- 自动化 数据分离 --A文件里面的类 中的函数 调用 B文件里面类 的函数 的方法
记录: bb 要实例化 self.dr=dr,那么 iber_test类的 self.dr 才能带过去
- 学习笔记之Lazy evaluation
Lazy evaluation - Wikipedia https://en.wikipedia.org/wiki/Lazy_evaluation In programming language th ...
- PHPer常见的面试题总结
1.平时喜欢哪些php书籍及博客?CSDN.虎嗅.猎云 2.js闭包是什么? 3.for与foreach哪个更快? 4.php鸟哥是谁?能不能讲一下php执行原理? 5.php加速器有哪些?apc.z ...