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 ...
随机推荐
- VMware和Linux的安装
摘自博客 https://blog.csdn.net/lamp_yang_3533/article/details/53136474
- 4:WPF中查看PDF文件
引用连接:https://www.cnblogs.com/yang-fei/p/4885570.html 在Github上看到一个非常好的WPF中承载PDF文件的类库. https://github. ...
- 在WPS绿色版中增加自定义皮肤
在WPS绿色版中增加自定义皮肤小俊的博客:http://xiaojun911.com/WPS绿色版:http://xiaojun911.com/xiazai/469.html小俊精简的WPS2016 ...
- Ubuntu 14.04不显示标题栏和侧边栏
Ubuntu 14.04不显示标题栏和侧边栏 进入桌面后 Ctrl + Alt + F1 切换到 tty1,登录,然后运行: sudo apt-get install unity lightdm重启即 ...
- 学习笔记之Machine Learning by Andrew Ng | Stanford University | Coursera
Machine Learning by Andrew Ng | Stanford University | Coursera https://www.coursera.org/learn/machin ...
- 中级 jQuery 了解
初级阶段的知识已经结束:中级要接触的东西:jQuery php css3 移动端: get Context("2d") 2d画布: draw Image() 绘制 ...
- 使用Spring MockMVC对controller做单元测试(转)
https://www.cnblogs.com/ylty/p/6420738.html 1.对单一controller做测试. import org.junit.Before; import org. ...
- php中的各种http报错的报错的状态码的分析
HTTP常见错误 HTTP 错误 400 400 请求出错 由于语法格式有误,服务器无法理解此请求.不作修改,客户程序就无法重复此请求. HTTP 错误 401 401.1 未授权:登录失败 此错误表 ...
- 报错:Column count doesn't match value count at row 1
mysql错误:Column count doesn't match value count at row 1 意思是存储的数据与数据库表的字段类型定义不相匹配. 解决办法:检查段类型是否正确, 是否 ...
- 0009 - WebFlux
1.概述 大多数场景使用MVC都是阻塞式的,WebFlux使用的场景是异步非阻塞的 响应式编程是基于异步和事件驱动的非阻塞程序,只是垂直通过在JVM内启动少量线程扩展,而不是水平通过集群扩展. Spr ...