Входной поток HttpServletRequest пуст в Weblogic 10.3

Я использую 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()));

person Moth    schedule 01.09.2014    source источник


Ответы (1)


Наконец добрались до сути, и это была проблема с файлом web.xml, который мы использовали для 10.3. В частности, мы включили ведение журнала трикотажа для запросов с

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

Это приводило к чтению запроса и, следовательно, к пустому входному потоку. После отключения ведения журнала запросов ошибка была устранена.

person Moth    schedule 01.09.2014