2019-11-08 12:18

此外, HttpKit.readData(this.getRequest()) 这行代码建议改成:
getRawDatra();

2019-11-08 12:18

返回 405 异常,证明拦截器中走了 if 的 else 分支,那么证明你客户端发送的并不是 POST 请求,调整一下客户端代码即可

2019-11-07 17:22

你这个需求可以通过 undertow 的反向代理来解决,这里是 undertow 官方给出一例子代码:
https://github.com/undertow-io/undertow/blob/master/examples/src/main/java/io/undertow/examples/reverseproxy/ReverseProxyServer.java

ReverseProxyServer.java 这个例子中,注意看第 78 行以及 84 行的代码:
LoadBalancingProxyClient loadBalancer = new LoadBalancingProxyClient();
Undertow reverseProxy = Undertow.builder();

其中 loadBalancer 可以用于配置成接管你自己的项目,其中 reverseProxy 是反向代理

学会了这个用法以后,再参考 jfinal 官网的文档将 jfinal 项目整合进去:
https://www.jfinal.com/doc/1-4

undertow 整合组件无非就是添加 Handler 之类的东东

2019-11-07 16:59

注意看 jfinal 4.7 的 TableMapping.java 代码的第 38 行:
https://gitee.com/jfinal/jfinal/blob/jfinal-4.7/src/main/java/com/jfinal/plugin/activerecord/TableMapping.java

第 38 行的 if 判断在 4.5 版本之中的确是没有的:
https://gitee.com/jfinal/jfinal/blob/jfinal-4.5/src/main/java/com/jfinal/plugin/activerecord/TableMapping.java

这个判断其实是为了让你的代码更加稳固而添加的,因为 Model 只能被映射一次,而你自己的项目中将 BasBrand 映射了多次,这个在 jfinal 4.5 中虽然没有提示错误,但仅仅是最后一次映射有效

检查一下各个数据源的 mapping 代码,去掉那个重复的 BasBrand 映射即可,只保留一个

2019-11-07 16:52

renderToString 方法会将数据与模板结合并渲染成 String 字符串,所以得到的值一定是 String

如果希望实现你的功能,可以参考一下 com.jfinal.kit.ElKit.java 中的代码,可以这么来用:
1:不带参示例
Integer value = ElKit.eval("1 + 2 * 3");

2:带参示例
Kv data = Kv.by("a", 2).set("b", 3);
Integer value = ElKit.eval("1 + a * b", data);

具体的思路是将求值结果存放在一个叫 RETURN_VALUE_KEY 的变量之中,最后再通过 data.get(RETURN_VALUE_KEY) 获取该值

2019-11-07 15:33

@一个程序员 做成双向认证只需要在这个代码里头添加一点点东西:
https://gitee.com/jfinal/jfinal-undertow/blob/master/src/main/java/com/jfinal/server/undertow/ssl/SslBuilder.java

也就是下面这行代码中:
sslContext.init(getKeyManagers(sslConfig), null, null);
第二个参数的 null 改为 TrustManager 即可,而这个 TrustManager 的密钥库的加载方式与之 keyManager 的完全一样,可以重用 loadKeyStore 方法进行加载

你的贴子正文一开始并没有提出详细的需求,建议你将你的方案简单发个分享出来:
http://jfinal.com/share

2019-11-06 22:57

配置 undertow.hotSwapClass ,文档中有说明

2019-11-05 18:44

高版本的 jfinal 解决过

2019-11-05 16:41

改一下 jfinal.sh , 在 CP 参数中添加路径 /usr/local/config 即可

这类路径可以指定多个,可以指向任何地方

2019-11-04 23:33

undertow.host 配置为 0.0.0.0,然后域名解析弄好,最后直接访问这个域名即可

2019-11-04 13:23

看看这个是不是你需要的
https://www.jfinal.com/doc/1-4

2019-11-04 10:38

@hb963724769 只有 public 方法才能被拦截

2019-11-02 17:45

看上去是缺少处理静态资源的 servlet 配置,网上很多这方面的问题,这是一个普遍问题,建议看看 was 的官方文档,有关默认静态资源 servlet 配置部分

2019-11-02 17:38

@dzofmine 如果是 JDK 并且环境变量配置正确,那么就可以确定是 resin 的问题

jfinal 更早期的版本在 tomcat 下也有这个问题,原因是 tomcat 启动时无法正确加载 CLASSPATH 环境变量,jfinal 新版本解决了这个问题

使用 me.setToCglibProxyFactory() 就挺好的,多一个 jar 包,但功能是完全没问题的

2019-11-02 16:05

@hb963724769 前半部分是对的,后半部分是错误的,业务层其它方法调用也可以触发拦截器

业务层拦截器的触发简单来说就是两种:
1:在 controller 中通过 @Inject 注入
2: 通过 Aop.get(...) 获取的对象