Axis创建自己的WebService--Step by Step

扩散模型与渐进式学习在重叠指纹分离中的应用研究 在计算机视觉任务中,扩散模型凭借其逐步去噪的生成机制,在图像修复领域展现了独特优势。图像修复不再是简单填补像素,而是借助结构先验与上下文条件重建缺失信息。将这一技术迁移到生物特征识别场景,可有效解决传统盲源分离难以处理的重叠指纹问题。通过把两枚相互干扰的指纹拆解为“目标指纹加受损区域”的条件修复任务,扩散模型能够利用脊线纹理的强规律性,生成完整且可用的指纹结构。实际训练中,渐进式学习策略能够降低任务复杂度,使模型先掌握单图补全,再逐步适应更大面积的重叠与干扰,从而提升训练稳定性与输出质量。该方法在刑侦、考勤 阅读详情
随着SOA的流行,webservice开发也变得相当的热门。许多企业都将自己的网站迁移到soa的架构。今天我们来一起体验一下通过axis来创建、发布和调用webservice的过程。如果大家不太了解SOA请访问下面网址(http://www-900.ibm.com/cn/software/rational/solution/tech/soa_design.shtml)
        在开始之前我默认大家已经具有axis的安装经验,如果对axis安装和配置发布有任何问题请看http://yangyang.javaeye.com/blog/56519 和http://yangyang.javaeye.com/blog/56552两篇文章。let's go!
  • 1.编写请求类和响应类以及服务接口:首先我们先假设一个需求。我们需要一个service,功能是给手机充值,充值成功后返回操作代码和消息。给手机充值需要手机号、充值金额、操作类型。操作成功或者失败后返回操作代码和消息。在这里我们将客户端的请求和服务器端响应进行了包装代码如下:
java 代码
1.          package  com.yy.ws;   
2.          public  class  ClientRequest {   
3.               private  String opType;   
4.               private  int  amount;   
5.               private  String phoneNumber;   
6.               public  int  getAmount() {   
7.                   return  amount;   
8.              }   
9.               public  void  setAmount( int  amount) {   
10.                this .amount = amount;   
11.           }   
12.            public  String getOpType() {   
13.                return  opType;   
14.           }   
15.            public  void  setOpType(String opType) {   
16.                this .opType = opType;   
17.           }   
18.            public  String getPhoneNumber() {   
19.                return  phoneNumber;   
20.           }   
21.            public  void  setPhoneNumber(String phoneNumber) {   
22.                this .phoneNumber = phoneNumber;   
23.           }   
24.       }   
optype 代表操作类型,也可以用枚举类型。 amount 代表充值金额。 phoneNumber 代表手机号。

下面是服务器响应对象。如下:

java 代码

1.          package com.yy.ws;   

2.          public class ServerResponse {   

3.              private long resultCode;   

4.              private String message;   

5.              public String getMessage() {   

6.                  return message;   

7.              }   

8.              public void setMessage(String message) {   

9.                  this.message = message;   

10.           }   

11.           public long getResultCode() {   

12.               return resultCode;   

13.           }  

14.           public void setResultCode(long resultCode) {   

15.               this.resultCode = resultCode;   

16.           }   

17.       }   

resultCode代表充值操作代码。message代表服务器端操作成功与否的消息。

  • 2.Java2WSDL:下面我们通过axis提供的一个工具org.apache.axis.wsdl.Java2WSDL.来产生wsdl文件。Java2WSDL是一个根据axis用户提供的webservice接口来产生相应的wsdl文件。在接口中我们定义了webservice的所有方法(服务)。如果大家不知道wsdl请查阅相应资料。http://www.ibm.com/developerworks/cn/webservices/ws-intwsdl/part1/#N10054

interface代码如下:

java 代码

1.   package com.yy.ws;   

2.     

3.   public interface MobileBoss {   

4.          public ServerResponse charge(ClientRequest req);   

5.   }  

这个接口定义了一个名字为MobileBoss的webservice,其中一个服务名字为charge。下面我们通过Java2WSDL工具生成这个ws的wsdl文件。

进入接口所在源文件的文件夹(包的最上层,如果包名是com.yy.ws则需要在com的上一层目录下如classes),我的文件夹结构是classes/com/yy/ws/所以我需要进入源文件目录:

C:/ws>cd classes

在控制台输入如下命令:

C:/ws/classes>  java org.apache.axis.wsdl.Java2WSDL  -o mb.wsdl -l "http://localhost:8080/axis/services/MobileBoss" -n "urn:MobileBoss" -p"com.yy.ws" "urn:MobileBoss"  com.yy.ws.MobileBoss

(或者直接在IDEA里面执行Java2WSDL的main方法。)

参数说明:

    -o  输出wsdl文件名称

    -l 访问的url

    -n 命名空间

    -p  包名 命名空间的名字(urn:是命名空间的缩写,必须有!)com.yy.ws.MobileBoss 是接口的全路

        径。包名+类名。

如果没有抛出异常,我们就可以在C:/ws/classes文件夹下找到mb.wsdl.

这个mb.wsdl文件描述的这个ws的所有信息,包括请求响应对象、访问url、端口等等信息。这个文件是由axis的Java2WSDL  工具生成的,怎么样?是不是很方便啊!

  • 3.WSDL2Java:下面我们来通过 org.apache.axis.wsdl.WSDL2Java来生成相应的webservice代码。

进入wsdl文件所在目录。

C:/ws> cd classes

键入如下命令:

C:/ws/classes> java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true  -Nurn:MobileBoss com.yy.ws mb.wsdl

参数说明: -o 输出文件所在目录( .-代表当前目录 )

           -s生成server端绑定代码

           -d发布范围

           -S是否产生发布和撤销webservice的deploy.wsdd和undeploy.wsdd文件。ture代表生成发布文件。

           -Nurn:命名空间 包名

           mb.wsdl: wsdl文件名。

如果没有抛出异常,我们就可以在C:/ws/classes文件夹下找到下面几个文件:

ClientRequest.java

MobileBoss.java

MobileBossService.java

MobileBossServiceLocator.java

MobileBossSoapBindingImpl.java

MobileBossSoapBindingSkeleton.java

MobileBossSoapBindingStub.java

ServerResponse.java

deploy.wsdd 和undeploy.wsdd。

  • 4.实现业务逻辑:除了最后两个发布文件以外最重要的有两个文件,即 MobileBossSoapBindingImpl.java 和 MobileBossServiceLocator.java

MobileBossSoapBindingImpl代码如下:

java 代码

1.   java 代码

/**  

2.           * MobileBossSoapBindingImpl.java  

3.           *  

4.           * This file was auto-generated from WSDL  

5.           * by the Apache Axis 1.3 Oct 05, 2005 (05:23:37 EDT) WSDL2Java emitter.  

6.           */  

7.            

8.          package com.yy.ws;   

9.            

10.       public class MobileBossSoapBindingImpl implements com.yy.ws.MobileBoss{   

11.           public com.yy.ws.ServerResponse charge(com.yy.ws.ClientRequest in0) throws java.rmi.RemoteException {   

12.               return null;   

13.           }   

14.         

15.       }   

我们需要在这个webservice中实现自己的业务方法!我们加入如下业务代码:

java 代码

1.          /**  

2.           * MobileBossSoapBindingImpl.java  

3.           *  

4.           * This file was auto-generated from WSDL  

5.           * by the Apache Axis 1.3 Oct 05, 2005 (05:23:37 EDT) WSDL2Java emitter.  

6.           */  

7.            

8.          package com.yy.ws;   

9.            

10.       public class MobileBossSoapBindingImpl implements com.yy.ws.MobileBoss {   

11.         

12.           /*  

13.            *   

14.            * implements the service methods  

15.            */  

16.           public com.yy.ws.ServerResponse charge(com.yy.ws.ClientRequest req)   

17.                   throws java.rmi.RemoteException {   

18.               String bizInfo = req.getPhoneNumber() + "/" + req.getOpType() + "/"  

19.                       + req.getAmount();   

20.               System.out.println(bizInfo);   

21.               System.out.println(req.getPhoneNumber() + "is charged successfully!");   

22.               ServerResponse res = new ServerResponse();   

23.               res.setMessage(bizInfo);// save service informations.   

24.               res.setResultCode(8888);// save result code.   

25.               return res;   

26.           }   

27.         

28.       }   

 

  • 5.部署发布服务端:好了现在我们将webservice的实现代码发布到tomcat的axis web应用中。如将你的class拷贝到axis/WEB-INF/classes下

进入你的deploy.wsdd所在目录。

cd C:/tomcat5/webapps/axis/WEB-INF/classes/com/yy/ws

输入如下命令:

C:/tomcat5/webapps/axis/WEB-INF/classes/com/yy/ws>java org.apache.axis.client.AdminClient deploy.wsdd

AdminClient  -一个axis发布工具,会自动地将你的webservice发布到WEB-INF下的server-config.wsdd文件中。如果显示:

Processing file deploy.wsdd
<Admin>Done processing</Admin>

则表示发布成功!

  • 6.客户端调用: 好了,现在我们已经完成了创建和发布过程,接下来我们来进行最后一步工作 —— 调用我们写的 webservice!

java 代码

1.          package com.yy.ws.test;   

2.            

3.          import java.net.MalformedURLException;   

4.          import java.rmi.RemoteException;   

5.            

6.          import javax.xml.rpc.ServiceException;   

7.            

8.          import com.yy.ws.ClientRequest;   

9.          import com.yy.ws.MobileBoss;   

10.       import com.yy.ws.MobileBossService;   

11.       import com.yy.ws.MobileBossServiceLocator;   

12.       import com.yy.ws.ServerResponse;   

13.         

14.       public class Test {   

15.           public static void main(String args[]) throws ServiceException, MalformedURLException, RemoteException{   

16.               ClientRequest req = new ClientRequest();   

17.               req.setAmount(1000);   

18.               req.setOpType("charge");   

19.               req.setPhoneNumber("13912345678");

//得到服务定位器   

20.               MobileBossService sl = new MobileBossServiceLocator();   

21.               //URL url = new URL("http://localhost:8080/axis/services/MobileBoss");   

22.               //s.getMobileBoss(url);  

//得到服务 

23.               MobileBoss mb = sl.getMobileBoss();//default port 

//调用服务得到响应  

24.               ServerResponse resp = mb.charge(req);   

25.               System.out.println("client result:"+resp.getResultCode()+"/nclient message:"+resp.getMessage());   

26.           }   

27.       }   

 结果如下:

服务器端显示:

13912345678|charge|1000
13912345678is charged successfully!

客户端显示:

client result:8888

client message:13912345678|charge|1000

      服务器段成功返回消息,大功告成!不是很难吧?!这篇文章的所有代码我都测试过,全部可以直接使用。希望能够对大家有所帮助。

Caché数据库和M语言 基础学习加了解 自己以前整理的零碎资料 希望大家顶顶 立即下载

相关推荐

Axis2创建WebService

Axis2创建WebService

spring-创建Webservice服务

webservice

毅香雪海的博客 2221

Axis1 创建Webservice 服务端

NULL 博文链接:https://sunshineday328.iteye.com/blog/769486

Apache Axis用户指南(3)

本部分是apache axis用户指南的第三部分。在Axis中使用WSDL文件。10.使用WSDLWeb Service Description Language是由IBM和Microsoft完成的规范,并且被很多其他的组织所支持。WSDK用于结构化的描述Web Services。Web服务的WSDL是由程序来使用的,它包含了服务的接口,服务使用的数据类型以及服务的位置。更多的内容,可以参

zhouqixiang的专栏 3189

ST-LINK调试STM32H743必看:CubeMX工程中缺失的这行代码导致程序跑飞

本文深入剖析了使用ST-LINK调试STM32H743时,因CubeMX工程中缺失电源电压档位配置代码而导致程序跑飞或出现“Can not access memory”错误的问题。文章解释了H7系列电源与时钟耦合的核心原理,提供了具体的代码修复方案和系统化的调试排查思路,帮助开发者从根本上解决这一常见调试困境。

weixin_29191669的博客 281

大疆航线文件解析指南:5分钟搞懂KMZ里的template.kml和waylines.wpml区别

本文深入解析大疆无人机航线文件KMZ中template.kml与waylines.wpml的核心区别。template.kml是定义任务框架和全局参数的可编辑模板,而waylines.wpml是包含精确执行指令的最终文件。理解两者差异对于高效规划航线、批量生成任务及进行二次开发至关重要。

sun99的博客 866

手把手教你用axis创建自己的webservice

随着SOA的流行,webservice开发也变得相当的热门。许多企业都将自己的网站迁移到soa的架构。今天我们来一起体验一下通过axis来创建、发布和调用webservice的过程。如果大家不太了解SOA请访问下面网址(http://www-900.ibm.com/cn/software/rational/solution/tech/soa_design.shtml) 在开始...

小头猪 334

鸿蒙日历组件进阶:教你打造个性化日程管理界面(支持月份切换)

本文深入探讨了鸿蒙应用开发中自定义日历组件的构建方法。通过详解基于Grid的布局设计、核心日期算法、月份切换逻辑以及事件管理集成,指导开发者打造支持个性化日程管理的高性能日历界面,提升应用交互体验。

weixin_29207149的博客 66

Axis2搭建WebService服务

二、使用Axis2搭建WebService服务: 第一步:在web.xml配置文件中添加映射路径: <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis2.transport.http.AxisServ...

Gblfy_Blog 1645

AI 辅助代码审查:开启代码质量管控的智能时代

AI辅助代码审查正在改变传统的代码质量管控方式。通过自动化分析、智能反馈和上下文感知,AI不仅提高了代码审查的效率,还提升了代码质量的一致性和可维护性。随着机器学习和深度学习技术的不断发展,未来AI将成为开发者日常工作中强大的助手,进一步推动软件开发向智能化、自动化方向发展。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3228

Android 9.0 SystemUI禁用长按recent键的分屏功能

​ 在9.0的系统产品开发中,系统对于多窗口模式默认会有分屏功能的,但是在某些产品中,需要禁用分屏模式,所以需要在导航栏中 禁用长按recent的分屏模式功能,接下来分析下相关分屏模式的实现 ​

安卓兼职framework和app工程师的博客 448

使用axis技术创建webservice(服务端+客户端)

开发环境:jdk7+eclipse+axis2+tomcat7+MySQL5 操作系统:win7一、服务端 eclipse集成axis2插件,将图片中的这两个压缩包(网上搜资源)解压到eclipse根目录下的plugins文件里面,重启eclipse; 安装tomcat,将axis2.war文件copy到tomcat根目录下的webapps文件中,在eclipse中配置tomcat,启动tomca

ZhuangM 820

基于51单片机的电子记分牌的设计

基于51单片机的电子记分牌的设计 电子记分牌基于51单片机的电子记分牌的设计摘要1 引言2 总体设计方案2.1 设计思路(1)设计要求(2)设计思路(3)设计方案2.3综合设计方框图(1)硬件设计框图(2)软件设计3 设计原理分析3.1 电源、复位、下载电路的设计(见图1、2、3)3.2 时钟电路的设计3.3 矩阵键盘电路的设计3.4 数码管显示电路设计4程序代码 摘要 本设计为电子记分牌设计,是以STC89C52芯片为核心,辅以必要电路设计进行的。用4位LED七段数码管显示比赛两方的分数(每方分数用2位

行走的皮卡丘 2037

Axis创建自己的WebService--Step by Step 续

      使用工具自动生成代码,虽然比较快捷,但是产生的代码一大堆,一般人很难看懂里面的原理。而且根本不需要那么多东西在里面。只需要很简单的一个Service类,然后配置一下server-config.xml文件就可以了。    后面将根据一个例子简单说明一下过程。 1.编写WS服务接口,实现类,并根据需要编写作为参数的类。 服务接口:package com.luc

daniel112的专栏 1137

Android平台实现Airplay的方法及源代码

Airplay是由苹果公司推出的一项无线音视频传输技术,它允许用户将音频、视频和照片从iOS设备(如iPhone、iPad)或Mac电脑无线传输到支持Airplay的设备(如Apple TV、智能音箱等)。具体的解码和播放方式取决于你选择的库和技术。当Android设备启动AirplayService服务后,它将监听来自iOS设备的连接请求,并在建立连接后接收、解码和播放音视频数据。在AirplayService类的onStartCommand()方法中,我们需要处理Airplay的请求。

CyberLynxX的博客 1599

论文阅读:ICLR 2026 Breaking and Fixing Defenses Against Control-Flow Hijacking in Multi-Agent Systems

该论文首先系统阐述了控制流劫持攻击的核心机理。此类攻击通过操纵多智能体系统的编排机制,诱导系统执行非安全操作,进而实现敏感信息窃取。攻击者将恶意指令伪装成环境错误信息,借助可信代理传递至系统编排器,利用"困惑副手"漏洞绕过传统安全防线。该论文指出,现有防御方案如LlamaFirewall所依赖的对齐检查机制存在根本性局限——安全目标与功能需求之间存在不可调和的内在冲突。该论文的核心贡献体现在攻防两个维度。

CSPhD-winston的博客 493

eclipse 使用axis2 wizards 开发部署webserver step by step

首次使用axis2 wizards,记下部署过程备忘。 1、下载Axis2_Codegen_Wizard_1.3.0安Axis2_Service_Archiver_1.3.02、重启elipse查看aixs2 wizards 安装成功3、编写服务类 4、根据服务类创建wsdl选择Axis2 Code Generator工具,选择Generate a

不精通则死 1060

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

用Apache AXIS 开发 Web Services Step By Step

说明及约定:    本文主要描述如何使用Apache开源项目Axis提供的API来实现Web Services。本文中的提到的例子只为了方便本文的描述而提出,有不妥之处请见谅。    本文的读者应有JAVA web 应用开发基础。应该具有看过WSDL,SOAP,XML等的基本规范。熟悉Eclipse+MyEclipse开发环境。    本文可以随意转载使用,但是要保留作者的署名。一

beckrabbit的专栏 2131

OV9734 DATASHEET,完整规格书

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Eclipse step by step To Create webservice

为什么80%的码农都做不了架构师?>>> ...

weixin_34174132的博客 428

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

My Step to install Axis 2

1、jdk 1.5.0_06,tomcat 5.5.23,从http://ws.apache.org 下载 axis2-1.4-bin压缩包 2、解压,将webapp目录下文件copy至tomcat\webapps\axix目录下, 此时axix\WEB-INF\下没有lib目录,建立,并从所下载的axis包中lib下所有jar文件copy至 此lib目录 3、启动tomcat,访问http:/...

stormzhange 124

Axis2中文手册

转自http://tenn.javaeye.com/blog/100736-----------------------------------------以下为转载文章-------------------------------------------------Axis2中文手册 声明:本文可以算作Axis2用户手册的翻译,但是翻译后的文本是经过作者理解写出来的,可能有些偏差,欢

偶一二 2434

用axis2+Tomcat5.5+Eclipse3.2部署和访问Web服务

一、环境准备 使用Axis来开发Web services 需要准备 web 服务器,Axis API。本文使用的Web container 是Tomcat5.5, Axis API 的版本为Axis2_1.1.1。 1.1软件下载准备 Tomcat下载地址:http://tomcat.apache.org/download-55.cgi#5.5.20 Axis标准包: http://ap...

java的涟漪 125

ws技术

1、生成wsdl文件(参考1:解析Web接口描述语言WSDL,参考2:[王洪伟]用 Eclipse3.2+MyEclipse5.5M1+axis2_1.1.1+tomcat5.5 开发Web Services.doc ),解决办法:可以用myEclipse 生成wsdl文件,在XMLSpy中一样可以。 2、打包(axis2 和 ant):服务端:(直接写个bat文件,粘贴进入就可以)D:...

love2000118的专栏 463

web service 小结。

What is SOAP? SOAP is an XML-based communication protocol and encoding format for inter-application communication.  What is Axis? Axis is essentially a SOAP engine -- a framework for co

For that dream 883

物流AI Agent实战:从0到1搭建异常处理智能体

随着大模型与智能体技术的成熟,企业开始探索将AI Agent引入物流与供应链场景,以应对非结构化信息处理与跨系统协作的挑战。AI Agent并非简单聊天机器人,而是一种能够自主拆解任务、调用工具、动态决策的执行实体。在物流领域,这种能力可应用于运单异常识别、路由查询、工单生成等环节,显著提升运营效率。然而,要让Agent在真实生产环境中稳定落地,必须构建清晰的工具层与校验层,并通过评估体系(evals)持续优化,避免模型误调用、字段混淆等风险。文章围绕物流异常处理场景,详细拆解了从状态设计、工具封装到多阶段

keke1314520的博客 392
上一篇: 通过 Axis2 开发 Web 服务,第 1 部分: 通过 Axis2 运行时部署和使用简单 Web 服务
下一篇: VB基本语法
daniel112
博客等级 码龄21年 24粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值