axis1.4 使用总结

最近一个项目使用webservice,公司要求使用axis1.4.
其实个人感觉xfire更好用一点,毕竟myeclipse已近提供了生成器,从客户端到服务端都可以一次搞定,比axis方便多了.

既然是公司要求,也只有硬着头皮上了.
上网查了一下资料,发现了1.4有这么几种部署方式

1.即时发布
将需要发布的server类直接命名为jws放在src目录下,不能有包,只能放在根目录下.然后通过http://localhost:8888/axis/你的类名.jws 就可以看到生成的wsdl
这种方法最致命的问题是 不支持包 不支持复杂类型参数.如果你的业务很简单可以使用这种方式

2.定制发布wsdd(推荐这种方式)

定制发布需要你自己写一个wsdd文件,并且手动生成客户端代码.看上去很复杂,其实不难.以下是生成server-config.wsdd文件

<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler" xmlns="http://xml.apache.org/axis/wsdd/">
<globalConfiguration name="defaultClientConfig">
<requestFlow name="RequestFlow1" type="">
<handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler name="Handler2" type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration>
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<transport name="http" type="">
<requestFlow name="RequestFlow1" type="">
<handler name="Handler1" type="URLMapper"/>
<handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
</transport>
<transport name="local" type="">
<responseFlow name="ResponseFlow1" type="">
<handler name="Handler1" type="LocalResponder"/>
</responseFlow>
</transport>

<!--这里配置了一个Web Service,如果有多个Web Service,就按这种格式在下面增加即可-->
<service name="DDosService" provider="java:RPC">
<parameter name="scope" value="Request"/>
<parameter name="className" value="com.zhongying.ddos.webservice.service.DDosService"/>//发布的服务
<parameter name="allowedMethods" value="*"/>
<beanMapping languageSpecificType="java:com.zhongying.ddos.webservice.common.DDosCustC" qname="ns:DDosCustC" xmlns:ns="urn:DDosCustC" />//映射的复杂类型
<beanMapping languageSpecificType="java:com.zhongying.ddos.webservice.common.DDosCustManagerC" qname="ns:DDosCustManagerC" xmlns:ns="urn:DDosCustManagerC" />
<beanMapping languageSpecificType="java:com.zhongying.ddos.webservice.common.DDosCustAndManagerListC" qname="ns:DDosCustAndManagerListC" xmlns:ns="urn:DDosCustAndManagerListC" />
</service>

</deployment>


把你需要使用的复杂参数映射到mapping中,如list map 都可以自定义一个类包装起来使用.

接下来你需要生成client,这可能是定制发布中大家最头痛的部分.以下是生成代码的批处理命令
set Axis_Lib=D:\shanghai\workspace\axis\WebRoot\WEB-INF\lib\
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=D:\webServiceGenClass
set Package=com.zhongying.worksheet.webservice.client //代码所在包名

%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://127.0.0.1:88/axis/services/DDosService?wsdl

运行这个命令程序会自动生成client.
但是大部分人都会在这步卡住,这个地方有个窍门,就是不要使用resin,要用tomcat,resin生成的wsdl和tomcat生成的wsdl不同,这样就导致了axis不能解析.生成代码就更不可能了.我估计是resin的xml解析器和tomcat不一样.
生成完代码大家就可以直接调用,添加自己的业务代码了.

如果是基本类型组成的map,可以直接传送参数,不需要映射参数类型;调用代码如下即可:

package com.flyzonemu.client;

import java.rmi.RemoteException;
import java.util.HashMap;
import java.util.Map;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class MapClient {

/**
* @param args
* @throws ServiceException
* @throws RemoteException
*/
public static void main(String[] args) throws ServiceException, RemoteException {
// TODO Auto-generated method stub

String url = "http://127.0.0.1:88/axis/services/MapTest?wsdl";

Map map = new HashMap();

map.put("sss", "yyy");

Service service = new Service();

Call call = (Call)service.createCall();

call.setTargetEndpointAddress(url);

call.setOperationName(new QName(url,"printMap"));

call.invoke(new Object[]{map});
}

}




最后附赠一个很好的教程!!!!


ps:有时会遇到Can't find bundle for base name i18n, locale zh_CN错误,请将源码class中的属性文件复制到工程目录下即可解决问题
使用axis1.4调用wcf协议的webservice接口的案例 1.首先下载 axis1.4 的项目包 地址:https://mirrors.tuna.tsinghua.edu.cn/apache/axis/axis/java/1.4/ 2.解压到文件夹axis-1_4下 3.进入axis-1_4/lib文件夹,然后cmd进入命令行页面,复制以下代码执行: java -cp activation.jar;axis.jar;commons-discover... 阅读详情

相关推荐

Axis1.4_开发指南

A xis(A pache eX tensible I nteraction S ystem)是一款开源的WebService 运行引擎,它是SOAP 协议的一个实现,其本身来源于Apache 的另一个项目Apache SOAP。Axis 分为1.x 系列和2 系 列,两个系列体系结构和使用上有较大的区别,相对而言,Axis1.x 更加稳定,文档也比较齐全, 因此本文内容以Axis 1.x 系列最新版本1.4 为基础。

