最近工作中遇到的5个问题(2019-8-11)

1、访问URL /login.html

后端返回login页面 

1

2

3

4

5

@RequestMapping(value = "/login")

    public String login(String backUrl, Model model, HttpServletRequest request, HttpServletResponse response) {

        model.addAttribute("backUrl", backUrl);

        return "/login/login";

    }

 

 

然后报错(几个月前还是好好的,最近可能做了啥改动) java.lang.IllegalArgumentException: Non-normalized name, starts with "/": /login/login_zh_CN.html at freemarker.cache.TemplateCache$TemplateCacheTemplateLookupContext.lookupWithAcquisitionStrategy (TemplateCache.java:914)

Spring渲染之后,页面路径不是"/login/login.html"而是"/login/login_zh_CN.html"。 看着意思是,国际化本地化之类的问题。 原来没有,现在突然有了,所以页面找不到。

Spring版本改为4.3.17.RELEASE freemarker版本改为

org.freemarker freemarker 2.3.21 使用上述配置,使用Jetty启动,login页面正常访问到。 但是,使用JFinal3.4启动,依然提示找不到页面“/login/login_zh_CN.html”。 原因未知。

心情烦躁,暂时不彻底解决这个问题了。 今后打算专注Spring和SpringBoot,JFinal不再写新项目了,生态圈差了点。

2、Confluence保存失败

最近Confluence经常挂,可能是内存不够。 linxu上看了下,没挂,提示sql报错。 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xA6\xE8\x87...' for column 'BODY'

突然想起来,很早之前mysql就经常遇到保存“表情符号”的问题。 这次正好有个“表情符号‘鸟’”。 去掉符号之后,就保存成功了。

本想把Confluence的mysql编码改为utf8mb4, 结果提示外键约束,不让改,只能去掉表情符号了。

 

3、Maven和MybatisPlus扫描mapper路径,2者bug。

以下是MybatisPlus扫描mapper路径 //

设置mapper.xml文件的路径 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

org.springframework.core.io.Resource[] resource = resolver.getResources("classpath:/mapper/.xml");

mybatisPlus.setMapperLocations(resource);

Maven配置src/main/resources/${env} **/.xml /*.properties /*.yml

bug:如果 src/main/resources/mapper,只有目录,下面还没来得及新建比如User.xml。

因为刚刚开始,可能没有自定义的sql,所以不维护User.xml。 就会提示找不到“/mapper”。

因为没有.xml文件,Maven没有把mapper文件夹copy到classes目录。

 

4、"1,2,3,,5",字符串split分割

org.apache.commons.lang3.StringUtils

StringUtils.splitPreserveAllTokens [1,2,3,,5]

StringUtils.splitByWholeSeparator [1,2,3,5]

public class StringSplitDemo {

@Test
public void testSplit(){
    String str="1,2,3,,5";
    //{[1,2,3,5]}
    System.out.println(JtnKit.toString(StringUtils.splitByWholeSeparator(str,",")));
    //{[1,2,3,,5]}
    System.out.println(JtnKit.toString(StringUtils.splitPreserveAllTokens(str,",")));
    //{[1,2,3,,5]}
    System.out.println(JtnKit.toString(str.split(",")));
    //{[1,2,3,,5]}
    System.out.println(JtnKit.toString(str.split("[,]")));
}

}

5、dubbo admin安装 data的data为null

TreeCacheEvent{type=NODE_ADDED, data=ChildData{path='/dubbo/config', stat=259,259,1564191082776,1564191082776,0,5,0,0,0,5,264 , data=null}}

java.lang.NullPointerException at java.lang.String.(String.java:503) at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient$CuratorWatcherImpl.childEvent(CuratorZookeeperClient.java:298) at org.apache.curator.framework.recipes.cache.TreeCache$2.apply(TreeCache.java:749)

初步结论:dubbo配置了某个“数据节点”,触发事件的时候,节点数据为null。

没有特别处理,抛出了空指针异常,打印出来了。 不会阻止程序正常启动,可能作者只是想给一个提示吧。

你可能感兴趣的:(日拱一卒)