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

QQ登录

只需一步,快速开始

查看: 16270|回复: 9

[结贴] attachmentImage组件上传的图片导出PDF报表报错!

[复制链接]

96

主题

293

帖子

964

积分

高级会员

Rank: 4

积分
964
QQ
发表于 2020-12-18 15:30:15 | 显示全部楼层 |阅读模式
版本: BeX5V3.5 小版本号:
数据库: Oracle 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 8 浏览器: Chrome
本帖最后由 追梦! 于 2021-1-4 16:51 编辑


[附件图像],[报告],[PDF]\\错误!

测试.png

后台报错信息:

十二月 18, 2020 3:29:08 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet JustepDocFileServlet threw exception
org.outerj.daisy.runtime.DaisyRTException: UnknowException
at com.justep.doc.httpconnector.HttpConnector.service(Unknown Source)
at com.justep.doc.httpconnector.FileServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
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)
在 java. lang. Thread. run (线程.java:745)
由: java. lang. runtime 例外: 访问存储库架构信息时出错。
在 org. outerj. daisy. 存储库. commonimpl. VersionImpl. getPart
(VersionImpl.java:138) 在 com. justep.doc. httpconnector. 处理程序. 抽象文件下载处理程序.
下载 (未知源) 在 com. just.doc. httpconnector. 处理程序. FileViewHandler.
句柄请求 (未知源) 在 com. justep.doc. httpconnector. httpconnector$Pathhandler. 句柄 (未知源)
...
15 更多原因: org. outerj. daisy. 存储库. 架构. parttypeNotFoundException: 名为 "内容 & bsessionid\ null"
的部件类型在 org. outerj. daisy. 存储库. commonimpl. schema. 存储库SchemaCache. getParttypebyname (存储库
schemacache.java: 194) 在 org. outerj. daisy. 存储库. commonimpl. schema. commonrepositorySchema. getparttypebyname (公共存储库 xema.java: 125) 在
org. outerj. daisy. co. 公共
应用程序. 版本应用程序. getpart (Versionimpl.java:136)...18 more

[ERROR] 2020-12-18 15:29:08,794 com.justep.report.controller.OutputController - 报表输出失败
报表转换文件失败
com.justep.report.exception.ReportServerException: 报表输出失败
at com.justep.report.controller.OutputController.execute(Unknown Source)
at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
at com.justep.report.controller.CacheController.execute(Unknown Source)
at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
at com.justep.report.controller.ReportController.execute(Unknown Source)
at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
at com.justep.report.controller.DataController.execute(Unknown Source)
at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
at com.justep.report.controller.InitController.execute(Unknown Source)
at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
at com.justep.report.Servlet.a(Unknown Source)
at com.justep.report.Servlet.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
atorg. apache. catalina. core. 标准包装瓦尔维. 调用 (标准包装瓦尔夫
.java: 233) 在 org. apache. catalina. core. 标准康弗瓦尔夫. 调用 .标准上下文瓦尔
夫.java: 191) 在 org. apache. catalina. core. 标准主机骑士.java调用
(标准主机) S:127) 在
org. apache. catalina. 阀门. errorreportValve. 调用 (ErrorreportValve.java:103) 在 org. apache. catalina. core.
标准英语阀. 调用 (标准英语瓦尔夫.java: 109) 在 org. apache. catalina. 连接器
. coyoteadapt 服务 (coyoteAdapter.java:293) 在 org. apache. coyote. http11. http11 处理器. 进程 (http11 处理器.java:861)
在 org. apache. coyote. http11. http11Protocol$http11Connectionhandler. 进程 (http11 1Protocol.java:606)



在 org. apache. tomcat. util. net. Jioendpoint$Worker. run (Jioendpoint.java:489) 在 java. lang. Thread. run.run (线程.java: 745) 由: java. lang. runtime 感知: _...26
更多原因: java. lang. 运行时例外: [Pdf],]: E: [Wise] apache - tomcat _ temp. justep. report. convertor. StreamCache - 2801695779279969. temp
在 com. justep. report. convertor. pdfConvertor. 生成 byte (未知来源)
...26
更多原因: java. lang. 运行时例外: Fo [
pdf] 在 com. justep. report. convertor. Pdf
转换器. a (未知来源) ...27
更多原因: org.w3c.dom.domException: 当前文档无法创建请求类型的元素 (命名空间: http://www.w3.org/2000/svg,名称: html)。
at org.apache.batik.dom.AbstractNode.createDOMException(Unknown Source)
at org.apache.batik.dom.svg.SVGDOMImplementation.createElementNS(Unknown Source)
at org.apache.batik.dom.svg.SVGOMDocument.createElementNS(Unknown Source)
at org.apache.batik.dom.svg.SVGDOMImplementation.createDocument(Unknown Source)
at org.apache.batik.dom.util.SAXDocumentFactory.startElement(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument(Unknown Source)
at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createSVGDocument(Unknown Source)
at org.apache.fop.image.loader.batik.PreloaderSVG$Loader.getImage(PreloaderSVG.java:122)
at org.apache.fop.image.loader.batik.PreloaderSVG$Loader.access$100(PreloaderSVG.java:105)
at org.apache.fop.image.loader.batik.PreloaderSVG.preloadImage(PreloaderSVG.java:73)
at org.apache.xmlgraphics.image.loader.ImageManager.preloadImage(ImageManager.java:165)
at org.apache.xmlgraphics.image.loader.cache.ImageCache.needImageInfo(ImageCache.java:96)
at org.apache.xmlgraphics.image.loader.ImageManager.getImageInfo(ImageManager.java:112)
at org.apache.fop.fo.flow.ExternalGraphic.bind(ExternalGraphic.java:79)
at org.apache.fop.fo.FObj.processNode(FObj.java:126)
at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:286)
at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:163)
at net.sf.saxon.event.ContentHandlerProxy.startContent(ContentHandlerProxy.java:362)
at net.sf.saxon.event.NamespaceReducer.startContent(NamespaceReducer.java:197)
at net.sf.saxon.event.ReceivingContentHandler.startElement(ReceivingContentHandler.java:367)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
atorg. apache. xerces. impl. xmlnsdocumentscannerImpl. scanstartelement
(未知来源) 在 org. apache. xerces. impl. xmldocumentFragmentScannerg
在 org. apache. xerces. impl. XMLDocumentFragmentCannerImpl.scanDocument(
未知源)在 org.apache.xerces.parsers.XML11Configuration.parse(未知源)在
org.apache.xerces.parsers.XML11Confiation.parse(未知源)ache.
xerces. parsers. xmlparser. parse
(未知源) 在 org. apache. xerces. parsers. Abstractsaxparser. parse (未知源) 在 org. apache. xerces. jaxp. Saxparserimp$JAXPSAXParser.
parse (未知来源) 在
net. sf. saxon. event. Sender. sendsaxsource (发送者.java:404)
在 net. sf. saxon. send.java:214)
在 net.
sf. saxon. 身份转换. 转换 (身份转换器.java:30)...28 更多



