Axis1.4学习笔记
来源:互联网 发布:亚当斯密 知乎 编辑:程序博客网 时间:2024/05/19 00:13
1. 将Axis项目中,webapps目录下的axis文件夹部署到Tomcat的webapps目录下
2. 我们可以看到,axis/WEB-INF/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>100</load-on-startup>
</servlet>
<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>5001</param-value>
</init-param>
<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>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</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>
-->
3. 编写WS服务端
public class HelloServer {
public HelloServer()
{
System.out.println("--构造函数--");
}
public int add(int a, int b)
{
return a + b;
}
public String sayHello(String name)
{
return "Hello, " + name + "!";
}
}
方式1:最简单的方法
(1) 直接将HelloServer.java文件拷贝到Tomcat/webapps/axis目录下,然后改名为:
HelloServer.jws
注意: a> HelloService.java不能放在pageage中,
b>有可能需要将jdk/lib/tools.jar放到axis/WEB-INF/lib目录下
(2) 可以到浏览器中输入:http://localhost:8088/axis/HelloServer.jws?wsdl查看部署信息
方式2:最常用的方法
(1) 将HelloServer.java放到pageage:cn.koma.ws包中(可以新建一个普通的java项目,然后将axis的一些相关jar导入进来)
(2) 编写deploy.wsdd描述文件:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="HelloServer" provider="java:RPC">
<parameter name="className" value="cn.koma.ws.HelloServer" />
<parameter name="allowedMethods" value="*" />
<!-- 这个service的范围:request(默认)、session、application -->
<parameter name="scope" value="application" />
</service>
</deployment>
(3) 通过axis提供的客户端工具org.apache.axis.client.AdminClient,将HelloServer部署到Tomcat服务器,默认情况下axis认为axis目录是:http://localhost:8080/axis,可以传递-p <port>指定其它端口
表示:ws部署描述文件是:deploy.wsdd,服务器端口是:8088
运行后,可以看到Tomcat/webapps/axis/WEB-INF目录下多了一个server-config.wsdd文件,打开后可以看到我们刚才自己写的deploy.wsdd的内容也包含在了其中。
(4) 将编译后的HelloServer.class放到Tomcat/webapps/axis/WEB-INF/classes目录下
(5) 在浏览器中输入:http://localhost:8088/axis/services/HelloServer?wsdl
4. 编写客户端访问WS服务
package cn.koma.ws;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class HelloServerClient {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8088/axis/services/HelloServer";
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://ws.koma.cn", "sayHello"));
String rtn = (String)call.invoke(new String[]{"zhaoql"});
System.out.println("Sent 'zhaoql', /ngot '"+rtn+"'");
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行后结果 :
Sent 'zhaoql',
got 'Hello, zhaoql!'
5. 卸载WS服务(实际上是删除axis/WEB-INF/server-config.wsdd文件中HelloServer的相关描述)
(1) 编写undeploy.wsdd文件
<undeployment name="test" xmlns="http://xml.apache.org/axis/wsdd/">
<service name="HelloServer"/>
</undeployment>
(2) 利用AdminClient工具执行卸载操作
(3) 执行成功后,可以看到server-config.wsdd中已经没了刚才的HelloServer的描述
6. org.apache.axis.client.AdminClient常用的方法:
(1) 发布ws服务到服务器端(实际上是修改server-config.wsdd文件)
deploy.wsdd –p 8088
(2) 从服务器取消ws服务,参数同上
undeploy.wsdd -p 8088
(3) 查看服务器所提供的所有的ws服务列表
list -p 8088
(4)将ws部署到指定的WEB项目(要先将.jar及web.xml拷贝到自己的项目中来),默认是:(http://localhost:8080/axis/servlet/AxisServlet)
deploy.wsdd –p 8088 –s MyWebProject/servlet/AxisServlet
7. 扩展知识点6,可以查看ort.apache.axis.utils.Options的构造函数àgetUrl()方法à
(1) Axis支持两种协议:http(默认)、file (-l 参数指定http协议,-f 参数指定file协议)
(2) 用 –l 或者 –f 参数指定协议等信息,如果为空,则默认是http协议, 如果指定了-l或者-f
则可以从参数中得到:主机(host)、端口(port)、AxisServlet的URL(servlet)、协议(protocol)
(3) –l参数可以指定AxisServlet的完整URL,默认情况下是:http://localhost:8080/axis/servlet/AxisServlet
例如可以:deploy.wsdd -l http://localhost:8088/AxisTestWeb/servlet/AxisServlet
(4) 如果 –h 参数不为空,则可以替换掉上面 –l 或者 –f 得到的host
如果 –p 参数不为空,则可以替换掉上面 –l 或者 –f 得到的port
如果 –s 参数不为空,则可以替换掉上面 –l 或者 –f 得到的servlet
(5) 如果host为空,则使用默认的host (localhost)
如果port为空,则使用默认的port(8080)
如果servlet为空,则使用默认的servlet(axis/servlet/AxisServlet)
如果protocol为空,则使用默认的protocol (http)
(6)
8.
- Axis1.4学习笔记
- AXIS1学习笔记
- Axis1.4 开发笔记
- axis1.4 使用笔记
- WebService学习笔记4——AXIS1基础
- WebService学习笔记4——AXIS1基础
- axis1.4的学习总结
- WebService笔记之即时发布(Axis1.4)
- 《pro Spring》学习笔记之Spring+Axis1.4开发WebService实例
- 《pro Spring》学习笔记之Spring+Axis1.4开发WebService实例之复杂类型处理
- Axis1.4
- axis1.4
- Axis1自学笔记续
- WebService笔记之定制发布(wsdd)(Axis1.4)
- axis1.4使用方法
- Axis1.4+Spring
- axis1.4 webservices 开发
- Axis1.4 操作文档
- Linux下检测指定目录下的所有打开的文件(包括子目录)并按照原有的目录结构保存一个副本
- OF位 与 CF位
- 一个IT男30岁前的困惑
- Java 101 : Hello World
- QT 的UDP SOCKET编程
- Axis1.4学习笔记
- 禁用调试
- qt中文编码
- 学习记录
- qt的横竖屏转换
- The habit of keeping journals-05092011
- Linux内核大讲堂 (一) 设备驱动的基石驱动模型(4)
- Android之绚丽的图片游览效果--有点像W7效果,透明的倒影,层叠的图片,渐变的颜色透明度
- 测试用ZOUNDRY发博客