利用AXIS开发Webservice(一) —— 如何发布自己的webservice (目的:学习)

先介绍下本人开发环境吧。 JDK 1.4.2 + Myeclipse 6.0(实在经不起诱惑,尝尝鲜) + Tomcat 5.0.28 + AXIS 1.4。 AXIS 1.4包可以在http://ws.apache.org/axis/ 找到。 假设所有的环境你已经搭好,并且AXIS包也已经下好了。OK, Here we go~

解压axis-bin-1_4.zip这个包可以看到webapps目录,双击进入把里面的AXIS文件夹拷到 %TOMCAT_HOME%\webapps目录下,之后拷贝activation.jar、mail.jar、tools.jar到%TOMCAT_HOME%\webapps\axis\WEB-INF\lib目录下。启动tomcat,访问http://localhost:8080/axis/happyaxis.jsp 如果访问成功,恭喜你!基本的配置你已经做完了。

PS:此处的%TOMCAT_HOME%指的是Tomcat的安装目录,至于那另外的三个jar包,J2EE 1.4库里就能找的到。

现在来说一下最关键的Webservice的发布。AXIS提供了两种发布方式,一种是即时发布(Instant Deployment),另外一种是定制发布(Custom Deployment)。即时发布提供了一种非常简单的webservice的发布方式,但是其中限制太多,因此在实际的开发中定制发布才是首选。这里也将会以定制发布为重点来介绍。

1.即时发布 JWS (Java Web Service) Files - Instant Deployment

即时发布提供了一种非常简单发布方式,发布者只要有Java源代码(也就是.java文件),然后把其后缀名改成jws(也就是 java web service的缩写)拷贝到%TOMCAT_HOME%\webapps\axis目录下即完成了所有的发布工作。AXIS的编译引擎会处理接下来的所有事情。下面是一段示例代码:

java 代码
  1. public class HelloAXIS {
  2. public String Hello(String name){
  3. return "AXIS say hello to " + name;
  4. }
  5. }

把 HelloAXIS.java 文件改成 HelloAXIS.jws 然后拷贝到%TOMCAT_HOME%\webapps\axis目录下,启动Tomcat之后访问 http://localhost:8080/axis/HelloAXIS.jws 如果能看到 Click to see the WSDL这个超链接就说明已经发布成功了,点击进去就可以看到这个Webservice的WSDL描述文件。server端的发布已经完成了,接下来就是编写Client端测试代码了。

java 代码
  1. package com.chnic.test;
  2. import java.net.URL;
  3. import javax.xml.namespace.QName;
  4. import org.apache.axis.client.Call;
  5. import org.apache.axis.client.Service;
  6. public class Test {
  7. public static void main(String[] args) throws Exception{
  8. String targetEendPoint = "http://localhost:8080/axis/HelloAXIS.jws" ;
  9. Service service = new Service();
  10. Call call = (Call) service.createCall();
  11. call.setOperationName( new QName(targetEendPoint, "Hello" ));
  12. call.setTargetEndpointAddress( new URL(targetEendPoint));
  13. String result = (String) call.invoke( new Object[]{ "Robert" });
  14. System.out.println(result);
  15. }
  16. }

测试代码很简单,如果熟悉java反射机制的朋友不用两分钟就能看明白。运行后客户端控制台出现 AXIS say hello Robert。测试成功。果然很简单吧。不过在这简单背后却是以牺牲灵活性为代价的。假如你现在手里只有.class 或者一个jar包,jws就不再能满足你的需求了,最要命的就是即时发布不支持带包的类,这点AXIS的用户手册上写的也很明白。

Important: JWS web services are intended for simple web services. You cannot use packages in the pages, and as the code is compiled at run time you can not find out about errors until after deployment. Production quality web services should use Java classes with custom deployment.

 

2.定制发布 Custom Deployment - Introducing WSDD

比起即时发布定制发布更加烦琐也更复杂,但是换来的却是更大的灵活性,因此在实际项目中定制发布还是不二的选择。定制发布需要你自己编写一个WSDD(Web Service Deployment Descriptor)文件,这个东东类似与XML稍后会做出介绍。废话不多说,我们来看代码:

java 代码
  1. package com.chnic.webservice;
  2. public class HelloWorld {
  3. public HelloWorld(){
  4. }
  5. public String hello(String str){
  6. return "Hello " + str;
  7. }
  8. public int add( int a, int b){
  9. return a + b;
  10. }
  11. }

一个带包的很简单的类,在eclipse下编译后按照包名拷到 %TOMCAT_HOME%\webapps\axis\WEB-INF\classes 目录下。以这个类为例,拷贝完之后这个HelloWorld.class的路径就是 %TOMCAT_HOME%\webapps\axis\WEB-INF\classes\com\chnic\webservice。PS: 如果嫌这样太麻烦,可以另外建一个Java Web工程用myeclipse的发布工具发布到Tomcat之后,整体一次性拷贝到websericve的工程中。

