spring mvc框架 加ireport模板打印pdf文件异常 高手指点

spring mvc框架 加ireport模板打印pdf文件异常 高手指点,第1张

为什么不直接用servlet?

if ("pdf".equals(strfiletype.trim())) {//导哪蔽铅出pdf

System.out.println("导出pdf.........")

byte[] bytes = JasperRunManager.runReportToPdf(reportFile

.getPath(), parameters, conn)

response.setContentType("application/pdf")

response.setContentLength(bytes.length)

String filename = null

if(exportFileName != null &&!exportFileName.equals("")){

filename = exportFileName + ".pdf"

}else{

filename = DateTime.getSystemDateTimeString() + ".pdf"李好

}

String fileName = new String(filename.getBytes("GBK"),

"ISO8859_1")

response.setHeader("Content-disposition",

"attachmentfilename="并乎 + fileName)

ServletOutputStream ouputStream = response.getOutputStream()

ouputStream.write(bytes, 0, bytes.length)

ouputStream.flush()

ouputStream.close()

response.setStatus(response.SC_OK)

response.flushBuffer()

System.out.println("导出pdf....end.....")

}

springboot对自带的logback框架集成太高了,稍有不慎就亩运导致自己的log4j的配置可能无效。

首先将spring-boot-starter中的logging去除,如图:

我原本以为这就完了,引入了log4j的框架确实能用,但是控制台打印不出来sql的细节。于是又找呀芦派找。终于发现在spring-boot-starter-web中还有logback的存在,再次去除:

然后再引入log4j的依赖spring-boot-starter-log4j,注意的是如果引入后发现报错,比如slf4j缺失了等等,先看一下maven的陪耐贺依赖库里,引入spring-boot-starter-log4j共有四个依赖包。如下图。

网上1.3.8这个版本遍地都是。一定要看好下面是四个jar包,不需要引入额外的slf4j的jar包。

如果想要打印sql的详情在log4j.properties中加一句:log4j.logger.com.gd.app.dao=DEBUG

log4j的配置文件

Logback简介: Logback是一个开源的日志组件,师出同门,与log4j一样,logback也是由Ceki Gülcü开发的开源日志组件,可以说是log4j的改进版;在现如今的项目中,logback的出现次数越来越多,是目前主流首选的日志记录工具。

logback分成三个模块:logback-core,logback- classic,logback-access(这个不常用)。

启动项目时,logback会按照如下顺序扫描配置文件:

以上任何一项找到了,就不进行后续扫描,按照对应的配置进行logback的初始化,可从控制台输出信息中查看加载的配置文件。

在Springboot项目中可以自定义logback配置文件名及文蠢族件位置

要想让Springboot项目识别到该logback配置文件,只需要在Springboot配置文件中定义好配置文件的加载路径即可如下所示:

负责写日志的组件,有两个必要属性name和class

encoder节点负责两件事情:

以下是一个常用配置:

配合appender使用,<filter>是<appender>的一个子节点,表示在当前给到的日志级别下再进行一次过滤

<logger>用来设置某一个包或者具体某一个类的日志打印级别、以及指定appender。

<logger>可以包含零个或者多个<appender-ref>元素,标识这个appender将会添加到这个logger。

<root>也是<logger>元素,但它是根logger,只有一个level属性,因为它的name就是ROOT

示茄档厅例:

该 <springProfile>标签允许我们更加灵活配置文件,可选地包含颤隐或排除配置部分。元素中的任何位置均支持轮廓部分。使用该name属性指定哪个配置文件接受配置。可以使用逗号分隔列表指定多个配置文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12257382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存