Axis的基础测试

关于axis怎样加入Header信息 这几天遇到一个需求,要调用cxf发布的一个webservice,但客户端调用时需要传入soapenv:Header参数,xml格式如下:<soapenv:Envelope >   <soapenv:Header>  <tns:RequestSOAPHeader  xmlns:tns="http://webservice.xxx.com/" >      &l... 阅读详情

Axis的基础测试

一.如何搭建Axis2的开发环境

1.下载和安装Java (JDK1.4以上)。设置JAVA_HOME环境变量。
2.下载Axis2并解压到目标文件夹。
3.拷贝axis2.war文件到你的Servlet引擎的webapps目录。
4.设置AXIS2_HOME环境变量到步骤3的axis2.war所在文件夹。
大部分情况下还需要为我们的服务建立一个WSDL文件,Axis2的Java2WSDL可以用来生成一个WSDL。如果要从一个Java类来生成一个WSDL,可按照以下步骤:
a.建立和编译你的Java类
(Windows)
%AXIS2_HOME%\bin\java2wsdl -cp . -cnsamples.quickstart.service.pojo.StockQuoteService -of StockQuoteService.wsdl
(Linux)
$AXIS2_HOME/bin/java2wsdl -cp . -cn samples.quickstart.service.pojo.StockQuoteService-of StockQuoteService.wsdl
b.使用命令行来生成WSDL:
生成命令行以后,你就可以按照你的需要进行修改,例如你可能需要添加一个定制的错误处理,或者改动生成的元素的名字。

二.Axis2是什么?

A. Axis2是一个web服务/SOAP/WSDL引擎,它继承Apache Axis广泛使用的SOAP堆栈,它有两个实现版本-----java和C。它是主流的webservice开发框架之一,实现方便,安全的,可靠的。它支持热部署,以及异步webservice的调用等。

B.要求java版本,jdk至少是1.5及以上版本。

C.传输协议:HTTP,SMTP,JMS,TCP

D.支持规范:

① SOAP 1.1 和 1.2。

 ② 消息传输优化机制(MTOM),优化的XML包装(XOP)和SOAP带附件。

③ WSDL 1.1中,包括SOAP和HTTP绑定,(本身支持WSDL1.1和2.0)。

④ WS-Addressing。一种将消息寻址信息综合到Web services消息中的标准。

⑤ WS-Policy。Web 服务策略框架。

⑥ SAAJ 1.1 。(SOAP with Attachments API for JAVA SAAJ)是在松散耦合软件系统中利用SOAP协议实现的基于XML消息传递的API规范。顾名思义,SAAJ支持带附件的SOAP消息。

 

  

三.复杂对象在webservice之间的传输:

在实际的应用中,不仅需要使用WebService来传递简单类型的数据,有时也需要传递更复杂的数据,这些数据可以被称为复合类型的数据。数组与类(接口)是比较常用的复合类型。在Axis2中可以直接使用将WebService方法的参数或返回值类型声明成数组或类(接口)。但要注意,在定义数组类型时只能使用一维数组,如果想传递多维数组,可以使用分隔符进行分隔,如下面的代码所示:

String[] strArray = new String[]{ "自行车,飞机,火箭","中国,美国,德国", "超人,蜘蛛侠,钢铁侠" } ;

上面的代码可以看作是一个3*3的二维数组。

在传递类的对象实例时,除了直接将数组类型声明成相应的类或接口,也可以将对象实例进行序列化,也就是说,将一个对象实例转换成字节数组进行传递,然后接l收方再进行反序列化,还原这个对象实例。

 

四.调用webservice接口的方法:

参考《java_调用Webservice接口.doc》

 

五.Axis2发布有二种方法 :

一)在项目里发布;(特点:灵活,可调试)

二)打包成aar文件发布;(特点:不方便调试)

 

六.同步调用WebService和异步调用WebService的区别:

一:同步调用

    一个同步操作会阻塞整个当前的进程,直到这个操作完成才能执行下一段代码

 二:异步调用

    不会阻塞启动操作的调用线程,调用程序必须通过轮流检测,或者等待完成信号来发现调用的完成

八.WebService中的方法是否允许重载?

WebService中不支持使用方法的重载.

九.为什么WebService中不支持方法的重载?

