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

QQ登录

只需一步,快速开始

查看: 10813|回复: 14

[结贴] biz层下载指定文件

[复制链接]

156

主题

748

帖子

2430

积分

金牌会员

Rank: 6Rank: 6

积分
2430
QQ
发表于 2020-7-15 15:20:07 | 显示全部楼层 |阅读模式
在.J文件调用action去下载指定文件。解决会把.J文件给下载下来。请问是什么原因?action方法
  1. public static InputStream test() throws IOException{
  2.                 String path =com.justep.common.SystemUtils.getHome(null)+"/excel/";
  3.                 String excelName = "xxxx模板.xlsx";
  4.                 InputStream in = new FileInputStream(path+excelName); // 获取下载文件的输入流
  5.                 return in;
  6.         }
复制代码
.J调用
  1. Action action = new Action();
  2.                 action.setProcess("/demo/actions/process/integration/integrationProcess");
  3.                 action.setActivity("staticActivity2");
  4.                 action.setName("test");
  5.                 String bSessionID = "5B66B4A81C4C5CC4BAFBC10B8A16352F";
  6.                 ActionEngine.invokeAction(action, ActionUtils.BINARY_CONTENT_TYPE, bSessionID, null, new StreamCallback(response));
复制代码


91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-7-15 17:25:49 | 显示全部楼层
参考/UI2/demo/actions/process/invokeAction/mainActivity.w中下载的实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

156

主题

748

帖子

2430

积分

金牌会员

Rank: 6Rank: 6

积分
2430
QQ
 楼主| 发表于 2020-7-15 17:31:22 | 显示全部楼层
jishuang 发表于 2020-7-15 17:25
参考/UI2/demo/actions/process/invokeAction/mainActivity.w中下载的实现

这个看过了,不在UI层下载,要求在biz层下载
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-7-15 19:10:28 | 显示全部楼层
BIZ层下载为什么调用.j
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

156

主题

748

帖子

2430

积分

金牌会员

Rank: 6Rank: 6

积分
2430
QQ
 楼主| 发表于 2020-7-16 09:13:33 | 显示全部楼层
jishuang 发表于 2020-7-15 19:10
BIZ层下载为什么调用.j

如果不用.j调用,直接使用sendRequest方法调用吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-7-16 18:04:14 | 显示全部楼层
js中直接调用action
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

156

主题

748

帖子

2430

积分

金牌会员

Rank: 6Rank: 6

积分
2430
QQ
 楼主| 发表于 2020-7-17 14:02:56 | 显示全部楼层
jishuang 发表于 2020-7-16 18:04
js中直接调用action

不行,如果使用
  1. HttpServletResponse response = ContextHelper.getRequestContext().getResponse();
复制代码
把文件流写入response中,报
  1. java.lang.IllegalStateException: getOutputStream() has already been called for this response
  2.         at org.apache.catalina.connector.Response.getWriter(Response.java:611)
  3.         at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
  4.         at com.justep.business.server.BusinessServerServlet.doServerError(Unknown Source)
  5.         at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
  6.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  7.         at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
  8.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  9.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  10.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  11.         at com.justep.micro.service.MicroServiceFilter.doFilter(Unknown Source)
  12.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  13.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  14.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  15.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  16.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  17.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  18.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  19.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  20.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  21.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  22.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  23.         at java.lang.Thread.run(Thread.java:745)
复制代码
直接返回InputStream报请求错误编码:200。
我的需求是:前台点击下载按钮,调用action方法到指定的目录下载文件。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-7-17 19:40:39 | 显示全部楼层
具体需求是要做什么?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

156

主题

748

帖子

2430

积分

金牌会员

Rank: 6Rank: 6

积分
2430
QQ
 楼主| 发表于 2020-7-20 09:56:58 | 显示全部楼层
jishuang 发表于 2020-7-17 19:40
具体需求是要做什么?

需求:页面有个下载按钮,会下载服务器上指定目录下的模板。要求用户必须是登录之后才能下载,所以想用调用action的方式
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-7-21 11:19:44 | 显示全部楼层
下载模板具体要做什么?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 17:28 , Processed in 0.062813 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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