【问题标题】:HttpServletRequest inputstream empty on Weblogic 10.3Weblogic 10.3 上的 HttpServletRequest 输入流为空
【发布时间】:2014-09-01 14:05:25
【问题描述】:

我正在使用 Apache Commons FileUpload 来接收文件上传。以下方法适用于所有测试的应用程序服务器,包括 Weblogic 12.1.3,Weblogic 10.3.6 除外。

parseRequest 方法返回一个空列表,表示 HttpServletRequest inputstream 为空。只是在寻找如何在 Weblogic 10.3.6 服务器上运行它?

@POST
@Path("upload/{environment}/{queueName}")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Message putQueueFile(
        @PathParam("environment") String environmentName,
        @PathParam("queueName") String queueName,
        @Context HttpServletRequest req) {

    if (ServletFileUpload.isMultipartContent(req)) {
        log.debug("putQueueFile:: Multipart form submission received");
        // Create a factory for disk-based file items 
        DiskFileItemFactory  fileItemFactory = createDiskFileItemFactory(req.getSession().getServletContext());
        ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory);
        uploadHandler.setFileSizeMax(MAX_UPLOAD_FILE_SIZE);

        try {
            /*
             * Parse the request
             */
            List items = uploadHandler.parseRequest(req);
            log.debug(String.format("putQueueFile:: Looping through %d items", items.size()));

【问题讨论】:

    标签: java servlets weblogic-10.x weblogic11g


    【解决方案1】:

    终于明白了,这是我们用于 10.3 的 web.xml 文件的问题。具体来说,我们为请求启用了球衣日志记录

    <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
        <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
    </init-param>
    

    这导致请求被读取,因此导致输入流为空。一旦请求的日志记录被禁用,错误就解决了。

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 2013-01-29
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      相关资源
      最近更新 更多