WebService中不支持方法的重载,这还得从WebService的工作机制中说起,当客户端调用一个WebService的方法时,首先要将方法名称和需要传递的参数包装成XML,也就是SOAP包,通过HTTP协议传递到服务器端,然后服务器端解析这段XML,得到被调用的方法名称和传递过来的参数,进而调用WebService相应的方法,方法执行完毕后,将返回结果再次包装为XML,也就是SOAP响应,发送到客户端,最后客户端解析这段XML,最终得到返回结果,关键在于服务器端解析XML时无法识别重载的方法,WebService只认方法的名称,而且两个方法的名称相同,服务器端不知道该调用哪个相应的方法

十.如何解决WebService中方法的重载?

可以通过MessageName属性消除由于多个相同的名称造成的Web服务无法识别的问题,因为MessageName属性使得Web服务能够确定唯一别名的重载方法,默认时候是方法本身的名称,当指定MessageName属性后,SOAP将反映MessageName的值,而不是方法名称本身,所以这就解决了WebService中不支持方法的重载

十一.java发布webService要注意的地方

如果发布在公网上的话,要注意添加用户名和密码的验证。

1. POJO类不能使用package关键字声明包。

       2. Axis2在默认情况下可以热发布WebService,也就是说,将WebService的.class文件复制到pojo目录中时,Tomcat不需要重新启动就可以自动发布WebService。如果想取消Axis2的热发布功能,可以打开<Tomcat安装目录>\webapps\axis2\WEB-INF\conf\axis2.xml,找到如下的配置代码:

       <parameter name="hotdeployment">true</parameter>

       将true改为false即可。要注意的是,Axis2在默认情况下虽然是热发布,但并不是热更新,也就是说,一旦成功发布了WebService,再想更新该WebService,就必须重启Tomcat。这对于开发人员调试WebService非常不方便,因此,在开发WebService时,可以将Axis2设为热更新。在axis2.xml文件中找到<parameter name="hotupdate">false</parameter>,将false改为true即可。

       3. 在浏览器中测试WebService时,如果WebService方法有参数,需要使用URL的请求参数来指定该WebService方法参数的值,请求参数名与方法参数名要一致,例如,要测试getGreeting方法,请求参数名应为name,如上面的URL所示。

       4. 发布WebService的pojo目录只是默认的,如果读者想在其他的目录发布WebService,可以打开axis2.xml文件,并在<axisconfig>元素中添加如下的子元素:

       <deployer extension=".class" directory="my" 

              class="org.apache.axis2.deployment.POJODeployer"/>

       上面的配置允许在<Tomcat安装目录>\webapps\axis2\WEB-INF\my目录中发布WebService。例如,将本例中的SimpleService.class复制到my目录中也可以成功发布(但要删除pojo目录中的SimpleService.class,否则WebService会重名)

十二.java调用webService要注意的地方

1. 客户端代码需要引用很多Axis2的jar包,如果读者不太清楚要引用哪个jar包,可以在Eclipse的工程中引用Axis2发行包的lib目录中的所有jar包。

       2. 在本例中使用了RPCServiceClient类的invokeBlocking方法调用了WebService中的方法。invokeBlocking方法有三个参数,其中第一个参数的类型是QName对象,表示要调用的方法名;第二个参数表示要调用的WebService方法的参数值,参数类型为Object[];第三个参数表示WebService方法的返回值类型的Class对象,参数类型为Class[]。当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{}。

       3. 如果被调用的WebService方法没有返回值,应使用RPCServiceClient类的invokeRobust方法,该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同。

       4. 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名,也就是<wsdl:definitions>元素的targetNamespace属性值,下面是SimpleService类生成的WSDL文件的代码片段:

       <?xml version="1.0" encoding="UTF-8"?>
       <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http:/  /org.apache.axis2/xsd" 
       xmlns:ns
="http://ws.apache.org/axis2" xmlns:wsaw="http://www.w3.org/2006/05/a   ddressing/wsdl" 
       xmlns:http
="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/   2001/XMLSchema" 
       xmlns:mime
="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schema   s.xmlsoap.org/wsdl/soap/" 
       xmlns:soap12
="http://schemas.xmlsoap.org/wsdl/soap12/"
 
       targetNamespace
="http://ws.apache.org/axis2"
>
              <wsdl:types>
                      
              </wsdl:types>
                      
       </wsdl:definitions>

十三.会话(Session)管理

1. 使用MessageContext和ServiceContext获得与设置key-value对。

2. 为要进行Session管理的WebService类所对应的<service>元素添加一个scope属性,并将该属性值设为transportsession。

3. 在客户端使用setManageSession(true)打开Session管理功能。