接下来就需要编写发布文件deploy.wsdd。到%TOMCAT_HOME%\webapps\axis\WEB-INF 目录下建立这个文件并在其中添加如下内容:

xml 代码
  1. < deployment xmlns = http://xml.apache.org/axis/wsdd/
  2. xmlns:java = "http://xml.apache.org/axis/wsdd/providers/java" >
  3. < service name = "HelloWorld" provider = "java:RPC" >
  4. < parameter name = "className" value = "com.chnic.webservice.HelloWorld" />
  5. < parameter name = "allowedMethods" value = "*" />
  6. </ service >
  7. </ deployment >

简单的介绍下各个节点的含义,"HelloWorld"当然是这个webservice的名字,后面紧跟的java:RPC指的是服务类型。这里一共有有4种类型,分别是:RPC, Document, Wrapped 和 Message。有兴趣可以看下 org.apache.axis.providers这个包和子包下面的类的API文档。之后的parameter节点第一个当然是指出具体的类,第二个从字面上也很好理解:允许调用的方法。这里的配置告诉引擎可以调用所有的public方法,当然你也可以自己指定。

编写完配置发布文件之后,cmd打开windows的控制台,进入%TOMCAT_HOME%\webapps\axis\WEB-INF目录下键入如下命令

  1. java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd

之后控制台返回Processing file deploy.wsdd 和 Done processing 这两段话即说明发布成功。(此时会在同级目录生成一个server-config.wsdd文件 )在这里的AdminClient是AXIS提供的一个客户端管理工具。至于java.ext.dirs的含义可以去了解一下classloader和JVM类装载机制方面的知识,在这里就不多解释。 还有一点要注意的是在发布的时候Tomcat服务必须处于启动状态,否则就会抛出一堆无法连接的异常信息。发布成功之后你可以通过访问 http://localhost:8080/axis/servlet/AxisServlet 来查看你所有的定制发布的服务。

客户端测试代码
  1. String targetEendPoint = "http://localhost:8080/axis/services/HelloWorld" ;
  2. Service service = new Service();
  3. Call call = (Call) service.createCall();
  4. call.setTargetEndpointAddress( new URL(targetEendPoint));
  5. call.setOperationName( new QName(targetEendPoint, "hello" ));
  6. String result = (String) call.invoke( new Object[]{ "Robert" });
  7. System.out.println(result);
  8. call.setOperationName( new QName(targetEendPoint, "add" ));
  9. Integer res = (Integer) call.invoke( new Object[]{ new Integer( 1 ), new Integer( 2 )});
  10. System.out.println( "The result is: " + res);

运行测试代码,控制台显示 Hello Robert 和 The result is: 3 这两句话,说明发布成功。仔细观察下发现其实除了那个targetEndpoint 之外,即时发布和定制发布的客户端调用代码基本上都是一样的。定制发布的URL可以在WSDL文件里找到。 其实定制发布还有一些高级特性,这个就留到下一篇再说吧。


转载于:https://my.oschina.net/u/141726/blog/407517

【WebService】axis2发布web项目开发webservice和接口调用 前言 进公司实习要对以前的项目进行维修,设计到WebService,接下来对axis2框架发布web项目开发webservice和接口调用进行展开。因为是以前的技术,我真的搜了好久。太难了,不过还是要分享出来 axis2的下载安装 下载地址:http://axis.apache.org/axis2/java/core/download.html 下载这两个即可 bin包:是安装包; war包:用于在tomcat上发布服务; service-plugin插件:用于将服务打包成为后缀名为.aar的文件;cod 阅读详情

相关推荐

Axis2发布以及调用webservice具体实例

Axis2发布以及调用webservice的具体实例,并且很简单的方式。直接copy进行即可。

如何对使用了Axis组件的Java项目进行漏洞利用

近期发现一个高级的漏洞利用姿势——对使用了axis组件的Java项目进行远程命令执行。 IDEA+JavaWeb项目(servlet)+axis-bin-1_4.tar.gz+freemarker-2.3.8.jar+阿里云服务器 一、在本地使用IDEA搭建一个简单的JavaWeb项目 1、GitHub下载一个简单的JavaWeb项目CustomerManagement 2、在阿里云上开启一个Tomcat8的docker,将项目文件传输至Tomcat容器中 将项目的CustomerManageme

lynnez_dd的博客 1708

从Reset到Read:深入解析Rolling Shutter曝光流水线

本文深入解析Rolling Shutter(卷帘曝光)的工作原理,重点探讨Reset和Read信号在图像传感器中的关键作用。通过Reset-Read流水线机制,详细解释了曝光控制、时序调优及运动伪影补偿等核心技术,帮助读者理解卷帘曝光在高速摄影和动态场景中的应用。

