2014-09-01 4 views
0

Я использую Apache Commons FileUpload для получения файлов. Этот метод работает отлично для всех тестируемых серверов приложений, включая Weblogic 12.1.3, за исключением Weblogic 10.3.6.HttpServletRequest inputstream empty on Weblogic 10.3

Метод parseRequest возвращает пустой список, который указывает, что HttpServletRequestinputstream пуст. Просто ищете, как я могу заставить это работать на сервере 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())); 

ответ

0

И, наконец, он дошел до конца, и это было проблемой с файлом 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> 

Это вызывает запрос для чтения и, следовательно, в результате чего пустой входной поток. Как только регистрация для запросов была отключена, ошибка была решена.

Смежные вопросы