上个版本完成了与ODM的交互. 主要用的是web service.
需求:把用户上传的图片传到ODM系统.一段时间后(我们系统服务器保存用户图片为62天),
用户如果想要查看图片,我们通过web service从odm系统获取 图片进行展示。
备注:分2次进行汇总,第一部分是从odm系统获取图片展示;第二部分是上传图片到odm系统.
源码及shell脚本存于网盘/java/project/odm.本文介绍第一部分.
一, 准备工作:
1), wsdl文件
2), 访问时所需的 URL, username 和password
二, 开发过程
1), 用jdk自带工具wsimport生成客户端代码.
wsimpost命令有几个重要的参数, 如下:
-keep:是否生成java源文件
-d:指定输出目录
-s:指定源代码输出目录
-p:以package的形式生成文件
-verbose:在控制台显示输出信息
e.g. wsimport odmService.wsdl -s com.darren -p C:\11_Darren\java\wsimport\src
2), 复制客户端代码到工程中,把所需访问的URL地址配置到配置文件中,根据环境不用可随意变更.
3), coding 调用
e.g.
ODMServiceService service = null;
// 准备参数
GetDocumentRequestTO getDocumentRequest = new GetDocumentRequestTO();
getDocumentRequest.setDocumentId(odm_job_id);
getDocumentRequest.setLoginPassword(ApplicationConstant.IN_ODM_PWD);
getDocumentRequest.setLoginUser(ApplicationConstant.IN_ODM_USER);
try {
//服务链接, 连接失败会抛出WebServiceException
service = new ODMServiceService();
//获取图片,获取失败抛出ODMServiceException_Exception
GetDocumentResponseTO rto = service.getODMService().getDocument(
getDocumentRequest);
//把基于base64的图片输出到前台
OutputStream os = response.getOutputStream();
response.setContentType("image/jpeg");
byte[] b = rto.getData();
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{
b[i]+=256;
}
}
os.write(b);
os.flush();
os.close();
} catch (WebServiceException e1) {
log.error("could not connect to ODM server. "+ e1.getMessage()));
log.error("args URL:"+ApplicationConstant.ODM_URL);
return odm_err_msg;
}catch(ODMServiceException_Exception e2){
log.error("get photo failed. details: "+ e1.getMessage()));
return odm_err_msg;
}catch (Exception e){
log.error("get photo failed. details: "+ e.getMessage()));
return odm_err_msg;
}
后记:
1),开发时遇到wsdl文件种有重复定义节点导致无法生成客户端代码.
2), 开发时遇到发送无效的图片ID,导致odm返回tomcat异常界面,尴尬.
3),权限问题.
相关推荐
对象类可以被视为具有特定属性和行为的一组对象的集合,而对象则是这些类的具体实例。例如,一个对象类可能代表系统中的某种设备类型,而该类下的每个对象则对应一个具体的设备实例。 在C语言的上下文中,我们可以...
供应链价格上涨对于ODM厂商而言是一个利好因素,因为品牌厂商寻求与ODM厂商合作以分担风险。 闻泰作为全球最大的手机ODM厂商,其出货量远远领先于其他厂商。闻泰公司的业务布局包括三个研发中心和一个生产基地,...
#### 一、ODM简介 在AIX系统中,ODM(Object Data Manager)是一个非常重要的组件,用于管理和存储非结构化的数据对象。这些对象通常与系统的配置、设备驱动程序以及其他系统级设置相关。通过ODM,管理员可以方便地...
MongoDB的ODM(Object-Document Mapping)是用于将数据模型与MongoDB文档数据库之间的映射技术,使得开发者可以用面向对象的方式来操作数据库,而无需直接处理底层的BSON文档。在PHP中,ODM框架可以帮助我们更高效、...
第一部分:ODM业务模式与形态 ODM业务模式可以分为六种形态:OEM、ODM、OSM、OMM、OBM和OXM。每种形态都有其特点和优点。OEM是指Original Equipment Manufacturer,即原始设备制造商,指的是制造商仅仅生产产品。...
ODM(Operational Decision Manager)是IBM提供的一款用于管理和执行业务规则的服务,它帮助企业快速响应不断变化的业务需求。在ODM8.6版本中,WebSphere Application Server (WAS) 作为应用服务器平台,提供了运行...
7. **关联**:ODM还支持Laravel的模型关联,如一对一、一对多、多对多关系,尽管实现可能与Eloquent略有不同。 8. **序列化和JSON响应**:由于MongoDB文档的天然JSON结构,模型实例可以轻松地转换为JSON,非常适合...
在IBM的产品线中,ODM 与其他工具和解决方案有很好的整合性,比如与其他IBM的业务流程管理工具、企业服务总线(Enterprise Service Bus,ESB)和云服务等。这为IBM ODM 用户提供了灵活性,可以根据企业现有的IT基础...
odm-v2.2.250.rar
在实际应用中,AIX 管理员通常会利用 ODM 来管理硬件设备、文件系统、网络配置等,通过编写脚本或使用工具(如 `odmget`、`odmmod` 和 `odmdelete` 命令)来交互式地操作 ODM 数据库。了解和熟练掌握 ODM 管理对于...
录像机ODM整机工具NVRBoxTestTool是一款专为录像机原始设备制造商(ODM)设计的测试软件,主要用于确保NVR(Network Video Recorder,网络视频录像机)产品的功能完整性、性能稳定性和兼容性。在开发和生产过程中,...
而"Laravel开发-laravel-odm"这个主题聚焦于Laravel与MongoDB的集成,MongoDB是一种非关系型数据库(NoSQL),以其灵活性、高性能和可扩展性在大数据时代脱颖而出。 Laravel 4引入了门面(Facade)和服务容器等概念...
标题中的“odm-v2.2.250.msi.7z”表示这是一个名为"Onvif Device Manager"的软件的版本2.2.250,采用MSI安装包格式,并且已压缩成7z文件,便于下载和存储。MSI是Microsoft Installer的缩写,是一种Windows平台下的...
8. **社区支持与贡献**:作为一个开源项目,ODM有其社区和论坛,用户和开发者可以在其中交流经验、报告问题、提交修复或提出新的功能建议,共同推动项目的发展。 通过研究ODM开源项目,开发者不仅可以了解下载管理...
ONVIF,ONVIF Device Manager,odm
电子制造服务(EMS)与原始设计制造商(ODM)是电子制造业中的重要组成部分。这两种模式在供应链管理、产品设计与制造、...对于从事电子制造行业的公司来说,了解和适应EMS与ODM的发展现状和趋势是其成功的关键之一。
**OpenDroneMap (ODM)** 是一个基于 C++ 的命令行工具包,专为从无人机、气球或风筝拍摄的图像中创建地理空间数据而设计。它利用计算机视觉技术来处理这些图像,生成高精度的地图、点云、3D 模型以及数字高程模型...
ODM(Original Design Manufacturer,原始设计制造商)合作框架协议正是这种合作关系的重要体现,它规定了甲乙双方在ODM项目合作中的权利、义务和期望。在本文中,我们将深入探讨ODM合作框架协议的各项内容,并对其...
ODM,全称为Open Device Manager,是一个开源的设备管理工具,尤其在监控系统中广泛使用。这个名为"odm-v2.2.250查看软件.msi.zip"的压缩包文件,包含了版本号为2.2.250的ODM软件安装程序,其主要功能是帮助用户进行...