weixin_42531925的博客 254

Web 安全测试之信息泄漏测试

消息泄漏测试主要是测试系统泄露敏感信息的风险。敏感信息包括数据库连接地址、账号和口令等信息,服务器系统信息,Web 服务器软件名称、版本,Web 网站路径,除html 之外的源代码,业务敏感数据等。主要包括以下几方面内容:>> 数据库账号密码测试 >>客户端源代码敏感信息测试 >>客户端源代码注释内容测试>> 异常测试 >>不安全的存储测试 >>Web 服务器状态信息测试 >>HappyAxis.jsp 页面测试。

软件测试技术资源分享官 749

如何利用Arcgis进行地统计学分析(三):空间插值方法选择与优化

本文深入探讨了在Arcgis中进行地统计学分析时,如何根据探索性数据分析(EDA)结果科学选择与优化空间插值方法。文章对比了IDW、RBF、克里金等主流方法的适用场景与核心参数,并通过实战案例详解了从数据诊断到模型调优的完整流程,强调结合半变异函数与趋势分析进行“对症下药”,以提升插值结果的精度与可靠性。

weixin_29281915的博客 121

HFSS - 侧馈矩形微带天线设计与仿真

一、设计指标 中心频率:2.45GHz 介质板厚度:1.6mm 介质板相对介电常数:4.4 二、理论计算 辐射贴片宽度w=c2f(εr+12)−12w=\frac{c}{2 f}\left(\frac{\varepsilon_{r}+1}{2}\right)^{-\frac{1}{2}}w=2fc​(2εr​+1​)−21​ 辐射贴片长度L=cfεe−2ΔLL=\frac{c}{f \sqrt{\varepsilon_{\mathrm{e}}}}-2 \Delta LL=fεe​​c​−2ΔL

MaxWei 1万+

webservice安全_Web 安全测试之信息泄漏测试