获取图片地址方法.png

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2020-12-18 16:54:42 | 显示全部楼层
图片的url怎么拼接的?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

96

主题

293

帖子

964

积分

高级会员

Rank: 4

积分
964
QQ
 楼主| 发表于 2021-1-4 16:52:13 | 显示全部楼层
jishuang 发表于 2020-12-18 16:54
图片的url怎么拼接的?

使用的是起步提供的方法: 获取图片地址方法.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2021-1-4 18:03:59 | 显示全部楼层
js中拼接的url在报表中显示的?图片名有特殊的字符吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

96

主题

293

帖子

964

积分

高级会员

Rank: 4

积分
964
QQ
 楼主| 发表于 2021-1-5 14:32:00 | 显示全部楼层
jishuang 发表于 2021-1-4 18:03
js中拼接的url在报表中显示的?图片名有特殊的字符吗?

没有任何特殊文件名,你在本地做个测试就好了。现在的情况是可以在report报表中显示,但是用report自带的导出PDF文件就会报错。本地搭个环境很快就能还原出这个问题来
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2021-1-5 18:51:49 | 显示全部楼层
你好楼主,这个问题需要我在本地环境进行问题重现,所以会花费较长时间,请你耐心等待,我完成后会第一时间反馈结果,谢谢!
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2021-1-6 12:09:56 | 显示全部楼层
本地测试后端服务中拼接的url,导出pdf没问题
  1.         public static Table reportAttachmentImageUrl(){
  2.                 String ksql = "select fjtp.* from AP_FJTP fjtp";
  3.                 Table table = KSQL.select(ksql, null, "/appdemo/test/data", null);
  4.                 Iterator<Row> it = table.iterator();
  5.         while (it.hasNext()){
  6.                 Row r = it.next();
  7.                 String v = r.getString("fAttachmentPicture");//取出图片字段
  8.                 if(!Utils.isEmptyString(v) && !v.equals("[]")){
  9.                         JSONArray json = JSONArray.parseArray(v);
  10.                         JSONObject jsonObject = json.getJSONObject(0);
  11.                          String docPath = jsonObject.getString("docPath");
  12.                      String fileID = jsonObject.getString("fileID");

  13.                          try {
  14.                                  String urlPattern = "/repository/file/view/"+fileID+"/last/content";
  15.                                  String url = addBsessionid(DocAdapter.queryNoPermissionHost(true, docPath, urlPattern, true)); //通过docPath和fileID获得图片的url
  16.                                  r.setString("fAttachmentPicture", url); //将url存入table对象
  17.                          } catch (Exception e) {
  18.                                  // TODO Auto-generated catch block
  19.                                  e.printStackTrace();
  20.                          }
  21.                   
  22.                 }
  23.         }
  24.                 return table;
  25.         }
复制代码
report.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

96

主题

293

帖子

964

积分

高级会员

Rank: 4

积分
964
QQ
 楼主| 发表于 2021-1-12 09:30:33 | 显示全部楼层
jishuang 发表于 2021-1-6 12:09
本地测试后端服务中拼接的url,导出pdf没问题

意思是只能用后端代码来返回图片地址,前端提供的那个js方法不推荐使用呗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2021-1-12 11:59:44 | 显示全部楼层
报表的数据都是从后端来的推荐从后端直接返回的数据
而且数据上是需要加session的值的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

96

主题

293

帖子

964

积分

高级会员

Rank: 4

积分
964
QQ
 楼主| 发表于 2021-2-24 10:12:47 | 显示全部楼层
jishuang 发表于 2021-1-12 11:59
报表的数据都是从后端来的推荐从后端直接返回的数据
而且数据上是需要加session的值的 ...

结帖吧,前端返回的连接其实是有session的值的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 02:57 , Processed in 0.087719 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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