十四.将Spring中的装配JavaBean发布成WebService需要注意以下几点:

       1. 由JavaBean编译生成的.class文件需要放在WEB-INF\classes目录中,或打成.jar包后放在WEB-INF\lib目录中,而WEB-INF\services目录中的.aar包中不需要包含.class文件,而只需要包含一个META-INF目录,并在该目录中包含一个services.xml文件即可。

       2. services.xml的配置方法与前几篇文章的配置方法类似,只是并不需要使用ServiceClass参数指定要发布成WebService的Java类,而是要指定在applicationContext.xml文件中的装配JavaBean的名称(SpringBeanName参数)。

       3. 在services.xml文件中需要通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier类来获得Spring的ApplicationContext对象。

 

Axis库在Java中的Web服务创建与应用指南 Apache Axis是一个用于构建和部署Web服务的强大框架。它支持SOAP 1.1和SOAP 1.2协议,能够与现有的Web服务标准无缝集成。Axis作为Apache Jakarta项目的一部分,被广泛用于Java环境下的Web服务开发,特别是在企业级应用中,它通过提供代码生成和运行时环境简化了Web服务的开发和部署。Web服务是一种使用HTTP协议,通过标准的XML消息交换数据的Web应用程序。它的设计目标是实现不同平台、不同系统之间的互操作性。 阅读详情

相关推荐

Axis1框架下的Web服务发布教程

Apache Axis1 是一个广泛使用的开源框架,用于开发和部署Web服务。它基于SOAP协议,允许开发者在Java环境中创建、发布以及使用Web服务。Axis1 的灵活性和易用性使其成为那些希望通过Java编写Web服务的开发者的理想选择。Web服务是一种软件系统,其目的是实现不同应用间的网络互操作性。它以网络为基础,允许应用程序在不同平台上通过使用标准的网络协议进行交互。Web服务通常使用HTTP协议进行通信,确保了其跨平台和跨语言的特性。

weixin_34413326的博客 863

利用axis测试接口(通过ESB推送数据给其他的系统)

public class GetItemJFTest {     public static void main(String[] args) {         axis();     }     // 通过axis方式调用webservice接口     public static void axis() {         String result = "";         Strin...

Sun_of_Rainy的博客 1131

webservice接口测试

通过WSCaller.jar工具进行测试: 前提:知道wsdl的url。 wsCaller可执行程序的发布方式为一个wsCaller.jar包,不包含Java运行环境。你可以把wsCaller.jar复制到任何安装了Java运行环境(要求安装JRE/JDK 1.3.1或更高版本)的计算机中,用以下命令运行wsCaller: java -jar wsCaller.jar 使用wsCaller软件的方法非常简单,下面是wsCaller的主界面: 首先在WSDL Location输入框中输入你想调用或想测试的Web Service的WSDL位置,如“http://www.somesite.com/axis/services/StockQuoteService?wsdl”,然后点“Find”按钮。wsCaller就会检查你输入的URL地址,并获取Web Service的WSDL信息。如果信息获取成功,wsCaller会在Service和Operation下拉列表框中列出该位置提供的Web Service服务和服务中的所有可调用的方法。你可以在列表框中选择你要调用或测试的方法名称,选定后,wsCaller窗口中间的参数列表框就会列出该方法的所有参数,包括每个参数的名称、类型和参数值的输入框(只对[IN]或[IN, OUT]型的参数提供输入框)。你可以输入每个参数的取值。

Axis搭建加漏洞RCE(含CVE-2019-0227)

Axis漏洞RCE,包含CVE-2019-0227

GalaxySpaceX的博客 3964

WebService接口测试工具

可以使用这个工具来测试WebService接口,使用起来很方便也很简单

AXIS 入门测试

NULL 博文链接:https://greatwqs.iteye.com/blog/1762823

Axis java WebService测试小例子

从Apache官方下载axis,我用的是axis2-1.2这个版本,最新是axis2-1.3的版本,但是1.3需要JDK1.5的支持,我本机是JDk1.4,所以我用axis2-1.2作为ws(web service)的服务。 把下载的war包放到tomcat的webapps目录,启动tomcat服务,在浏览器地址栏输入http://localhost:8080/axis2/(根据每个人的to

smshuxue的专栏 1671

Zemax实战:5步搞定牛顿望远镜光学设计(附球差优化技巧)

本文详细介绍了在Zemax OpticStudio中构建高精度牛顿望远镜光学系统的5步实战流程,包括初始参数设置、球差优化、折叠镜与遮光面配置等关键步骤。特别针对球差问题,提供了将主镜圆锥系数设为-1的优化方案,有效消除轴上弥散斑。通过3D视图和MTF分析验证,该系统可实现接近衍射极限的成像质量,适合天文观测等应用场景。

x8y9z0的博客 929

axis调用webservice接口_Python测试webservice接口入门基础

测试webservice接口的方法有很多种(比如通过SoapUI就不错),但是习惯用python做测试的朋友,可能下面相对而言会更受欢迎。1准备环境安装方式一,离线安装webservice接口测试,需要用到suds库,网上百度的各种suds库都没法安装,我这里的Python3.5版本,所以安装不了那些suds库也没有办法在线安装,所以这里就提供一个大家都可用的方法和suds库。1)下载s...

