起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2209|回复: 7

[处理中] 使用biz-client调用 blobDownloadAction获取blob字段,报错

[复制链接]

76

主题

241

帖子

909

积分

高级会员

Rank: 4

积分
909
QQ
发表于 2016-8-2 14:06:10 | 显示全部楼层 |阅读模式
使用biz-client调用 blobDownloadAction获取blob字段,报“返回值必须是JSON或XML格式”
  1. public static JSONObject getImageUrlAction(JSONObject params, ActionContext context) throws SQLException, NamingException, ClientProtocolException, IOException {
  2.                 // 登录
  3.                 String bSessionID = login();
  4.                 String dataModel = params.getString("dataModel");
  5.                 String concept = params.getString("concept");
  6.                 String relation = params.getString("relation");
  7.                 String id = params.getString("id");
  8.                 String process = params.getString("process");
  9.                 String activity = params.getString("activity");

  10.                 JSONObject json = new JSONObject();
  11.                 try {
  12.                         Action action = new Action();
  13.                         // 指定动作的process、activity和action,这里要注意登录的用户应该有执行这个功能中的这个动作的权限
  14.                         action.setName("blobDownloadAction");
  15.                         action.setProcess(process);
  16.                         action.setActivity(activity);
  17.                         // 设置动作参数
  18.                         action.setParameter("blobDataModel", dataModel);
  19.                         action.setParameter("blobConcept", concept);
  20.                         action.setParameter("blobRelation", relation);
  21.                         action.setParameter("blobConceptValue", id);

  22.                         // 调用动作
  23.                         ActionResult actionResult = ActionEngine.invokeAction(action, ActionUtils.JSON_CONTENT_TYPE, bSessionID, null, null);

  24.                         // 判断是否调用成功
  25.                         if (actionResult.isSuccess()) {
  26.                                 // 返回值
  27.                                 json.put("url", convertStreamToString ( (InputStream)actionResult.getDatas().get(0) ));
  28.                                 return json;
  29.                         } else {
  30.                                 throw new RuntimeException(actionResult.getMessage());
  31.                         }
  32.                 } finally {
  33.                         // 要保证注销,否则会占用在线人数
  34.                         ActionEngine.logout(bSessionID);
  35.                 }
  36.         }
复制代码


91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-8-2 14:18:57 | 显示全部楼层
看错误堆栈中具体到什么地方报错的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

76

主题

241

帖子

909

积分

高级会员

Rank: 4

积分
909
QQ
 楼主| 发表于 2016-8-2 14:35:31 | 显示全部楼层
八月 02, 2016 2:34:45 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet WeX5_Baas_Servlet threw exception
com.justep.biz.client.ActionException: 返回的结果必须是XML或JSON格式!
        at com.justep.biz.client.ActionResult.<init>(Unknown Source)
        at com.justep.biz.client.ActionEngine.invokeActions(Unknown Source)
        at com.justep.biz.client.ActionEngine.invokeActions(Unknown Source)
        at com.justep.biz.client.ActionEngine.invokeAction(Unknown Source)
        at skshu.BlobUtils.getImageUrlAction(BlobUtils.java:46)
        at skshu.Common__do.getImageUrlAction(Common__do.java:139)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-8-2 14:42:33 | 显示全部楼层
at skshu.BlobUtils.getImageUrlAction(BlobUtils.java:46)
        at skshu.Common__do.getImageUrlAction(Common__do.java:139)

执行的具体是那行?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

76

主题

241

帖子

909

积分

高级会员

Rank: 4

积分
909
QQ
 楼主| 发表于 2016-8-2 14:42:57 | 显示全部楼层
ActionResult actionResult = ActionEngine.invokeAction(action, ActionUtils.JSON_CONTENT_TYPE, bSessionID, null, null);
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-8-2 15:20:03 | 显示全部楼层
blobDownloadAction的返回类型是InputStream
ActionResult actionResult = ActionEngine.invokeAction(action, ActionUtils.JSON_CONTENT_TYPE, bSessionID, null, null);这个地方不能写错json
用ActionUtils.BINARY_CONTENT_TYPE看看


而且如果要返回url,可以直接用下面的方式,自己在加上bsessionid参数,/UI2/system/service/common/bizAction.j这个可以直接从http://开头
String url = "/UI2/system/service/common/bizAction.j?" + "blobDataModel=/appdemo/test/data" // 数据模块目录
                                                + "&blobConcept=AP_BLOBTP" // 概念名
                                                + "&blobRelation=fBLOBTP" // 关系名
                                                + "&blobConceptValue=" + r.getValue("AP_BLOBTP") // 行ID
                                                + "&process=/appdemo/test/process/reportBlobIMage/reportBlobIMageProcess" // 流程名称
                                                + "&activity=mainActivity" // 环节名称
                                                + "&action=blobDownloadAction" // 调用的Action
                                                + "&$query-version=" + com.justep.system.util.CommonUtils.createGUID();
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

76

主题

241

帖子

909

积分

高级会员

Rank: 4

积分
909
QQ
 楼主| 发表于 2016-8-2 15:25:35 | 显示全部楼层
没有ActionUtils.BINARY_CONTENT_TYP这个属性,我只是想获取表中的blob字段
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-8-2 15:36:32 | 显示全部楼层
OBJECT_TYPE这个类型看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-6 17:53 , Processed in 0.065501 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表