Weblogic 10.3上的HttpServletRequest输入流为空

时间:2014-09-01 03:17:48

标签: java servlets weblogic-10.x weblogic11g

我正在使用 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()));

1 个答案:

答案 0 :(得分:0)

最后得到了它的底部,这是我们用于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>

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