日常报错 相关博客-Java技术分享站

    日常报错 code-error jvm123.com 是一个java技术分享站,内容涉及java、jvm、程序开发,单元测试框架Spock教程,测试视频教程,spring框架教程等, 以及服务器搭建、linux、docker等相关技术。

excel-converter-starter导出excel文件时,数据列的顺序问题

<!-- wp:heading --> <h2>问题描述:</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>在使用 excel-converter-starter 时,注入ExExporter或者ExcelExporter导出数据时,有时导出的excel中,数据列的顺序不是按照配置文件中的顺序。例如有以下配置:</p> <!-- /wp:paragraph --> <!-- wp:preformatted --> <pre class="wp-block-preformatted">excel: converter: props-map: default: sheet-index: 1 name-row-index: 0 comment-row-index: 1 first-data-row-index: 2 last-data-row-index: -1 data-row-num: -1 start-column-index: 0 <strong> name-header-map: id: ID name: 名称 address: 地址 date: 日期</strong> show-name-row: true</pre> <!-- /wp:preformatted --> <!-- wp:paragraph --> <p>数据列分别为id,name,address,date,但是最终导出excel中的列的顺序乱了。</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>分析:</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>由于 <strong>name-header-map</strong> 是LinkedHashMap类型的,以保证最终导出是有序的,所以在推测应该是在读取配置文件时就已经乱序了。 </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>再测试几次发现:使用application.properties配置文件就会使 nameHeaderMap 乱序,所以,应该是 spring boot 读取 .properties 和 .yml 配置文件的方式不同,导致读取进来的 LinkedHashMap 的顺序错乱。</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>解决方法:</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>1 采用 application.yml配置文件即可</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>2 如果项目原本就采用application.properties配置文件,可以新建一个application-excel.yml 文件,再在 application.properties配置文件 中导入即可,导入 application-excel.yml 配置文件只需要加入以下配置:</p> <!-- /wp:paragraph --> <!-- wp:code --> <pre class="wp-block-code"><code>spring.profiles.include=excel</code></pre> <!-- /wp:code -->

分类:spring开发笔记日常报错源码项目分享springbootjavaexcelspringcloud
标签:excelspringapplication.propertiesspringbootexcel converter日常报错java导出SpringCloud

2019-09-27 23:17:39.0
excel-converter-starter导出excel文件时,数据列的顺序问题  excel-converter-2

SpringCloud环境下Springboot 上传文件名中文乱码

<!-- wp:heading --> <h2>文件名乱码问题</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>SpringCloud环境下Springboot 上传文件时, 中文文件名会出现乱码,文件名变成问号。但是,如果不通过网关zuul,上传文件就不会乱码。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>如下:</p> <!-- /wp:paragraph --> <!-- wp:image {"id":1080} --> <figure class="wp-block-image"><img src="http://jvm123.com/wp-content/uploads/2019/09/upload-luanma-1024x182.jpg" alt="" class="wp-image-1080"/></figure> <!-- /wp:image --> <!-- wp:heading --> <h2>使用zuul过滤器解决</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>解决这个问题,zuul文档中推荐使用zuul的文件处理过滤器。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>而对于我们开发者来说,只需要在调用上传的接口时,url前面额外添加一个/zuul就可以应用这些过滤器了。如下代码:</p> <!-- /wp:paragraph --> <!-- wp:code --> <pre class="wp-block-code"><code> var uploaderOptions = { queueLimit: 1, autoUpload: true, url: '/zuul/cqwf-store/import/upload', accepts: ['pdf', 'zip'], wrongFormatInfo: '文件格式不正确!' }; self.uploader = createUploader(uploaderOptions);</code></pre> <!-- /wp:code -->

分类:javaspringbootspringspringcloudJVM开发笔记日常报错
标签:spring中文乱码日常报错文件上传zuulspringbootSpringCloudzuul过滤器

2019-09-18 11:30:28.0
SpringCloud环境下Springboot 上传文件名中文乱码  springcloud-huan

Springboot 上传文件系统找不到指定的路径

<!-- wp:heading --> <h2>上传报错信息</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>Springboot 上传文件报错,在使用 MultipartFile 的 transferTo 方法时报错,代码如下:</p> <!-- /wp:paragraph --> <!-- wp:code --> <pre class="wp-block-code"><code> public String tmpMdbFile(MultipartFile file) { File dest = new File(TMP_DIR + System.currentTimeMillis() + "_" + file.getOriginalFilename()); try { file.transferTo(dest); } catch (IOException e) { e.printStackTrace(); } return dest.getAbsolutePath(); }</code></pre> <!-- /wp:code --> <!-- wp:paragraph --> <p>报错信息如下:</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>java.io.IOException: java.io.FileNotFoundException: C:\Users\yawn\AppData\Local\Temp\tomcat.5222418755956874474.8095\work\Tomcat\localhost\ROOT\tmp\xxx (No such file or directory) 或</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>java.io.IOException: java.io.FileNotFoundException: C:\Users\yawn\AppData\Local\Temp\tomcat.5222418755956874474.8095\work\Tomcat\localhost\ROOT\tmp\xxx (系统找不到指定的路径。) </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>解决方法</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>原因是我们使用了相对路径,MultipartFile 在使用transferTo的路径就会出现问题。解决办法如下:</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>1 解决这个问题可以使用绝对路径。即代码中的常量 TMP_DIR 设置为绝对路经。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>2 或者不使用transferTo方法,而从multipartFile的输入流读取文件内容。代码如下:</p> <!-- /wp:paragraph --> <!-- wp:code --> <pre class="wp-block-code"><code> public String tmpMdbFile(InputStream is, String fileName) { File dest = new File(TMP_DIR + System.currentTimeMillis() + "_" + fileName); saveFile(is, dest); return dest.getAbsolutePath(); } private void saveFile(InputStream is, File dest) { try(FileOutputStream fos = new FileOutputStream(dest)) { int len; byte[] buffer = new byte[1024]; while ((len = is.read(buffer)) != -1) { fos.write(buffer, 0, len); } } catch (IOException e) { e.printStackTrace(); } }</code></pre> <!-- /wp:code -->

分类:javaspringbootspring日常报错服务器搭建开发笔记
标签:spring日常报错文件上传springbootMultipartFile

2019-09-18 11:05:34.0
Springboot 上传文件系统找不到指定的路径  springboot-shang