weixin_39861734的博客 190

避开LLC环路设计三大坑:从K因子法看谐振频率选择与相位裕度优化

本文深入剖析LLC谐振变换器环路设计中易犯的三大误区,重点阐述如何运用K因子法优化谐振频率选择与相位裕度。文章通过实际案例,解析了工作区域选择、右半平面零点规避及补偿器相位基准等关键问题,为工程师提供了一套系统性的稳定环路设计方法,确保电源在动态负载下可靠工作。

qsc9012345的博客 264

省三医院新门诊大楼网络安全建设项目实施方案

为了响应国家建设数字医疗,构建医联网、医共体的号召,新门诊大楼现有计算机网络,实现各门诊室、药房、医学影像科室及后勤科室的终端数据互通。在互联网出口以三层模式部署两台防火墙,作为连接公网的出口设备;出于等保合规和自身业务安全的考虑,现需要该网络上通过网络安全设备实现安全建设。公网出口防火墙,配置攻击防御策略,防御互联网上的病毒进入内网。公网出口防火墙配置攻击防御策略,防御外网对内网的入侵行为。服务器取得边界防火墙,配置攻击防御策略,入侵防御策略。公网出口防火墙配置入侵防御策略,防御外网对内网发起的D。

m0_63645854的博客 2015

JDK tomcat Axis的安装及使用