AXIS第三课:AXIS高级应用,使用Handler来增强Web服务的功能

Apache Axis提供了WSDL2Java和Java2WSDL两个开发工具。 WSDL2Java利用已知的WSDL文件生成服务端和客户端代码。该WSDL文件可以是由合作伙伴提供的,也可以是利用Java2WSDL生成的。Java2WSDL根据已有的Java类文件生成WSDL文件,J...

262

Vivado SDK中LWIP库版本冲突与RTL8211FDI兼容性实战解析

本文深入解析Vivado 2019.1 SDK中LWIP 1.0库与RTL8211FDI千兆PHY芯片的版本冲突问题,并提供实战解决方案。通过手动移植高版本LWIP库、整合第三方驱动及优化BSP配置,有效解决了以太网通信兼容性问题,确保千兆性能稳定运行。

ios99的博客 274

【WebService】第四章、Axis1.4发布WebService

axis axis 1.4 axis axis-wsdl4j 1.5.1 javax.mail mail 1.4.7 本章节主要介绍Axis1.4发布WebService。这里只说明发布相关内容,调用方法后续会说明。 1、下载安装 下载地址:http://archive.apache.org/dist/axis/ 本案例中使用的

zjt921586518的专栏 1030

H3C无线控制器AC与第三方认证系统集成实现企业级Portal短信认证方案

本文详细阐述了如何将H3C无线控制器(AC)与第三方认证系统集成,构建企业级Portal短信认证方案。该方案通过手机号作为临时凭证,实现了访客网络的实名追溯、权限控制与专业体验。文章深入解析了方案原理、H3C AC的关键配置步骤、第三方系统对接要点及短信网关选型避坑指南,为企业提升网络安全管理与访客服务质量提供了完整、可行的实战指导。

a3b4c5的博客 195

SAP MTO模式实战:从库存管理到成本核算的深度解析

本文深入解析SAP MTO(Make-to-Order)模式在制造业中的应用,从库存管理到成本核算的全流程实战技巧。通过对比MTS模式,详细阐述MTO的核心逻辑、库存管理配置、成本核算路径及与PP模块的集成要点,帮助企业实现按单生产的高效管理,优化库存水平和资金占用。

weixin_29204205的博客 709

axis1.4 使用笔记

引自http://ytsho.spaces.live.com/blog/cns!A3DC45268A88C509!215.entry   axis1.4 使用笔记(1) 实验室想把原来做的一些东西打包成web服务的形式供别人调用,因此趁此机会学习了下axis1.4。现在把学习过程中碰到的一些问题记录下来。 1.axis简介:           Axis(Apache...

yydcj的专栏 535

AFSim编译一:windows

AFSim在windows上的编译

Meepo的博客 4738

基于spring boot搭建axis1.4 服务端客户端

3.3 创建webapp/WEB-INF/server-config.wsdd。3.5 修改spring boot启动类,添加注解。1. 创建spring boot项目。3.4 创建WebServlet。打开cmd,进入axis解压目录。2. 引入axis1.4依赖。执行结束后会出现以下内容。4.3 将文件拷贝到项目中。3. 创建service。3.2 创建接口实现类。4.2 创建client。4.4 创建客户端代码。3.1 创建服务接口。

zy1314567的博客 2499

c++ mysql_init 返回无效指针_C++操作MYSQL遇到的一些问题

首先 我使用的是 vcpkg上面是我装的一些库《大大安利vcpkg 安装时一定要使用powershell进行编译装上vcpkg后装ligmariadb这个库,这个对Mysql操作还是挺方便的,然后说一下 在装库时碰到的一些问题1.网络问题1.参考了一下 github上的答案 将下载失败的url拷下来 自己下 然后再重新开始安装《vcpkg在安装时每一个需要下载的 都会提供url-仔细找,2.这个问...

weixin_32176627的博客 680

高熵合金AlCoCrFeNi/金刚石摩擦案例代码

本文介绍金刚石与高熵合金AlCoCrFeNi摩擦的案例。 在之前的文章中,介绍过使用fix indent命令实现虚拟球的摩擦,本文介绍使用金刚石实体球实现高熵合金摩擦的方法。 主要的模拟过程如下: (1)基体建模 建使用原子替换法获得高熵合金初始模型,升温到3000K驰豫后,冷却至300K,获得平衡组织。 (2)摩擦球建模 在高熵合金平衡组织的模型中添加金刚石摩擦球,使用change_box命令扩大box尺寸,添加金刚石摩擦球,并设置混合力场。 (3)摩擦过程 摩擦球下压一定深度后,沿y方向进行摩擦,摩擦

lammps_jiayou的博客 2900

axis1.4使用方法

      虽然axis1.4的说明文档给出了详细的使用说明,不过其中的很多功能我都用不上,因此,如何快速的使用axis的基本功能对于我来说是最重要的,毕竟没有那么多时间深入研究axis。       使用axis大致可以通过两种途径。       直接使用webapp目录下的axis服务,其步骤为:      1.将用户自己写好的源文件编译后放到axis/WEB-INF/cl

teabook的专栏 3124

