【问题标题】:jetty 8 multipart/form-data requestsjetty 8 多部分/表单数据请求
【发布时间】:2013-02-12 08:44:45
【问题描述】:

我在项目中使用 Jetty 8 作为嵌入式服务器。一切都按预期工作,除了多部分/表单数据请求。

必须处理 multipart/form-data 请求的我的 servlet 工作正常, - 我已经使用 eclipse 的 RunJettyRun 插件对其进行了测试。这就是为什么嵌入式服务器代码一定是罪魁祸首。

我的代码遵循 this 等码头示例。我从 2 天开始搜索互联网,但没有找到如何配置码头。

欢迎任何提示, 亲切的问候, 海

【问题讨论】:

  • 该问题中没有足够的信息来了解您在做什么?

标签: java jetty embed multipartform-data jetty-8


【解决方案1】:

事情可以这么简单。 您只需将 MultipartConfig 设置为您的 ServletHolder。例如:

ServletHolder sh = new ServletHolder(YourServlet.class);
sh.getRegistration().setMultipartConfig(new MultipartConfigElement("yourTempLocation", 1048576, 1048576, 262144));

只需使用 @MultipartConfig 注释 YourServlet,您就可以完全访问 multipart/form-data。

【讨论】:

    【解决方案2】:

    您可以通过将所需的类直接添加到服务器来设置多部分支持,

    org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server);
        classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration", "org.eclipse.jetty.plus.webapp.EnvConfiguration", "org.eclipse.jetty.plus.webapp.PlusConfiguration");
        classlist.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration", "org.eclipse.jetty.annotations.AnnotationConfiguration");
    

    或将所需的配置添加到您的 Web 应用上下文中,如下所示:

    WebAppContext myWebAppContext= new WebAppContext();     
    myWebAppContext.setConfigurations(new Configuration[] { new AnnotationConfiguration(), new WebInfConfiguration(),
                new WebXmlConfiguration(), new FragmentConfiguration(), new EnvConfiguration(), new PlusConfiguration(),
                new JettyWebXmlConfiguration() });
    

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 2012-11-27
      • 2016-12-17
      • 2012-03-16
      • 2016-11-11
      • 2018-07-02
      • 1970-01-01
      • 2017-10-05
      相关资源
      最近更新 更多