2019-09-29 23:44

检查一下脚本是不是自己改动过:
https://gitee.com/jfinal/jfinal-undertow/blob/master/jfinal.sh

jfinal 官方提供的启动脚本是没有这个问题的,关键看一下下面这行:
java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} &

注意最后一个字符是: &

2019-09-29 23:39

String json = getRawData();
Map map = FastJson.getJson().parse(json, Map.class);

第二行代码也可以转化成相应的 bean ,例如:
User user = fastJson.getJson().parse(json, User.class);

2019-09-29 16:55

文档中有说明
https://www.jfinal.com/doc/1-5

2019-09-29 15:20

文档说得很详细

2019-09-28 15:28

应该是你的 lib 包下面的 sj_project-xxx.jar 里面将 undertow.txt 配置文件打进去了,所以你现在修改 config 目录下面的 undertow.txt 是无效的,因为 jar 包内的优先级最高

解决办法有很多,下面提供两种最常用的办法,选其一:
1:调整 pom.xml 配置,将 undertow.txt 打包排除在 jar 包之外
2:将打好包的 config 目录下面的 undertow.txt 改名为 "undertow-pro.txt" , 会被优先加载

注意:第一种修改 pom.xml 的方法,可以下载首页的 jfinal_demo_for_maven.zip,里头的 pom.xml 中配置了一个 maven-jar-plugin 插件,其中的 exclude 对 *.txt 进行了过滤,将这个插件配置复制到你的项目中即可。通过这种方法,可以将 src/main/resources 下面的需要排除的配置给排除在外

2019-09-28 15:22

@Terely 4.2 的后续版本针对 proxy 模块有过细微的改进,一个是解决部分环境下 CLASSPATH 变量问题,二个是对生成的代码进行了细微调整

建议升级到 jfinal 4.5

此外,使用新版本的 proxy + aop 模块,并且不依赖 cglib 的话,需要 JDK 支持,不能是 JRE

对于你碰到的情况,估计升级到 jfinal 4.5 即可,记得搞定后回来反馈一下

jfinal 近几个版本升级的功能细节,可以下载首页的 jfinal-4.5-changelog.txt

2019-09-28 14:17

@Terely 加个配置即可
me.setProxyFactory(new CglibProxyFactory());

2019-09-28 12:13

按下面步骤解决一下:
1:新建一个启动类,例如:
public class App {
public void main(String[] args) {
UndertowServer.start(DemoConfig.class);
}
}

2: DemoConfig 中声明的属性不能直接支持注入(注入参考后面第三条),Aop.get(...) 只有有限的支持,因为创建 DemoConfig 的时候各种初始化还没进行,可以在 onStart() 方法中使用 Aop.get(...) 进行注入

3:可以在 DemoConfig 中的 onStart() 方法中通过 Aop.inject(this) 对 DemoConfig 中的 @Inject 属性进行注入

2019-09-27 22:45

还有一个办法要试一试,在 FileRender 中单步调试一下,让下载流程走 normalRender() 这个方法,不让它走 rangeRender() 这个方法,前者是普通下载,后者是支持断点续传的下载

有些浏览器可能对 rangeRender() 断点续传支持不太好

如果定位成功,可以通过参考 FileRender ,稍加改动,做一个自己的 MyRender 出来,然后用的时候这样:
render(new MyRender(fileName));

2019-09-27 22:42

@加到几点几分裤 从来没有碰到过这个问题,也无法重现这个问题

建议用排除法先定位一下原因,排除法步骤:
1:在 tomcat 或 jetty 下运行看看问题是否依旧
2:换浏览器看看问题是否依旧
3:换 jfinal-undertow 到 1.9 看问题是否依旧

总之,先重现这个问题,然后将可疑的地方一个一个换掉,如果当前换掉的这个东东正是始作俑者,则成功定位

成功定位问题,是解决问题的起点,目前情况下只能是猜谜

2019-09-27 22:38

save 方法最终是 insert into 这样的 sql, 所以主键也是当成普通字段来处理的,无需自主找 mappingKit 中声明的主键,这两个问题是无关的

2019-09-27 20:48

@dapk 你在 list 上使用了 synchronized 当然就没异常了

你将 for (int i = 0, n = list.size(); i < n; i++) 这个循环改成 for ( Iterator it=list.iterator(); it.hasNext();) 就会有异常了,注意要是大并发下面有异常

2019-09-27 20:35

@加到几点几分裤 下载本站首页的 jfinal_demo_for_maven.zip 试试,用 ie8 下载

2019-09-27 18:10

@taokuan String xml = getRawData() 即可

注意,如果是 jquery ajax 提交的数据,要配置一下 contentType: 'text/plain",大致如下:
$.ajax({
type: "post",
url: "http://localhost/action",
contentType: 'text/plain', // 关键参数
dataType: 'text',// 返回值参数,可根据返回值类型调整为 xml、json、html 等等参数
data: '<xml>data</xml>'// 这里是提交的 xml 数据
success: function(ret) {
// 这里是回调
}
});

2019-09-27 18:03

@blog sql 中是问号占位字符,底层用的是 preparestatement,天然防 sql

不要将参数拼接在 sql 中就不会出现 sql 注入