MVC常见问题

Jul 10, 2017 10:38:44 AM

作者:wendal

tomcat报readUnsignedShort

部署到生产环境时(tomcat版本一般较低), 出现类似这样的报错,然后tomcat无法启动:

  1. java.io.EOFException
  2. at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
  3. at org.apache.tomcat.util.bcel.classfile.Utility.swallowMethodParameters(Utility.java:796)
  4. at org.apache.tomcat.util.bcel.classfile.Attribute.readAttribute(Attribute.java:171)
  5. at org.apache.tomcat.util.bcel.classfile.FieldOrMethod.<init>(FieldOrMethod.java:57)
  6. at org.apache.tomcat.util.bcel.classfile.Method.<init>(Method.java:71)
  7. at org.apache.tomcat.util.bcel.classfile.ClassParser.readMethods(ClassParser.java:267)
  8. at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:127)

原因:

  • tomcat 7.0.58之前的版本,处理由JDK8带-parameters编译的类文件有bug
  • nutz从1.r.58开始,使用JDK8带-parameters编译,从而实现eclipse无源码也能提示参数名称

解决版本:

  • 首选: 把tomcat升级到7.x最新版
  • 备选: 下载nutz源码,重新编译一份不带-parameters的jar,不推荐使用

出现nutz日志之前,停顿几十秒到几分钟不等:

该情况只出现在老版本的Linux系统,卡顿结束后,第一条日志类似

  1. INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [301,654] milliseconds.

原因: 由于linux下/dev/random极其低效,导致SecureRandom初始化非常慢

解决方案: 添加启动参数

  1. JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/urandom"

IE下ajax当下载

原因: 新版的@Ok("json")的Content-Type设置为"application/json", 在IE下会有毛病.

解决版本: 在MainModule添加@SetupBy(MainSetup.class), 然后MainSetup类实现Setup接口,在init方法内内添加下列代码

  1. UTF8JsonView.CT = "text/plain";

本页面的文字允许在知识共享 署名-相同方式共享 3.0协议GNU自由文档许可证下修改和再使用。

原文: http://nutzam.com/core/mvc/questions.html