2018-12-06 15:54

@gjjtip15 框架部分肯定不会对这种情况做任何限制的

jfinal 的一个理念是,能不干预就不干预,能少做事就决不多做事

我建议你先单步调试找找原因,此外,跨域解决方案有很多,在网上再找找别的方案应该比现在这个还简单

2018-12-06 15:38

@mr_wangyan 自动化同步添加 permission 数据这个功能是核心,在哪都看不到的,具体到权限验证可以猜得到是 actionKey

再一个是 #role、#permission 控制 UI 上的权限

2018-12-06 15:30

@BogBB 打包后,会有一个 lib 目录,该目录下面有一个 jar 包,这个 jar 包里面有你项目中的所有 class 文件,其中就有你的 DemonConfig

如果没有,则配置不对,例如, 打包配置成了 war,而没有配置成 jar,具体的用法在文档中很详细:
http://www.jfinal.com/doc/1-3

上面文档第一行就要求了打成 jar

2018-12-06 15:11

com.thetransactioncompany.cors.CORSFilter 这个 filter 要加上,相关的 dependency 要加上

2018-12-06 11:53

添加下面的一行代码:
UndertowServer.create(...)
.addHotSwapClassPrefix("org.apache.shiro.")
.start();

如果不行的话,再试一下
UndertowServer.create(...)
.addHotSwapClassPrefix("org.apache.")
.start();

shiro 的支持确实有几个人反馈

2018-12-06 11:21

将这个第三方的源码拿到,然后将版本或者将项目名改一下,然后改掉源码中的 bug,再通过下面的命令安装到你本地 maven 库中:
mvn clean install

最后,再让你的项目依赖于这个新的依赖即可。你以前的方式是个定时炸弹,java 的类加载机制先加载哪个 jar 包中的 class 是不确定的,你两个 jar 包中都有相同的 class 存在

当然,如果你嫌麻烦,还可以试一下我以前自创的一个新方法,在你的项目的 JFinalConfig 继承类中的 configConstant 中添加下面一行代码:
getClass().getClassLoader().loadClass(你改掉源码的那个类的在此);

也就是说你的修改的源码处在 JFinalConfig 子类所在的 jar 包之中,通过手动 loadClass(...) 先从这里加载,当然这种方式也可能有风险,你先试一试

2018-12-06 11:15

@你好啊世界 @BogBB 都什么时候了,还折腾 tomcat 和 jetty ,jfinal 官方最新出的 jfinal-undertow 爽得不行:http://www.jfinal.com/doc/1-3

2018-12-05 22:27

由于 undertow 是为嵌入式 server 而生,所以 jfinal undertow 项目是不需要 web.xml 这个文件的

线上这版 Filter、Servelt、Listener、WebSocket 最新的配置方式如下:
UndertowServer.create(AppConfig.class)
.configWeb( builder -> {
// 配置 Filter
builder.addFilter("myFilter", "com.abc.MyFilter");
builder.addFilterUrlMapping("myFilter", "/*");
builder.addFilterInitParam("myFilter", "key", "value");

// 配置 Servlet
builder.addServlet("myServlet", "com.abc.MyServlet");
builder.addServletMapping("myServlet", "*.do");
builder.addServletInitParam("myServlet", "key", "value");

// 配置 Listener
builder.addListener("com.abc.MyListener");

// 配置 WebSocket,MyWebSocket 需使用 ServerEndpoint 注解
builder.addWebSocketEndpoint("com.abc.MyWebSocket");
})
.start();

这个配置方法在源码的 UndertowServer.configWeb(...) 上有。注意,上面的配置版本还未发布到中心库,现在的老版本是通过
UndertowServer.addFilterInfo(...) 来添加的 Filter

建议通过下面的方法直接用上新版本:
git clone git@gitee.com:jfinal/jfinal-undertow.git
cd jfinal-undertow
mvn clean install
注意要先将 pom.xml 中的 skip 标签改成 true 才能安装

最后改一下版本号为 : 1.2-SNAPSHOT 即可用上最新版本

2018-12-04 22:51

功能完善,作者很用心,赞一个

2018-12-04 21:53

jfinal 1.2 这几天正在最后打磨,功能更全面, 代码量更少, 配置更方便,有关 web 组件的配置统一在 configWeb 中来做了,注意升级时 addWebSocketEndpoint 稍改一下:
UndertowServer.create(...).configWeb( builder -》 {
builder.addWebSocketEndpoint(...);
}).start();

方法名都没变,配置的方式稍微变了一下

2018-12-04 16:58

终极方法:单步调试

2018-12-04 16:17

@疯狂的我 qq 里搜索群 jfinal ,有十来个官方群

2018-12-04 16:05

@wesleyxw druid 官方设置的默认值是 0 ,其实你还可以将这个值设置为 0,反正不影响 maxActive, 尽可能加快启动速度

2018-12-04 15:56

@疯狂的我 在首页下载 jfinal demo,里面有个 doc 目录,里面头详细的方法,最近推出一新功能

2018-12-04 12:05

既然有这么多数据库要建立连接,并且用的是 DruidPlugin,那么将其 initialSize 设置为 1 即可

调用这个方法进行设置, DruidPlugin.setInitialSize(1) , 注意是每个 DruidPlugin 对象都要调用一次

setInitialSize 这个参数仅仅是初始化的连接数目,默认是 10,而你有几十个数据库,那么启动的时候默认就是几百个连接, 要知道数据库建立连接是很耗时间的

setInitialSize 这个不影响后续的性能,因为 maxActive 没动过