应用Apache Axis2 实现Webservice发布

WebService使用axis2框架发布服务与获取服务 发布服务 老版:使用jdk自带的wsimport开启@webservice注解 新版:使用axis2提供的插件发布服务 1.去apache官网下载Axis2,点击Projects 找到Axis2的产品,点击进去 选择你所需要下载的进行下载,我这几个全部下载了。 解压其中的后缀名为war的,然后复制其中的axis2.war(apache官方写好的管理发布服务的项目) 2.然后启动Tomca... 阅读详情

由于最近需要做webservice接口,所以google了一下,发现Apacle有个Axis2插件,一直觉得Apache的插件还是蛮好用的,于是决定应用Axis2来实现Webservice,第一次做webservice,呵呵有很多不懂的地方,所以记录下来留着以后备用。

首先访问Apache官网http://axis.apache.org/axis2/java/core/download.cgi下载Axis2最新的1.6.2的两个文件,axis2-1.6.2-bin和axis2-1.6.2-war,我这里用到了axis2的eclipse插件,所以同时下载了 axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip两个eclipse插件。

下载完这几个文件之后,需要将axis2的war文件复制到tomcat的wabapps目录下,重启Tomcat服务,浏览器输入axis2服务地址http://localhost:8082/axis2/,如果axis2服务没有问题,页面会显示如下效果,说明服务启动成功。

接下来在Eclipse中安装axis2插件,将下载的axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip文件解压,解压出来就是2个jar包,

将这两文件复制到Ecilpse的 plugins文件夹下,重启Eclipse,配置axis2的运行环境,如图,图中的路径F:\axis2-1.6.2就是下载的axis2-1.6.2-bin的解压目录。



点击file->new others->,如果插件安装成功,在窗口的列表中会显示如下的axis2的两个选项,



做好以上准备工作之后,接下来就要开始创建Webservice了。首先创建一个java工程,并创建一个Java类,很简单的一个类,只包含一个公共方法,如下

package com.jax.test;

import com.jax.db.DataBase;

public class TestService {

	public String getData(String id,String name){
		return DataBase.getData(id,name);		
	}
	
}

在服务类TestService中,有一个getData方法,最后发布服务之后,该方法就是暴露给外界访问webservice接口的方法。包含2个String参数和一个返回值,在方法中,

通过DataBase类的getData方法访问了Oracle数据库并返回数据。

编写完服务类之后,通过axis2的插件将服务打包成aar文件,复制到tomcat的webapps的axis2目录下的WEB-INF下的services文件夹下,打包过程如下

点击file->new others-> 在窗口中选择Axis2 Service Archiver选项,然后下一步如图,该步骤是选择class类的根目录,在bin目录下,包含了2个Class类文件,

com.jax.test.TestService和com.jax.db.DataBase,因为在TestService服务类中,关联了DataBase类,所以要选择根目录。



点击next ->如图所示 勾选Skip WSDL


点击next->选择服务所需的jar包,在这里因为连接了oracle数据库,所以选择了orache的驱动包


点击next-> 如图,勾选 图中的选项。


点击next-> 如图,输入服务名和服务类的全路径名,选择Search declare methods only,会显示要发布的服务方法。

输入打包aar文件的名称和输出路径,最后打包完成。





最后将打包好的aar文件复制到tomcat 的axis2的WEB-INF的services目录下,重启Tomcat服务,如图,发布的MyService服务



这样一个简单的webservice服务就发布完成了,有一点需要注意的是,和这个服务类相关的类需要打成jar包拷贝到axis服务的WEB-INF的lib目录下。




用Axis2创建调用webservice的客户端,创建java工程,引入以下axis2相关的jar包

axiom-api-1.2.11.jar
axiom-impl-1.2.11.jar
axis2-adb-1.5.5.jar
axis2-kernel-1.5.5.jar
axis2-transport-http-1.5.5.jar
axis2-transport-local-1.5.5.jar

commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-io.jar
commons-logging-1.1.1.jar
httpcore-4.0.jar
mail-1.4.jar
neethi-2.0.5.jar
wsdl4j-1.6.2.jar
XmlSchema-1.4.3.jar


创建调用服务类,应用axis2提供的类实现调用服务,代码如下:

package com.test;

