`

与ODM组交互汇总(一)

 
阅读更多

   上个版本完成了与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),权限问题.

 

 

 

  

 

分享到:
评论

相关推荐

    ODM内部结构深入浅出

    对象类可以被视为具有特定属性和行为的一组对象的集合,而对象则是这些类的具体实例。例如,一个对象类可能代表系统中的某种设备类型,而该类下的每个对象则对应一个具体的设备实例。 在C语言的上下文中,我们可以...

    2017手机ODM市场研究

    供应链价格上涨对于ODM厂商而言是一个利好因素,因为品牌厂商寻求与ODM厂商合作以分担风险。 闻泰作为全球最大的手机ODM厂商,其出货量远远领先于其他厂商。闻泰公司的业务布局包括三个研发中心和一个生产基地,...

    AIX系统ODM管理

    #### 一、ODM简介 在AIX系统中,ODM(Object Data Manager)是一个非常重要的组件,用于管理和存储非结构化的数据对象。这些对象通常与系统的配置、设备驱动程序以及其他系统级设置相关。通过ODM,管理员可以方便地...

    mongodb的odm封装

    MongoDB的ODM(Object-Document Mapping)是用于将数据模型与MongoDB文档数据库之间的映射技术,使得开发者可以用面向对象的方式来操作数据库,而无需直接处理底层的BSON文档。在PHP中,ODM框架可以帮助我们更高效、...

    ODM业务模式与渠道管理.pdf

    第一部分:ODM业务模式与形态 ODM业务模式可以分为六种形态:OEM、ODM、OSM、OMM、OBM和OXM。每种形态都有其特点和优点。OEM是指Original Equipment Manufacturer,即原始设备制造商,指的是制造商仅仅生产产品。...

    ODM8.6-WAS样本服务器部署文档

    ODM(Operational Decision Manager)是IBM提供的一款用于管理和执行业务规则的服务,它帮助企业快速响应不断变化的业务需求。在ODM8.6版本中,WebSphere Application Server (WAS) 作为应用服务器平台,提供了运行...

    Laravel开发-odm

    7. **关联**:ODM还支持Laravel的模型关联,如一对一、一对多、多对多关系,尽管实现可能与Eloquent略有不同。 8. **序列化和JSON响应**:由于MongoDB文档的天然JSON结构,模型实例可以轻松地转换为JSON,非常适合...

    IBM ODM for Dummies

    在IBM的产品线中,ODM 与其他工具和解决方案有很好的整合性,比如与其他IBM的业务流程管理工具、企业服务总线(Enterprise Service Bus,ESB)和云服务等。这为IBM ODM 用户提供了灵活性,可以根据企业现有的IT基础...

    odm-v2.2.250.rar

    odm-v2.2.250.rar

    AIX ODM管理介绍

    在实际应用中,AIX 管理员通常会利用 ODM 来管理硬件设备、文件系统、网络配置等,通过编写脚本或使用工具(如 `odmget`、`odmmod` 和 `odmdelete` 命令)来交互式地操作 ODM 数据库。了解和熟练掌握 ODM 管理对于...

    录像机ODM整机工具NVRBoxTestTool

    录像机ODM整机工具NVRBoxTestTool是一款专为录像机原始设备制造商(ODM)设计的测试软件,主要用于确保NVR(Network Video Recorder,网络视频录像机)产品的功能完整性、性能稳定性和兼容性。在开发和生产过程中,...

    Laravel开发-laravel-odm

    而"Laravel开发-laravel-odm"这个主题聚焦于Laravel与MongoDB的集成,MongoDB是一种非关系型数据库(NoSQL),以其灵活性、高性能和可扩展性在大数据时代脱颖而出。 Laravel 4引入了门面(Facade)和服务容器等概念...

    odm-v2.2.250.msi.7z

    标题中的“odm-v2.2.250.msi.7z”表示这是一个名为"Onvif Device Manager"的软件的版本2.2.250,采用MSI安装包格式,并且已压缩成7z文件,便于下载和存储。MSI是Microsoft Installer的缩写,是一种Windows平台下的...

    odm开源(仿迅雷源码)

    8. **社区支持与贡献**:作为一个开源项目,ODM有其社区和论坛,用户和开发者可以在其中交流经验、报告问题、提交修复或提出新的功能建议,共同推动项目的发展。 通过研究ODM开源项目,开发者不仅可以了解下载管理...

    ONVIF Device Manager odm-v2.2.250

    ONVIF,ONVIF Device Manager,odm

    电子制造业EMS与ODM现状参考.pdf

    电子制造服务(EMS)与原始设计制造商(ODM)是电子制造业中的重要组成部分。这两种模式在供应链管理、产品设计与制造、...对于从事电子制造行业的公司来说,了解和适应EMS与ODM的发展现状和趋势是其成功的关键之一。

    cpp-ODM一个命令行工具包用于从无人机气球或风筝图像生成地图点云3D模型和DEM

    **OpenDroneMap (ODM)** 是一个基于 C++ 的命令行工具包,专为从无人机、气球或风筝拍摄的图像中创建地理空间数据而设计。它利用计算机视觉技术来处理这些图像,生成高精度的地图、点云、3D 模型以及数字高程模型...

    ODM合作框架协议.pdf

    ODM(Original Design Manufacturer,原始设计制造商)合作框架协议正是这种合作关系的重要体现,它规定了甲乙双方在ODM项目合作中的权利、义务和期望。在本文中,我们将深入探讨ODM合作框架协议的各项内容,并对其...

    odm-v2.2.250查看软件.msi.zip

    ODM,全称为Open Device Manager,是一个开源的设备管理工具,尤其在监控系统中广泛使用。这个名为"odm-v2.2.250查看软件.msi.zip"的压缩包文件,包含了版本号为2.2.250的ODM软件安装程序,其主要功能是帮助用户进行...

Global site tag (gtag.js) - Google Analytics