公司决定将自己的产品对外提供web service。收集了很长时间资料,查了很多关于web service相关的信息结合我们公司产品的特点,总结出了一些小经验供我日后回忆和正在受axis2折磨中的兄弟们借鉴。下面就开始吧!
1.WS Framework框架的选择
网上有很多资深的评论家早已对这个问题做出了很精辟的总结,我在这说纯属废话。我选择axis2的原因很简单,公司产品是基于古老的JDK1.4开发的。CXF最新版本只支持1.5的JDK,而axis2支持1.4的!我想就这一个原因足以构成选择axis2的结果了吧。
2.构建axis2.war
网上很多文章都是基于tomcat怎么去发布axis2的,但是稍微大一点的系统人家都喜欢买个WebSphere来玩玩。用tomcat感觉想看不起他们一样!
下面介绍一下在WebSphere构建你的axis2.war。
从 http://ws.apache.org/axis2/download/1_0/download.cgi 网站下载AXIS2 1.3。现在的版本是1.4。如果用1.4的话控制台在运行时会有一个JDK版本的错报出来,查了一下网上说是因为runtime的JDK跟Compiler的JDK不匹配。个人觉得这个解释就是扯淡,我不至于粗心到这个地步吧。但是确实是一起服务就报错。姑且相信他的说法,换了个版本还真好了。
注意: 如果你现在用的是WSAD5.1.2,那么我不幸的告诉你我还没有研究出来。在WSAD5.1.2里存在一个包冲突的问题。原因是WSAD5.1.2加载的时候会加载一个javax.xml.namespace.QName这么个类,具体在哪个包里我没找到。然后axis2 1.3也会去加载这个类。但是WSAD5.1.2加载的一个老版本的QName,所以axis2 1.3用不起来就报一个 java.lang.NoSuchMethodError的错。网上有人说把类加载方式改成PARENT_LAST,我试过了不起作用。折腾了好长时间,由于时间是宝贵的我不想浪费到这个恶心的问题上就没去深入研究了。后来我用的是RAD 6,虽然这是个很恶心的IDE但是起码能让我顺利部署axis2。
在RAD6里你自己的工程下新建一个axis2的web项目,把下载下来的压缩文件解开后里面的东西很下面的文档结构导入到workspace里。
|-----WebContent |---------WEB-INF | |-----------conf | | |---------axis2.xml | |-----------lib(all jar) | |-----------modules | | | ---------addressing-1.3.mar | | |--------- ... | |-----------services | | |---------services.list | | |---------version.aar | |-----------web.xml |----------axis2-web
然后将axis2.war模块添加到你的工程里就OK了!
3.开发服务器端web service
跟具需要总结出需要对外提供的service,然后建service。举个小例子
package com.cs.test; public class WSTest{ public String sayHello(String value) { System.out.println("Web Service HelloWorldService: " + value); //具体service的实现类 WSTestImpl wsimpl = new WSTestImpl(); wsimpl.doservice(); return value; } }
4.在工程下面新建一个文件夹META-INF ,并在其中建一个services.xml 内容如下:
<service> <parameter name="ServiceClass" locked="false"> com.cs.test.WSTest </parameter> <operation name="sayHello"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> </service>
5.web service打包
将刚才开发的web service和META-INF中的services.xml选择导出,导出为jar。然后在路径里将文件名改成WSTest.aar
6.发布web service
浏览器里访问http://localhost:9080/axis2/ ,里面的Administration。用户名为admin,密码为axis2。然后upload你的aar文件。正常情况会upload成功,然后返还home后点services会看到你发布的WSTest的web service。
7.集成axis2到你自己的web中。
在你自己的web.xml里加上axis2的servlet和servlet mapping的配置,然后在classpath里加入axis2的所以jar包就OK了!
8.生产客户端程序
引用:StockQuoteService类创建客户端的四种方式: 构建基于AXIOM的客户端;使用Axis2 Databinding Frame work(ADB)生成客户端;使用XMLBeans生成客户端;使用JiBX生成客户端。 ADB:最简单的生成Axis客户端的方法。大部分情况下,这些主要的类都会以内部类的形式创建在stub类中。It is not meant to be a full schema binding application, and has difficulty with structures such as XML Schema element extensions and restrictions。 XMLBeans:与ADB不同,他是一个全功能的schema编译器。他没有ADB的限制。然而,他也比ADB用起来更复杂。他会产成大量的文件,编程模型不如ADB直观。 JiBX:他是一个数据绑定框架。他不仅提供了WSDL-JAVA的转换,而且提供了JAVA-XML的转换。JiBX相当灵活,允许你选择类来代表你的实体,但是这个却不好做,但还句话说,如果这些都能建好,那么使用JiBX就更使用ADB一样容易。 对于简单应用来说ADB已经够用了,如果想用更加强大更加灵活的功能,那么你可能需要使用其他两种方式。
用CMD命令 进入到%AXIS2_HOME%/bin目录下运行:
wsdl2java.bat -uri http://localhost:9080/axis2/services/WSTest?wsdl -o D:\ -p com.cs.test -d abd
将会在 D:\ 中生成一个src\com\cs\test包 ,将其中的两个JAVA (ExceptionException0.java和WSTestStub.java )拷导入到 另一个测试客户端的工程中进行测试.
我们需要建一个测试类来掉我们发布的web service,内容如下:
package com.cs.test; import com.cs.test.SayHelloStub.SayHello; public class Client{ public static void main(java.lang.String args[]){ try{ SayHelloStub stub = new SayHelloStub (http://localhost:9080/MyWeb/services/SayHello); SayHello user = new SayHello(); user.setValue("Terry"); com.cs.test.SayHelloStub.SayHelloResponse res = stub.sayHello(user); System.out.println(res.get_return()); } catch(Exception e){ e.printStackTrace(); System.out.println("\n\n\n"); } } }
上面的操作在正常情况下可以正常运行,遇到特殊问题还要特殊对待。
关于WSAD5.1.2包不兼容的问题已经找到解决方法了,更换WSAD5.1.2自身lib下有一个qname.jar的文件。次qname.jar里只有一个class,javax.xml.namespace.QName。但是版本比较老,里面有好多方法没有。下载个新版本的放在qname.jar里替换原来的就行了!不会影响内置WAS的启动。而且能解决部署问题。
qname.jar的路径为%WSAD_PATH%\WebSphere Studio\Application Developer\v5.1.2\runtimes\base_v51\lib
分享到:
相关推荐
更多毕业设计https://cv2022.blog.csdn.net/article/details/124463185
ABAQUS有限元模拟:刀盘切削竹材复合材料层模型——转速、前进速度等多因素影响下的力学响应分析,ABAQUS有限元模拟:刀盘切削竹材复合材料层模型分析,涵盖转速、前进速度、倾斜角与刀具齿数影响的研究。,ABAQUS有限元模型:刀盘切削竹材模型。 使用ABAQUS有限元软件,模拟了刀具切割木材的模型,刀具以1500r min的转速,以及0.4m s的前进速度,水平切割竹材,竹材为复合材料层,其损伤采用hashin本构,可用于分析不同转速、不同前进速度、倾斜角度及刀具齿数的刀盘受力响应。 包括建模过程和模型文件。 ,ABAQUS有限元模型; 刀盘切削竹材; 转速; 前进速度; 倾斜角度; 刀具齿数; 损伤本构; 建模过程; 模型文件。,返回结果: ABAQUS刀盘切削竹材复合材料模型研究
基于真实尺寸的PEM电解槽直流道两相流模拟:求解流体速度分布、压降及液态氧气水体积分数分析,真实尺寸建模的PEM电解槽直流道两相流模拟:求解速度分布、压降及液氧水体积分数的关键技术分析,PEM电解槽直流道两相流模拟,按照真实尺寸建模,可求解流体流动的速度分布及压降及液态水氧气体积分数。 ,PEM电解槽; 直流道; 两相流模拟; 真实尺寸建模; 流体流动速度分布; 压降; 液态水氧气体积分数,PEM电解槽真实尺寸两相流模拟:求解速度分布与压降等参数
2023-04-06-项目笔记-第四百三十一阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.429局变量的作用域_429- 2025-03-08
系统选用B/S模式,后端应用springboot框架,前端应用vue框架, MySQL为后台数据库。 本系统基于java设计的各项功能,数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。 在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容 该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容该资源为北京大学 DeepSeek内部研讨系列 DeepSeek私有化部署和一体机 的相关内容该资源为北京大学 DeepSeek内部研讨系列 Dee
系统选用B/S模式,后端应用springboot框架,前端应用vue框架, MySQL为后台数据库。 本系统基于java设计的各项功能,数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。 在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
国家卫健委2024卫生健康行业人工智能应用场景参考指引45页.pdf
ROS学习笔记二-项目创建与初始化
径硕科技2024年AI在B2B营销上的应用分析与场景展望白皮书49页.pdf
将源码里面的 pages/pay 目录整合到你自己的任意小程序源码中,然后修改 app.json 的路由配置。
内容概要:本文介绍了使用Matlab实现PSO-LSTM-Attention模型,即采用粒子群优化(PSO)算法优化长短期记忆网络(LSTM),并在其中融入注意力机制(Attention Mechanism)以实现多特征分类预测的方法。通过对PSO优化LSTM超参数的研究以及将注意力机制加入LSTM以增强模型表达能力的方式,该模型能够在处理具有非线性和复杂特征的关系方面表现出优越性。文章还阐述了模型的具体架构和应用领域,包括金融市场的趋势预测、医学诊疗辅助以及气候和能源预测等,并提供了详细的模型描述及代码片段作为示例。文中详细讨论了该项目的目的、所面临的挑战及其创新点,并附有用于验证模型性能的效果图和程序设计代码。 适用人群:具有一定编程能力和数学统计知识的技术爱好者或者研究者,特别是从事数据挖掘、机器学习相关工作的科研人员和工程技术人员。 使用场景及目标:适用于涉及时间序列分析和其他包含多变量、非线性的预测场景。旨在为金融投资分析、健康管理、天气预报等领域内的专家们提供更为精确可靠的数据分析工具和技术支持。同时,也为希望深入了解并掌握如何利用PSO、LSTM及注意力机制进行深度学习模型开发的学生和从业人员服务。 其他说明:本篇文章深入探讨了如何运用先进的优化算法和改进后的神经网络架构来进行高质量的预测分析任务。值得注意的是,在实际操作过程中需要特别注意数据的质量管理和合理的模型调优策略以保证最终的成果质量。
CTR2022年OTT大屏营销趋势研究报告41页.pdf
欠驱动水下航行器UUV-AUV的MATLAB Simulink控制仿真完整指南:从源程序到六自由度模型运动学与动力学基础推导,深入探索:欠驱动水下航行器UUV-AUV轴向运动子系统的MATLAB Simulink控制仿真学习指南,欠驱动水下航行器uuv auv 轴向运动子系统MATLAB simulink控制仿真可参考学习,慢慢入手。 在MATLAB R2019b环境运行正常,新版本可往前兼容。 内容包括: 源程序.m文件、simulink模型、仿真结果图形.fig、运行说明.txt、以及自己整理的,水下航行器六自由度模型的运动学和动力学基础推导有关知识.PDF ,核心关键词如下: 欠驱动水下航行器UUV/AUV;轴向运动子系统;MATLAB Simulink控制仿真;源程序.m文件;simulink模型;仿真结果图形.fig;运行说明.txt;六自由度模型;运动学和动力学基础推导;PDF文档;MATLAB R2019b环境;新版本兼容。,水下航行器uuv_auv MATLAB Simulink控制仿真资料合集
内容概要:本文详细介绍了数字电子技术的基础知识,涵盖了与模拟电路的对比、进制转换、码制及其应用(如原码、反码、补码)、逻辑运算的简化、门电路的基本概念和常见类型、组合及时序逻辑电路的区别、竞争和冒险现象、存储单元的相关知识、触发器的工作方式及其特性、存储器(ROM和RAM)的区别、常见时序逻辑电路的作用,以及一些重要电路(如555定时器)和AD转换的应用与评价。主要内容还包括了脉冲整形电路的功能及其选择标准,以及电路设计中的实际问题解决方法,如消除毛刺现象等。 适合人群:主要适用于大学本科生以及准备参加相关领域面试的人士,尤其是电子工程和计算机专业的学生和技术人员。 使用场景及目标:①帮助学生巩固和扩展对数字电路基础知识的理解;②为面试做准备,确保对数字电路关键知识点的回答更加精准;③提供实用的设计思路和技术细节,辅助解决实际工作中可能遇到的问题。 阅读建议:此资源全面覆盖了数电的关键内容,既包含理论讲解又涉及实践应用,因此建议读者系统地学习每个章节,并通过例题加深理解,必要时结合硬件平台实验操作进一步验证书中提及的技术和概念。
Labview机器视觉通用框架:LV2018 64位版本,源代码分享供学习交流之用,可编辑函数用于常规案例开发,Labview通用视觉框架源代码分享:用于机器视觉开发案例与学习交流,LV2018 64位版本,可编辑函数,labview通用视觉软件框架,机器视觉通用框架 通用视觉框架源代码。 可以参考用于开发常规案例。 提供,可用于学习交流。 里面有部分函数,用户也可随意编辑函数 LV2018 -64位版本 ,LabView通用视觉软件框架; 机器视觉通用框架; 通用视觉框架源代码; LV2018; 64位版本; 函数编辑,LabVIEW通用64位机器视觉框架源代码:学习与开发平台
2024-Stable Diffusion全套资料(软件+关键词+模型).rar
基于Matlab的M序列直接序列扩频通信系统:载波传输与信号接收解调解扩全流程演示PPT及说明文档,基于Matlab的M序列直接序列扩频通信系统:载波传输与信号接收解调解扩全流程演示PPT及说明文档,基于matlab的直接序列扩频通信系统,用的m序列,有载波,能输出发射信号、接收信号以及解调解扩后的波形,有PPT和说明文档 ,核心关键词:Matlab; 直接序列扩频通信系统; m序列; 载波; 发射信号; 接收信号; 解调解扩后波形; PPT; 说明文档。,Matlab中的直接序列扩频通信系统——M序列载波信号处理
基于级连H桥五电平并网逆变器的PQ功率环并网控制研究:LC滤波器与PI解耦控制及SPWM调制分析,基于级连H桥五电平逆变器的PQ功率环控制策略及电流环参数计算,级连H桥五电平并网逆变器PQ功率环并网 LC型滤波器,采用PI解耦控制,SPWM调制方式,带死区控制 1.提供五电平工作原理 2.提供功率环搭建原理 3.提供电流环控制参数计算方法 提供参考文献 支持simulink2022以下版本,联系跟我说什么版本,我给转成你版本(默认发2016b)。 #新能源性价比推荐 #电源及电源管理 ,核心关键词: 级连H桥五电平逆变器; PQ功率环; LC型滤波器; PI解耦控制; SPWM调制; 死区控制; 五电平工作原理; 功率环搭建原理; 电流环控制参数计算方法; 参考文献; Simulink。,基于级连H桥五电平逆变器的功率与电流环控制研究及应用实践