2019-10-25 10:00

activerecord 是操作数据库的,获取数据库数据以后,直接用于 easyexcel 就好,不必想象他们之间有啥关联,独立用好就行

2019-10-25 09:59

@yunqi 通过 try catch 可以获取到内层拦截器、controller、service 中是否向上层抛了了异常:
try {
inv.invoke();
} catch (Exception e) {
这里处理
}

2019-10-24 20:00

在拦截器里面用下面的代码:
inv.invoke();
Render render = inv.getController().getRender();
if (render instanceof JsonRender) {
JsonRedner jr = (JsonRender)render;
String jsonText = jr.getJsonText();
.....
}

上面这种用法一般是不需要的,我不知道你的具体需求,应该是别的办法来解决你的需求

2019-10-24 18:28

@dplxm fatjar 发布改进 pom.xml 希望你能发个分享贴出来,回复无法贴 xml

2019-10-24 18:27

信息量严重不足,最重要的 cause 部分没有

出现问题的相关信息完全没有,例如什么样的代码造成的,服务端与客户端分别是什么也不知道,应用场景也不知道

提问只给出一个异常的截图,明显是不尊重回答者

此外,这个问题全程没有出现 jfinal ,应该是与 jfinal 无关的

2019-10-24 18:24

@dplxm 使用 jfinal undertow 爽多了

2019-10-24 18:23

@小剑魔 测试了一下 jetty 也不支持参数中出现 %,这个在 jfinal 层面是完全没有干预过的,也就是说请求到达 jetty、undertow、tomcat 这一层的时候就已经出问题了

当然,确切的说不是不支持百分号,例如参数出现 %20 是支持的,例如:
http://localhost:8000?key=%20

因为 %20 会被转码成空格

url 中百分号都会被转码,如果数据不正确无法正确转码就会抛异常

说到底,这本质就是一个参数值是否能正确转码的问题

2019-10-24 17:33

@smile_5478 增加索引应该是解决该问题的真正原因,线程池数量除非原本配置很小,否则一般是不会出现瓶颈的

2019-10-24 17:31

需要支持热加载的 ehcache 配置项中添加如下配置:
diskPersistent="true"

2019-10-24 16:48

将项目中的原码,也就是两个 java 文件,copy 到你的项目中,然后按他的 demo 来,例如:
public void configPlugin(Plugins me) {
//使用配置文件
me.add(new MqttPlugin("mqtt.properties"));
//不使用配置文件
//MqttPlugin plugin = new MqttPlugin("tcp://127.0.0.1:1883", "clientId");
//plugin.setAutomaticReconnection(true);
//plugin.setCleanSession(true);
//plugin.setConnectionTimeout(10);
//plugin.setKeepAliveInterval(10);
//plugin.setManualAcks(true);
//plugin.setMaxConnections(20);
//plugin.setUserName("test");
//plugin.setPassword("test");
//plugin.setVersion("3.1.1");
//plugin.setReConnectionTimeInterval(10);
//me.add(plugin);
}

2019-10-24 16:24

@小年年 主从关系完全体现在 redis 自身部署时的配置上,你的项目中对此是透明的

2019-10-24 12:21

理解完全正确,启动多个 RedisPlugin, 利用 cacheName 对应不同的 host 即可

2019-10-24 12:20

应该是 JDK 1.8 对于泛型的规范有变化,jfinal 是没有动过这个代码的

可以不使用是 toString() 而是使用 getStr(...)

2019-10-24 10:26

通过 ActionReporter.setWriter(....) 配置一个自己的 Writer 实现,将这些信息输出到文件里面即可,大至如下:
public class MyWriter extends Writer {
public void write(String str) throws IOException {
// 这里放上输出到文件的代码
}

public void write(char[] cbuf, int off, int len) throws IOException {}
public void flush() throws IOException {}
public void close() throws IOException {}
}

最后在 configConstant(Constants me) 中配置一下:
ActionReporter.setWriter(new MyWriter());

此外,在输出到文件的同时,还可以继承输出到控制台,在 public void write(String str) 方法实现中,再添加一行代码即可:
System.out.print(str);

2019-10-23 21:59

inv.getController().getRequest().getMethod()