编码问题总结

  1. hessian远程调用中,Map<String,Object> 作为返回值类型,map的value如果是Integer、Long、BigDecimal会出现数据丢失,调用方拿到的结果全是0,目前只知道是hessian序列化或者反序列化中出问题了,通过将这三类数据转成String传递进行解决的。

  2. String.valueOf(null)的结果是字符串null。(调用的应该是String.valueOf(Object obj)的这个方法)。

  3. springboot打包成jar后执行,无法读取classpath下自定义的配置文件。因为springboot会打包成jar,执行时无法像文件夹一样获取对应的文件。解决办法:使用spring的ClassPathResource来获取文件数据。另外可以使用ResourceUtils来解决问题

  4. itext+freemarker模板生成pdf的时候,如果模板中有图片信息,图片在classpath下,生成过程中无法获取。这个问题和第3个是一样的,本来以为这是freemarker封装好的,结果发现itext生成pdf是自己写的,把这个过程中根据url获取图片文件的修改为3中的处理方式即可。

  5. maven打包过程中对配置文件中的占位符可以替换成pom文件中的配置。项目中用到pdf生成,字体文件也放在resources目录,结果打包后提示异常,查找后发现,打包后的字体被损坏。最后发现是这个替换导致文件被修改。通过配置,只对指定的文件进行替换,即可解决。

 <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <encoding>utf-8</encoding>
        <useDefaultDelimiters>true</useDefaultDelimiters>
        <resources>
            <resource>
                <directory>src/main/resources/</directory>
                <filtering>true</filtering>
                <includes><!--只对yml文件进行替换-->
                    <include>*.yml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources/</directory>
                <filtering>false</filtering>
            </resource>
        </resources>
    </configuration>
</plugin>
posted @ 2019-08-14 21:21  鸡米饭  阅读(125)  评论(0编辑  收藏  举报