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()

2019-10-23 21:12

@liangcheng2004 非常感谢你的分享,文件上传好多人碰到客户端问题,你的分享很有价值

2019-10-23 17:59

@dplxm 你既然都能使用 tomcat 内置指定 JDK 路径来发布,为啥不在 jfinal.sh 中指定 JDK 路径呢?

修改起来简单到不能再简单,jfinal.sh 中有一个类似下面的 JDK 启动命令行:
java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} &

将其中的 java 前方添加上 JDK 的路径即可,例如:
/opt/jdk-1.8/bin/java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} &

2019-10-23 17:38

@lyq027 注意,上面的回复,更正了一下,将 #(username) 改为了 #para(username)

要注意看文档:
https://www.jfinal.com/doc/5-13