import java.util.Iterator; 
import javax.xml.namespace.QName; 
import org.apache.axiom.om.OMAttribute; 
import org.apache.axiom.om.OMElement; 
import org.apache.axis2.AxisFault; 
import org.apache.axis2.addressing.EndpointReference; 
import org.apache.axis2.client.Options; 
import org.apache.axis2.rpc.client.RPCServiceClient; 

public class CallWebservice { 

public String getData(String id,String name) { 
	String result=null; 
		
	//webService的调用地址 	
	String srvcUrl = "http://localhost:8082/axis2/services/MyService"; 
	//操作的命名空间+“:”+操作名 
	QName qname = new QName("http://test.jax.com", "getData"); 
	//传递的参数对象集
	Object param[] = new Object[] { id,name }; 
	try { 
		//实例化远程服务调用客户端对象 
		RPCServiceClient client = new RPCServiceClient(); 
		//实例化Options对象
		Options options = new Options(); 
		//设置Options对象的连接终端地址
		options.setTo(new EndpointReference(srvcUrl)); 
		//设置Options对象的操作事件对象 
		options.setAction("urn:getData"); 
		//为远程服务调用客户端对象设置Options子对象 
		client.setOptions(options); 
		//传递参数,调用服务
		 OMElement element = client.invokeBlocking(qname, param); 
		
		result=element.getFirstElement() .getText(); 
	
	} 
	catch (AxisFault e) { 
		e.printStackTrace(); 
	} 
	return result; 
} 

//测试 
public static void main(String[] args) { 

	CallWebservice client=new CallWebservice(); 
	
	String rs = client.getData("1","张三"); 
	 System.out.println(rs); 
} 
} 


代码说明请看注释。


还有一种调用方式是通过axis2工具生成stub类,然后调用webservice,


打开cmd命令窗口,进入axis2的bin目录,输入命令: wsdl2java -urihttp://localhost:8082/axis2/services/MyService?wsdl -p client -s -o stub

如图


 其中-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。在执行完上面的命令后,读者就会发现在当前目录下多了个stub目录,在."stub"src"client目录可以找到一个MyServiceStub.java文件,该文件复杂调用WebService,然后可以在程序中直接使用这个类,通过stub调用webservice 代码如下:

package client;

import java.rmi.RemoteException;

import org.apache.axis2.AxisFault;

import client.MyServiceStub.GetDataResponse;

public class CallService {

