与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),权限问题.

  

猜你喜欢

转载自ldaolong.iteye.com/blog/2405361