随着因特网的不断发展,人们对网络的使用越来越频繁,通过网络进行购物、支付等其他业务操作。而一个潜在的问题是网络的安全性如何保证,一些黑客利用站点安全性的漏洞来窃取用户的信息,使用户的个人信息泄漏,所以站点的安全性变得很重要。Web 系统的安全性测试包括以下内容:(1)Web 漏洞扫描(2)服务器端信息测试(3)文件和目录测试(4)认证测试(5)会话管理测试(6)权限管理测试(7)文件上传下载测试(...

weixin_39774445的博客 1145

从模组到集装箱:手把手拆解一个储能BMS的软硬件架构设计与通信组网

本文深入解析储能BMS的软硬件架构设计与通信组网,从电芯采样到系统集成的全链条技术实现。详细介绍了三级硬件架构(AFE、CMU、BMU)的设计要点,以及软件分层实现中的驱动层、应用层核心算法和通信协议栈。通过实战案例分享CAN网络搭建、调试工具链和系统验证测试经验,为储能系统开发提供实用指导。

weixin_30752699的博客 464

利用AXIS开发Webservice(一) —— 如何发布自己的webservice

阅读更多 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;因为工作关系需要从事Webservice的开发工作,公司的webserivce是由Apache的AXIS来实现的,以前对这个了解不算多,不过经过几天的研究,特奉上小小的心得一篇。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 先介绍下...

ZhengYanFeng1989的博客 1997

优雅谈大模型:“System2”与“System 1”

研究人员探索了三种System 2方法——RaR、S2A 和 BSM,这些方法已经成功提炼到新的LLM,这个新的模型与System 1相比,产生了更好的结果,而且成本低于System 2。然而这种方法是有局限性,只能适用于特定的任务。

鲁班模锤 5160

Ceph入门到精通-存储桶通知

这 通知还可以根据前缀的匹配项过滤掉事件,并且 (1) 键的后缀,(2) 附加到对象的元数据属性, 或 (3) 对象标签。在此模式下,操作仅在以下之后确认(确认) 通知将发送到主题的已配置终端节点。这意味着 通知的往返时间(发送 通知主题的终端节点以及接收 确认)被添加到操作本身的延迟中。要更新主题,请使用用于创建主题的相同命令(但在 更新时,使用现有主题的名称和不同的终端节点值)。端口:对于未加密的连接,默认为 5672,对于未加密的连接,默认为 5671 SSL 加密连接。(默认情况下,这是“假的”。

隔壁老瓦的专栏 1131

Axis1.4发布WebService

版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 本章节主要介绍Axis1.4发布WebService。这里只说明发布相关内容,调用方法后续会说明。 1、下载安装       下载地址:http://archive.apache.org/dist/axis/       本案例中使用的版本 :http://archive.

下雨天__的专栏 5258

rk3568 点亮双LVDS 屏

承接文章《rk3568点亮LCD(lvds)》中仅仅只能使用亮单LVDS;经过厂商的努力,陆续发布新补丁。目前支持双lvds显示,缺憾是需要自己额外移植相关补丁。受限于通信频率和VOP编码能力,支持最大分辨仍然是1920x1080、60fps。

weixin_35723192的博客 3008

使用Axis2实现WebService的发布和调用

一、Axis2简介: Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术。在本文中主要介绍了如何使用Axis2开发一个不需要任何配置文件的WebService,并在客户端使用Java调用这个WebService。 二、A

无羁之风的专栏 2万+

手把手教你学基带SOC芯片(4.2)--基带soc芯片的存储器设计

基带 SoC 中的存储器设计需要综合考虑功耗、成本和性能等因素。SRAM 适合高速缓存,DRAM 适合主内存,Flash 存储器适合非易失性存储。通过优化存储单元设计、阵列布局和外围电路,可以提高存储器的性能和效率。

MHD0815的博客 350

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

使用axis2进行WebService的开发

使用axis2进行WebService的开发 Apache Axis2 是 Apache Axis SOAP 项目的后继项目。此项目是 Web 服务核心引擎的重要改进,目标是成为 Web 服务和面向服务的体系结构(Service-Oriented Architecture,SOA)的下一代平台。 axis2 WebService开发分为服务端开发与客户端开发,服务端开发为对外提供服务,客户

Hsing Hsu's Blog 4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

axis发布webservice

用axis来发布webservice 首先下载必须的jar包 分别是:axis.jar    axis-ant.jar   commons-discovery-0.2.jar    commons-logging-1.0.4.jar   wsdl4j-1.5.1.jar  wsdl4j-1.6.2.jar 下载完jar包后则在web.xml中配置servlet拦截器: Axi

chengxu2011的专栏 5290

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

webService总结(四)——使用axis2发布和调用webService

准备工作 Axis2 官网 http://axis.apache.org/  下载axis2相关资料 其中 axis2-1.6.2-bin.zip文件中包含了Axis2中所有的jar文件, axis2-1.6.2-war.zip文件用于将WebService发布到Web容器中。最后两个是axis2在eclipse中的插件。   大概说说这几个文件如何使用。 1、解压axis2

梦想起飞的地方,必须用心去经营 3877

Java WebService学习笔记 - Axis(一)

标题title

成功不必在我,然功力必不唐娟 4289

webservice用axis2发布服务端

webservice作为较早的不同程序访问技术,已经有一段时间了,它基于xml数据通信,在最新的rpc远程调用技术是json,并且这个也会成为主流,但是最为最早的rpc技术webservice,还是有很多用处的,一般政府系统常常采用webservice。            在webservice里有许多实现服务端和客户端技术,如cxfire,xfire,axis,axis2,现在基本是cxf

weixin_37610156的博客 3341

【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

java使用Axis开发WebService 步骤

使用Axis开发WebService  1.下载并安装Axis  1)登陆http://axis.apache.org/axis/站点下载Axis     下载axis-bin-1_4.zip,解压后的目录结构如下:           2)安装Axis     首先要成功的安装Tomcat,然后将下载的Axis目录下面的webapps中的axis的     整个文件夹全部拷贝到T

Mokily的专栏 874

使用Axis2方式发布webService的三种方式

1、简单的pojo方式: 1.1 功能描述 在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中所有的public方法将被发布成WebService方法。 1.2 示例 1.2.1 创建POJO类 下面我们来实现一个简单的POJO,代码如下: public class Sim

zhangmeng_07的博客 2万+

Axis2.x WebService开发

Axis2.x WebService开发     最近因为公司项目的需要,需要做接口让其它公司开发的系统来调用我们的接口获取数据,所以要开发接口,但是以前有人开发过接口通过Axis2.x 开发过接口,所以我必须也要用这种方式来开发接口,这样才能把接口发布在一起。     webservice开发有很多种方式,我这只是其中的一种开发方式,我环境搭建起来就花了好久的时间,在这里我会写出来,希望你们

lizhongstu的专栏 1141

Idea发布Axis2服务端、创建WebService客户端和spring整合Axis2框架发布服务?

一、使用默认的WEBSERVICE服务 1 新建项目 2 选择 java-&gt;Java EE(由J2EE 8改为J2EE 7的版本,解决创建WEBSERVICE项目无WEB.XML的问题) 3 创建WEBSERVICE服务端 4 项目结构如下 5 生成wsdl文件 6 修改服务访问地址 7 生成WSDL文件格式如下 8 选择项目鼠标右键-&gt;open...

qq_42246139的博客 6060
上一篇: JMS简介
下一篇: 简单介绍一下asmack中常用到的方法属性
chuchen7021
博客等级 码龄11年 2粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值