package com.service;
import java.util.ArrayList;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class Test {
public static void main(String[] args) {
try{
String []aa={"ww","qq"}; //new 一个字符串数组
/*
* new User 对象
*/
User user = new User();
user.setName("Test");
/*
* new ArrayList
*/
ArrayList list = new ArrayList();
list.add(user);
/*
* 编写Xml文档
*/
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("books");
Element aut=root.addElement("book");
Element aut1=aut.addElement("name");
Element aut2 =aut.addElement("age");
aut1.addText("ddd");
aut2.addText("22");
aut=root.addElement("book");
aut1=aut.addElement("name");
aut2 =aut.addElement("age");
aut1.addText("222");
aut2.addText("32");
/* 输出标准的XML文档
System.out.println(doc.asXML());
*/
String endpoint = "http://localhost:8080/ServeTest/services/myService";
Service service = new Service(); // 创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall(); // 创建Call实例,也是必须的!
call.setTargetEndpointAddress(new java.net.URL(endpoint));// 为Call设置服务的位置
/*
* 传string[]
*/
call.setOperationName(new QName("myService","getusername")); // 注意方法名与JavaBeanWS.java中一样!!
String res = (String) call.invoke(new Object[] {aa}); // 返回String,传入参数
System.out.println("字符串数组结果:"+res);
/*
* 传加法
*/
call.setOperationName(new QName("myService", "add"));
Integer num = (Integer) call.invoke(new Object[]{new Integer(1), new Integer(2)});
System.out.println("加法的结果: " + num);
/*
* 传javaBean
*/
QName qn = new QName("urn:User", "user" );
call.registerTypeMapping(User.class, qn,
new org.apache.axis.encoding.ser.BeanSerializerFactory(User.class, qn),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(User.class, qn));
call.setOperationName( new QName("myService", "getName") );
User userBean = (User) call.invoke(new Object[] {user}); // 返回String,传入参数
System.out.println("javaBean的结果:"+userBean.getName());
/*
* 传xml字符串
*/
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName("myService", "xml"));
String xml = (String) call.invoke(new Object[]{doc.asXML()});
System.out.println("Xml结果: " + xml);
/*
* 传List
*/
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName("myService", "getList"));
User uesrList = (User) call.invoke(new Object[]{list});
System.out.println("List结果: " + uesrList.getName());
}
catch (Exception e) {
// TODO: handle exception
}
}
}
AXIS配置文档例子
需积分: 0 101 浏览量
更新于2009-01-17
收藏 3.85MB RAR 举报
AXIS配置文档例子主要涉及的是Axis,一个广泛使用的开源Java Web服务框架,它允许开发者创建、部署和管理基于SOAP(简单对象访问协议)的Web服务。这篇文章将详细解析AXIS配置文档中的关键知识点,帮助你深入理解如何有效地利用AXIS进行Web服务开发。
1. **AXIS简介**:
- AXIS是Apache软件基金会下的一个项目,主要用于实现SOAP通信,提供了一个强大的工具集来处理Web服务,包括客户端和服务器端的实现。
- 它支持WSDL(Web服务描述语言),使得服务能够被自动发现和绑定,极大地简化了Web服务的开发流程。
2. **安装与设置**:
- 下载并安装AXIS,通常是一个可执行的JAR文件,可以通过命令行或者集成开发环境(IDE)进行运行。
- 配置AXIS的运行环境,包括设置JAVA_HOME环境变量,确保JDK已经正确安装,并且在PATH中包含javac和java命令。
3. **创建Web服务**:
- 使用AXIS提供的wsdl2java工具,通过一个WSDL文件可以自动生成服务端和客户端的Java代码。
- 创建服务类,实现服务接口,然后通过 AxisServer 运行服务。
4. **部署Web服务**:
- 将服务打包成WAR文件,部署到支持Servlet容器(如Tomcat)上。
- 也可以通过AXIS自带的HTTP服务器直接运行服务,只需将服务类放在AXIS的classes目录下即可。
5. **服务测试**:
- ServeTest是AXIS提供的一个测试工具,用于测试部署的Web服务。通过发送SOAP请求,可以验证服务是否正常工作。
- 在"ServeTest"文件中,通常包含了用于测试的XML请求文件,通过修改这些文件的参数,可以对不同情况的服务调用进行模拟。
6. **配置文件详解**:
- `axis-server.xml`:这是AXIS服务器的主要配置文件,定义了服务器的行为,如端口设置、错误处理等。
- `axis.properties`:存储了AXIS的一些属性配置,例如日志级别、编码格式等。
- `deploy.wsdd`:Web服务部署描述符,定义了服务的元数据,如服务名称、操作、端点地址等。
7. **安全与性能优化**:
- AXIS支持WS-Security,可以实现Web服务的安全认证和加密。
- 通过调整配置文件,可以优化服务的并发能力、缓存策略以及错误重试机制,提升服务性能。
8. **故障排查**:
- 当服务运行出现问题时,查看AXIS的日志文件(如`logs/axis.log`)可以帮助定位问题。
- 使用AXIS的Admin服务可以远程管理和监控部署的服务,有助于诊断和修复问题。
AXIS配置文档例子提供了关于AXIS框架的全面指南,从安装、创建服务、部署到测试,每个环节都有详细的步骤和配置示例。理解并掌握这些知识点,对于开发和维护基于SOAP的Web服务至关重要。通过实践和探索,你可以利用AXIS高效地构建自己的Web服务系统。
liayin
- 粉丝: 7
- 资源: 18
最新资源
- 安卓PictureThis花花草草植物识别器v5.0.14.mp4
- 安卓谷歌相机v8.4pixel系列手机内置相机版.mp4
- 安卓纯粹免费直播v1.8.0聚合六大平台直播.mp4
- 安卓佳肴菜谱v1.0.0免费菜谱软件纯净版.mp4
- 安卓谜底黑胶v2.4.40高级版 – 音乐播放器.mp4
- 安卓模拟来电v1.0.0可自定义逃离场合必备.mp4
- 安卓魔力自动点击器v1.4.24 自动点击器.mp4
- webrtc+qt demo
- 安卓特狗影视v3.2.0丰富影视资源纯净版.mp4
- 安卓一木记账v5.8.90解锁VIP绿化高级版.mp4
- 安卓芝樱动漫V2.0 给你极致的观影体验.mp4
- 霸王茶姬抽3千份中杯免单券.mp4
- 白云视频app 高清追剧软件.mp4
- 百度打车国潮季领最高30亓券.mp4
- 基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)
- JAVA资料8-10学习