JFinal修改Jetty MaxFormContentSize参数

发布于 2021-12-02 05:03:38 字数 655 浏览 857 评论 14

@JFinal 你好,想跟你请教个问题:JFinal运行中出现java.lang.IllegalStateException: Form too large270468>200000查了下资料,说是Jetty的maxformContentSize参数错了。根据网上的说明添加了jetty-web.xml文件,运行时,Jfinal直接报Object of class 'org.eclipse.jetty.webapp.WebAppContext' is not Type of class'org.eclipse.jetty.webapp.WebAppContext'。请问,该如何解决,谢谢了。

附修改方法:http://blog.csdn.net/shixing_11/article/details/6996236

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

不乱于心 2021-12-05 12:03:55

如果嫌修改类麻烦的话,直接反射调用一次配置即可,在JFinal.me().getServletContext()提供了访问通道

 

@Override
    public void afterJFinalStart() {
        super.afterJFinalStart(); 
        if(JFinal.me().getServletContext().getClass().getName().equals("org.eclipse.jetty.webapp.WebAppContext$Context")){
            try {
                ServletContext ctx = JFinal.me().getServletContext();
                Method getContextHandler = ctx.getClass().getMethod("getContextHandler", null);
                Object handler = getContextHandler.invoke(ctx, null);
                Method setMax = handler.getClass().getMethod("setMaxFormContentSize", int.class);
                setMax.invoke(handler, 350 * 1024);
            } catch (Exception e) { 
                e.printStackTrace();
            }
        }
        
    }

 

别再吹冷风 2021-12-05 12:03:54

不是继承,纯粹就是复制一份项目中的代码来实现!

深巷少女 2021-12-05 12:03:52

回复
特指嵌入式jetty服务。

落墨 2021-12-05 12:03:47

回复
老大哥,能不能贴一下完整代码啊?我弄一个类继承了jettyServer,也重写了他的start方法,但看了JFinal的源码,感觉还得重写JFinal启动JettyServer的方法。是需要这样实现吗?还有没有更加简洁的方法?

秋意浓 2021-12-05 12:03:44

回复
我是直接新建了一个同包同名的类。直接盖了他的。

长安忆 2021-12-05 12:03:30

回复
源码就改了一句 webApp.setMaxFormContentSize("false"); 改为 webApp.setMaxFormContentSize(-1); // "false"));

别低头,皇冠会掉 2021-12-05 12:03:17

回复
谢谢,我解决了!我把JettyServer.class官方原生的类复制了一份放到项目中直接修改了,按照您的方法实现了!比用xml的方案要好,用xml重修编译会报错!

无声静候 2021-12-05 12:01:47

重写com.jfinal.server.JettyServer

doStart 方法 

添加webApp.setMaxFormContentSize(-1);

情痴 2021-12-05 12:00:26

刚测试过,没有效果,依然报错。根据网上的换成Dorg.mortbay.jetty.Request.maxFormContentSize还是不行

噩梦成真你也成魔 2021-12-05 10:57:51

可能不同版本参数名称不同

初见你 2021-12-05 04:00:37

回复
求最佳答案 ~.~

瑾兮 2021-12-05 03:38:30

直接加JVM参数 -Dorg.mortbay.http.HttpRequest.maxFormContentSize=-1

巡山小妖精 2021-12-04 14:31:38

额,jetty迁到eclipse.org下了,参数名也变了~ 总之这个是通过Integer.getInteger方法去获取一个SysProp来指定这个值

夜司空 2021-12-03 14:12:25

谢谢@純白陰影的提示,用jd-gui查看了源碼,將參數改成-Dorg.eclipse.jetty.server.Request.maxFormContentSize=-1完美解決改問題。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文