<br /><br />一.简介 什么是SOAP?SOAP是一个应用程序间的基于XML的通信工具和规范.SOAP最初由MicroSoft和Userland公司开发,已经演化了好几个版本,当前的版本SOAP1.1正飞速发展.W3C的XML协议工作组正努力把它发展为一个真正的开发的标准.SOAP1.2草案已经发布,它能澄清 1.1版规范的容易混淆的地方.<br />什么是Axis?Axis总体上是一个SOAP引擎,但又不仅仅是个引擎,它还:1)是一个简单的独立的服务器2)是一个可插入到servlet引擎(如To

sontiago的专栏 447

nRF52382低功耗蓝牙应用开发之入门教程-软件烧录

准备工作在上一篇文章讲过了,这里就讲讲nRFgo studio的使用 硬件准备: J-link:2线 供电:3.3V 如下图打开nRFgo studio界面介绍, 2、如果J-link正常,如下图 3、如果蓝牙芯片正常 4、烧录过程,如果蓝牙芯片之前有烧录过程序,需先点擦除,再点烧录 5、烧录代码路劲,例如 F:\nRF\SDK\nRF5_SDK_15.2.0_...

LinQiPing233的博客 1946

AXIS安装配置

一、Axis简介1. 什么是SOAPSOAP是一个基于XML的用于应用程序之间通信数据编码的传输协议。最初由微软和Userland Software提出,随着不断地完善和改进,SOAP很快被业界广泛应用,目前完全发布版本是1.1。在其发展过程中,W3C XML标准工作小组积极促成SOAP成为一个真正的开放标准。在写作此文档之时,SOAP1.2草案已经发布,1.2对1.1中相对混乱的部分做了

4383

LEC/FORMAL --- PARTIII debug

lec(logic equivalence checking)又叫formal check,是对ic design的综合,PR前后的设计进行逻辑对比检查的工具/手段,保证综合不改变rtl原始的logic function。目前用的较多的就是C家的formal工具。接下来介绍一下lec过程中遇到的问题以及debug手段。...

sinat_27691203的博客 7711

Qt实现窗口等比例缩放

在Qt中,实现窗口的等比例缩放是一个常见的需求。通过对窗口的尺寸进行调整,使得窗口的内容在缩放过程中保持相同的比例,可以提供更好的用户体验。通过以上的代码,我们实现了一个可以等比例缩放的Qt窗口。在调整窗口大小时,窗口中的标签和按钮将按比例缩放,保持内容的比例不变。首先,我们需要在Qt中创建一个窗口,并设置其内容。在该事件中,我们将根据窗口的新尺寸计算出合适的比例因子,并将其应用到窗口的内容上。现在,我们将添加功能,使得窗口可以等比例缩放。最后,我们将缩放因子应用到窗口中的标签和按钮上,调整它们的尺寸。

2301_79330511的博客 3959

AXIS安装和测试

 一、Axis简介1. 什么是SOAPSOAP是一个基于XML的用于应用程序之间通信数据编码的传输协议。最初由微软和UserlandSoftware提出,随着不断地完善和改进,SOAP很快被业界广泛应用,目前完全发布版本是1.1。在其发展过程中,W3CXML标准工作小组积极促成SOAP成为一个真正的开放标准。在写作此文档之时,SOAP1.2草案已经发布,1.2对1.1中相对混乱

ictliujie的专栏 775

使用HART Server PC软件进行HART设备的组态、调试和分析的完整指南

HART协议是一种用于工业自动化中的双向通信协议,能够在4-20mA模拟信号的基础上叠加数字信号,从而实现设备的远程监控和管理。HART协议兼具模拟和数字通信的优点,被广泛应用于过程控制系统中。设备组态:通过软件可以对HART设备进行组态,配置设备参数。设备调试:支持设备的在线调试和故障诊断,方便快速解决问题。数据分析:提供设备运行数据的实时监控和历史数据分析功能。报表生成:支持生成各类报表,便于数据记录和管理。

qq_38334677的博客 2471

集成axis开发webservice

[b]一、基础知识[/b] Web Service主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。 Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。 Axis支持三种web se...

log_cd的专栏 202

数据分享】中国12.5m数字高程模型(DEM)数据(分省)

数据名称:ALOS 12.5m DEM 数据。数据名称:ALOS 12.5m DEM 数据。数据大小:61.5GB。空间分辨率:12.5m。数据大小:61.5GB。空间分辨率:12.5m。

JData_Engineer的博客 5390

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

AXIS全攻略

一、Axis简介1. 什么是SOAPSOAP是一个基于XML的用于应用程序之间通信数据编码的传输协议。最初由微软和Userland Software提出,随着不断地完善和改进,SOAP很快被业界广泛应用,目前完全发布版本是1.1。在其发展过程中,W3C XML标准工作小组积极促成SOAP成为一个真正的开放标准。在写作此文档之时,SOAP1.2草案已经发布,1.2对1.1中相对混乱的部分做了

TomyGuan的专栏 1222

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

axis2 webservice入门学识(JS,Java,PHP调用实例源码)

来源:http://www.myexception.cn/web/952419.html   axis2 webservice入门知识(JS,Java,PHP调用实例源码) 背景简介 最近接触到一个银行接口的案子,临时需要用到axis2 webservice。自己现学现总结的一些东西,留给新手。少走弯路。 Axis2简介 ①采用名为 AXIOM(AXIs Object Model)的新

小强快跑~~ 1599

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

axis1.4 websercice服务客户端开发

1、由于项目要用到axis1.4搭建服务端,而现在都流行axis2,相比是较老的技术了。这几天刚好有时间看看,入门入门。 2、由于通信双方都是基于soap协议,而soap是基于http传输的。所以先研究研究什么是soap协议,在网上找了很多文档,写的有点乱,选了一个写得比较好。 WebService_SOAP 下载地址:http://download.youkuaiyun.com/detail/

cuker919的专栏 3076

Eclipse+Axis2发布WSDL类型的Web Service并用SoapUI测试调用(2021.11.15)

Eclipse创建Web Service 2021.11.91、Web Service简介UDDIWSDLSOAP2、Eclipse新建Web Service安装ODE服务器Eclipse安装Axis2Eclipse安装BPEL 1、Web Service简介 http://help.eclipse.org/2021-09/index.jsp UDDI WSDL SOAP 2、Eclipse新建Web Service 安装ODE服务器 Eclipse安装Axis2 Eclipse安装BPEL ...

I have a dream, here my dreams come true! 2226

numpy学习|average()函数基础进阶

至此,完成了对numpy.average()函数主要参数的探索,掌握了相关参数的使用技巧。

专注python+工程实践的热心婶子 1026
上一篇: 跟第三方合作方沟通要注意的地方
下一篇: 技术经理在项目开发中的职责
honsty2010
博客等级 码龄15年 1粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值