2019-07-12 16:55

HttpKit 仅为 jfinal 内部使用,用一下 OkHttp 这类第三方就好

2019-07-12 16:43

如果你这台服务器的 nginx 并没有别的作用, 直接在 jfinal undertow 之上配置 SSL 即可, nginx 做代理主要有两个作用:
1:一台服务器上部署多个 web 项目,便于多个项目共享同一个端口号
2:nginx 接管 html、js、jpg、png、 css 等静态资源性能更高,资源占用低

而你的 nginx 貌似没有配置代理上述这些 web 静态资源

2019-07-12 16:40

proxy_pass https://127.0.0.1:8443 这个配置错了,要改成:
proxy_pass http://127.0.0.1:8443;

注意上面是 http , 而不是 https

此外,端口号不要改成 8443,一般保持为 8080 就好 , 因为在 jfinal undertow 这头就是 http , 改成 8443 不符合惯例, 让人以为是 https

2019-07-12 16:37

@山东小木 jfinal undertow 项目如果是更新服务器上的 tomcat 结构项目,对于 Java 代码来说可以只上传 target/classes 下的文件到 WEB-INF/classes 之下

当然,上传项目的 project-xxx.jar 包到 WEB-INF/lib 下面会更方便,因为只上传一个文件就可以了。这种方式需要将 WEB-INF/classes 下面的 .class 文件删掉,因为这个目录下面的 .class 优先级高于 WEB-INF/lib 下面的 jar 包中的 .class

其实部署时就不应该存在 .class 文件, tomcat 下的 WEB-INF/classes 下的 .class 不应该存在

2019-07-12 16:00

@hb963724769 相当快啊, 你也分享出来吧, 因为你的这个感觉上更快,写个分享

2019-07-12 15:48

@阿龙 能不能定位到具体是哪一个字符在 escape 的时候出的问题,帮我测试一下:
Tempate t = engine.getTemplateByString("#escape('出问题的字符')");
String ret = t.renderToString(null);
System.out.println(ret);

关键是给出 #escape 中出问题的字符

2019-07-12 15:46

@7479chen Hikari 大概率是当今世界最快的 java 数据源连接池, druid 有很多别的功能,必然会拖慢性能

2019-07-12 15:03

jfinal undertow 下开发,打包也可以直接打成 tomcat 需要的,这里有文档:
https://www.jfinal.com/doc/1-7

没有使用官方的方式是不希望改打包配置?

2019-07-12 15:00

必然可以,在 package.xml 中添加 copy JRE 的配置, 将 JRE 整体复制到项目根目录下面去

然后 jfinal.sh 启动脚本中的启动命令指向当前目录下面的 JRE 即可, 已经有几个同学这么在玩了,这里就有一个:
http://www.jfinal.com/share/1296

2019-07-12 14:58

@阿龙 去掉 escape 是啥意思,再多给些信息量,好让 jfinal 解决这个问题,避免后来的同学碰到这个问题

此外, 如果你指的是 #escape 指令的话, 用一下 jfinal 4.3 版本, 这个版本改进过 #escape 指令

2019-07-12 11:27

@jounzhang 4.3 应该不会有重复主键生成的问题, 相关代码在 MetaBuilder 之中:
while (rs.next()) {
String cn = rs.getString("COLUMN_NAME");

// 避免 oracle 驱动的 bug 生成重复主键,如:ID,ID
if (primaryKey.equals(cn)) {
continue ;
}

if (index++ > 0) {
primaryKey += ",";
}
primaryKey += cn;
}

你单步调试上面代码看看是什么原因引起的

2019-07-12 11:05

@冰雨 用 visualVM 先定位瓶颈,光猜太慢了

2019-07-12 10:36

@binke mvn 打包时,可能是丢失了一些 JVM 的配置, 造成 jfinal proxy 工作不正常,下个版本解决一下

强烈建议升级到 4.3 , 下载首页右侧的 jfinal-4.3-changelog.txt 可知新版本有很多打磨,升级是值得的。即便在使用新版本 proxy 模块时碰到问题,也可以通过配置 ProxyManager.me().setProxyFactory(new CglibProxyFactory()) 用回老版本的 proxy 实现,新的打磨能用上会爽很多

谢谢你的反馈