【EMC专题】为什么芯片规格书ESD性能中看不到MM(机器放电模型)

器件级ESD包括三种类型,HBM人体放电模型、MM机械放电模型和CDM元件充电模型。但在芯片规格书中为什么只见到HBM模型与CDM模型,却没有看到MM模型的数据?

一点硬件 450

axis1.4 java_Axis 1.4 使用指南

根据wsdl开成webservice的java客户 例子:1、执行以下命令生成客户端代码Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl该命令的参数格式从最简单的开始,-uri指定wsdl文件>WSDL2Java-uricurrencyCo...

weixin_42519725的博客 1459

AutoJs调用DeepSeek大模型接口实战教程 AutoJs接入DeepSeek、 DeepSeek API调用 、 手机脚本接入大模型

通过这篇文章,我们用 AutoJs 成功接入了 DeepSeek Chat API。使用发送请求在 Header 里正确携带 API Key从里拿到最终返回结果这样一来,你就可以在 AutoJs 里实现一个智能助手脚本,甚至做更复杂的 AI 自动化工具。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 469

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

使用axis1.4 发布WebService 服务

使用axis1.4发布WebService服务 文章目录使用axis1.4发布WebService服务第一步:新建Maven项目第三步:配置web.xml文件1.1 部署应用并启动1.2 访问应用1.3 配置deploy.wsdd文件1.4生成server-config.wsdd文件1.5将server-config.wsdd文件添加到项目中去第五步:获取wsdl文件第六步:使用SoapUI测试我...

Jack_David的专栏 3082

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

axis1.4 wsdl2java_AXIS1.4 客户端 wsdl2java 使用方法

[使用jetty+axis2实现webservice服务端,且无需使用axis2命令生成服务端代码,只要services.xml配置实现类。工程为gradle工程配置文件在src/main/resources/axis2/WEB-INF/突然之间要用JAVA掉webservice 的接口,用Eclipse 和 axis1.4 结合来自动生成JAVA代码非常方便。1. 下载 axis1.4 相关包...

weixin_30995429的博客 579

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

axis1.4 wsdl2java_Axis1.4客户端 wsdl2java 使用方法

1.MemberManageFacadeLocator svc = new MemberManageFacadeLocator();2.3.MemberManageFacadePortType stub = svc.getMemberManageFacadeHttpPort();4.//调用5.String locationId = stub.queryXXXXNo("xxx", ...

weixin_33507566的博客 286

axis1.4 wsdl2java_使用axis1.4生成webservice的客户端代码

webservice服务端:https://blog.csdn.net/ghsau/article/details/12714965跟据WSDL文件地址生成客服端代码:1、下载 axis1.4 工具2、解压并在同级目录创建 bat 文件,内容如下(双击bat自动生成客户端文件)set axis_lib=C:\software\axis-bin-1_4\axis-1_4\libset java_cm...

weixin_39740272的博客 440

服务端使用Axis2-1.6.3发布webservice服务、客户端使用Axis1.4实现调用

一、准备工作 下载Axis2-1.6.3-war.zip 下载链接 下载Axis1.4相关jar包 下载链接 二、开发Webservice服务端代码 使用环境:myeclipse6.6+tomcat6.0+jdk1.6 1.新建一个web项目MyWebservice  定义接口UserService package com.sjz.service; import

sjz64472418的专栏 1902

Axis1.4 的客户端使用

1.     下载 axis-1.4 :http://ws.apache.org/Axis/ 2.       环境变量的设置AXIS_HOME=D:/axisAXIS_LIB=%AXIS_HOME%libAXISPATH=%AXIS_LIB%activation.jar;%AXIS_LIB%mail.jar;%AXIS_LIB%axis.jar;%AXIS_LIB%w

tanyankai的专栏 831

使用AXIS1.4生成WebService客户端代码

1:首先下载axis1.4项目包 下载地址:https://mirrors.bfsu.edu.cn/apache/axis/axis/java/1.4/axis-src-1_4.zip 2:解压到指定文件夹下 3:在axis-1.4目录下新建一个bat文件(名字随意) 文件内容如下: set Axis_Lib=.\lib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -p c

Navigator_H的博客 1137

使用axis1.4编写Webservice入门

使用axis1.4生成客户端调用web service的大概步骤如下: 新建WEB工程test,然后下载axis1.4,解压将其放于D盘.把axis1.4下的jar包及activation.jar,mail.jar这两个JAR包一并放入新工程下. 编写服务端代码 public class HelloService { public int add(int a,int b){ ...

hngmduyi的专栏 155

新瓶装旧酒:在SpringBoot中使用Axis1.4

在启动类加上注解启动程序,访问wsdl。

m0_59236433的博客 744

使用axis1.4发布WebService简单示例

一、安装axis1.4项目 1-下载axis-bin-1_4.zip并解压到E:\tools\axis-1_4 2-复制E:\tools\axis-1_4\webapps\axis目录到tomcat的webapps目录中 3-启动tomcat后在浏览器中输入http://1...

227
上一篇: 最佳的addEvent是怎样诞生的
下一篇: Java编码浅析
fzm821
博客等级 码龄20年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值