	public static void main(String[] args){
		//MyServiceStub中生成了一个getData(GetData getData)的方法
		//该方法的内部实现了调用发布的webservice服务中的getData()方法
		
		//首先创建参数对象
		MyServiceStub.GetData getData = new MyServiceStub.GetData();
		//给参数赋值
		getData.setId("1");
		getData.setName("张三");
		
		try {
			//实例化stub类
			MyServiceStub stub = new MyServiceStub();
			try {
				//调用服务方法
				GetDataResponse rs = stub.getData(getData);
				//返回值为String 
				String str = rs.get_return();
				System.out.println(str);
			} catch (RemoteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (AxisFault e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}





AXIS2+Myeclipse实现WebService数据库存储简单实例 真的是好久不碰WebService都忘干净了,这次的项目确实是个挑战,每天遇到很多问题,一部分能就解决就解决问题,不能就得绕过这个问题。百度上很多方法都不能解决我的问题,真是花了不少时间,希望这篇详细讲解可以帮到像我之前一样,到处苦苦寻找的人。 阅读详情

相关推荐

使用 Apache Axis 进行 Java API 开发中的 Web Services 处理

上述示例中,我们创建了一个名为HelloWorldClient的类,该类通过Apache Axis提供的相关类创建了一个Web Services的调用。接下来,我们需要使用Apache Axis提供的工具生成WSDL(Web Services Description Language)文件,以描述我们的Web Services。上述示例中,我们创建了一个名为HelloWorld的类,并定义了一个名为sayHello的方法,该方法接受一个字符串参数并返回一个包含问候语的字符串。

CyberSparkZ的博客 386

Apache Axis2 环境搭配详解

   WebService概念:它可以让一个程序透明的调用互联网程序,不用管具体实现细节,只要WebService公开了服务接口,远程客户端就可以调用服务。Webservice基于HTTP协议,它是分布式应用程序的发展趋势。    Apache Axis是一个开源的WebSerbive运行引擎,现在拥有1.x和2.x两个版本。本文讲解Axis2.x版本,该版本较Axis1.x版本在体系结构上进行了重写,具有更高的效率、更加模块化也更加面向XML。Axis应该是最早一批SOAP(简单对象访问协议),该协议提供

塞外游侠的专栏 3082

Axis2框架下的WebService请求实现指南

Apache Axis2 是一个用于构建和部署Web服务的高性能、灵活的服务器和客户端引擎。它作为Apache软件基金会下的顶级项目之一,旨在提供更高效的Web服务通信。与早期版本Axis相比,Axis2提供了模块化架构、灵活的消息处理机制和高度可配置的服务部署环境。

weixin_42593130的博客 791

使用axis2配置webservice服务

一、所需资源和工具  1、wsdl文件,在这里命名为testService.wsdl  2、axis2 开发包:axis2-1.6.1-bin.zip     axis2 运行包:axis2-1.6.1-war.zip          开发包主要用到里面的lib下得jar包,运行包需要放到tomcat的webapps下        下载路径:http://axis.apach

zhou的专栏 5386

Axis2实现WebService接口调用实战

Apache Axis2是一个用于构建Web服务的强大框架,旨在提供更高效、更易于使用的方式来开发、部署和管理SOAP消息。它既支持SOAP也支持REST风格的Web服务,并且被广泛用于各种服务导向架构(SOA)项目中。wsdl2java工具通常包含在Axis2的发行包中,我们可以通过安装Axis2来获得它。为了简化操作流程,建议使用Maven或Gradle这类依赖管理工具,它们能够帮助我们自动化管理wsdl2java工具及其依赖。对于Maven用户,可以在项目的pom.xml。

weixin_42168902的博客 1327

国密SKF库数字签名全解析:SM2签名与验证的详细实现

本文详细解析了基于国密SKF库实现SM2数字签名与验证的全过程。内容涵盖SKF库环境搭建、设备初始化、PIN码验证、SM2签名生成以及纯软件与SKF库两种验证方式的详细实现,为开发者提供了一份实用的国密算法开发指南。

weixin_29303701的博客 324

使用IDEA根据wsdl生成WebServices客户端代码-Java

生成代码的操作可以在已经存在的项目中进行,也可以在新建的项目中进行 下面新建一个项目进行客户端代码生成操作 依次点击File-->New-->Project新建一个新项目 选择Java,并点击Next 如下图所示勾选,并选择Java Hello World,接着点击Next(这里不做勾选和不选择Java Hello World直接点击Next是完全可以的,不...

努力容易成功难的博客 7万+

win11本地部署openclaw实操第5集-X11图形化界面搭建,让WSL2“看见”世界

本文介绍了在WSL2中实现图形界面(GUI)的方法。由于WSL2默认没有图形界面,需要使用X11服务器作为"翻译显示器",将Linux程序的图形指令渲染到Windows窗口中。推荐使用VcXsrv作为X11服务器,详细说明了其安装和配置步骤,包括选择"One large window"显示模式、禁用访问控制等关键设置。随后在Ubuntu中安装轻量级xfce4桌面环境,并通过设置DISPLAY环境变量将图形输出指向VcXsrv。最终通过startxfce4命令成功在Vc

weixin_44626085的博客 811

webservice配置和发布,axis2配置

Axis2 webservice,首先要先下载所需的jar包

xhy的专栏 944

YOLOv8基础环境搭建cuda+anaconda+pytorch+pycharm

首先安装NVIDIA gpu的电脑安装显卡驱动,如果安装过了,或者想使用cpu的,可以跳过这一步。打开cmd,输入nvidia-smi查看GPU的CUDA版本,可以看到CUDA版本12.3,意味着只能安装小于12.3的CUDA版本。下载完成,进行安装,建议安装在非系统盘,以后会创建比较多的环境的话,剩下的默认安装即可。,需要注册一个NVIDIA账号,然后选择CUDA对应版本的cudnn即可。,以12.2.1版本举例,选好系统参数,点击下载,,以11.6版本举例,选好系统参数,点击下载,

qq_16602159的博客 2383

光伏发电预测(LSTM、CNN_LSTM和XGBoost回归模型,Python代码)

一旦结果与预测差距较大,可能存在光伏系统的问题,需要找出原因,然后采取适当措施来修复光伏系统并做出更好的决策。例如,根据准确的预测,光伏系统运营商可以平衡电力消耗,并将多余的电力储备用于紧急情况。然而,光伏系统的发电量估算是一个挑战,因为光伏系统的发电量受到天气条件的极大影响。整个项目文件夹(第一个文件夹为xgboost模型相关的包文件,xg.py是xgboost模型英文注释版本,xg_chinese.py是xgboost模型中文注释版本)表示空气的温度,通常以摄氏度(°C)或华氏度(°F)为单位。

2301_79699110的博客 3034

基于Apache Axis2 实现Webservice发布的应用

大体步骤如下: 前提是你的电脑上已经安装Tomcat、JDK、Eclipse。 1、 访问Apache官网http://axis.apache.org/axis2/java/core/download.cgi,下载Axis2最新的1.6.2的两个文件axis2-1.6.2-bin.zip和axis2-1.6.2-war.zip,如下图:   2、 访问Apache官网http://axis

xiwu1616的专栏 785

牛耕式全覆盖算法-matlab代码

牛耕式路径全覆盖算法,也称为牛耕算法或者蚂蚁算法,是一种用于解决路径规划问题的启发式算法。这个算法的灵感来自于牛在耕田时的行为。在这个算法中,假设有一块田地需要耕作,牛从田地的某个角落开始行走,走过的路径会被标记。牛会优先选择尚未经过的路径,当所有的路径都走过后,算法停止。在路径规划问题中,田地可以看作是一个由节点和边构成的图。每个节点代表一个位置,每条边代表两个节点之间的连接。路径全覆盖问题是找出一组路径,使得每个节点都被至少一条路径经过。牛耕式路径全覆盖算法的基本思想是以启发式的方式逐步构建路径。

m0_69611489的博客 1690

Axis 思考总结

Web Service Web Service是建立可互操作的分布式应用程序的新平台。Web Service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。 函数或方法调用通常发生在不同计算机间的不同语言编写的应用系统中,通过网络通讯实现函数和方法调用的能力。 Axis Apache Axis 是Apache Web Service 项目中的子项目,其最初起源于IBM的"SOA

QLQ的专栏 838

DC/DC恒压输出控制原理与应用

DC/DC恒压输出控制

propor的专栏 4282

智能合约监控告警:提示工程架构师用AI Prompt实现精准预警

当AI大模型(尤其是代码理解模型如CodeLlama、GPT-4 Code)与区块链数据结合,智能合约监控迎来范式革新。AI模型如何精准理解智能合约的业务特殊性?如何避免"AI幻觉"导致的误报?如何让模型学会区分"正常异常"与"攻击前兆"?答案藏在"提示工程"(Prompt Engineering)中。理解特定智能合约的业务逻辑(如DeFi协议的清算机制、NFT的铸造规则)识别复杂的攻击模式(如重入攻击的调用链特征、闪电贷的套利路径)结合链上链下数据进行多维度推理(如关联价格波动与异常交易)

AI架构全栈开发实战笔记 1011

WebService接口创建与调用

WebService接口创建与调用

weixin_45534157的博客 294

AI辅助Android开发:从传统到智能化的技术演进

AI辅助开发的核心在于利用算法模型自动化或优化传统任务。在Android开发中,AI可应用于需求分析、设计、编码、测试和维护各阶段。需求分析:AI工具如基于NLP的模型(例如GPT系列)可解析用户需求文档,自动生成用户故事和原型设计。假设产品需求为“开发一个航班查询应用”,AI能提取关键词,输出UML图或伪代码。代码生成:使用AI代码助手(如GitHub Copilot),工程师输入自然语言描述,AI生成Java/Kotlin代码片段。

郑伟强dev的专栏 137

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

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

ZhengYanFeng1989的博客 1997

NTscan扫描工具

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

使用axis2进行WebService的开发

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

Hsing Hsu's Blog 4万+

axis2实现WebService之用POJO实现0配置的WebService

参照着网上的教程,自己做了一遍,发现教程是错误百出啊,搞得我弄了一个下午才搞好,废话少说,看招! 一、Axis2的下载和安装     读者可以从如下的网址下载Axis2的最新版本:     http://ws.apache.org/axis2/     在本文使用了目前Axis2的最新版本1.6.2。读者可以下载如下两个zip包:     axis2-1.4.1-bin.zip   f3

亡羊补牢 4002

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

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

qq_42246139的博客 6060
上一篇: ORACLE 中 VARRAY的用法
下一篇: 调用webservice
johnnydev
博客等级 码龄15年 16粉丝 11原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值