Я написал код, чтобы получить данные детали из запроса сервлета для загрузки файла, но список деталей возвращает нулевой размер. Я использую JBoss Weld в проекте JEE.Интерфейс детали не работает с JBoss Weld в Tomcat 7?
Но если я удалю конфигурацию Weld из файла web.xml, тогда она работает нормально.
Конфигурация web.xml является:
<listener>
<listener-class>
org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
<resource-env-ref>
<description>
Object factory for the CDI Bean Manager
</description>
<resource-env-ref-name>BeanManager</resource-env-ref-name>
<resource-env-ref-type>
javax.enterprise.inject.spi.BeanManager
</resource-env-ref-type>
</resource-env-ref>
Серверный код в Servlet:
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
Collection<Part> parts = request.getParts();
System.out.println(parts.size());
}
}
на стороне клиента JavaScript:
$('#input-file').change(function(e) {
var obj = {
"name" : "samik"
};
var file = e.target.files[0];
var formData = new FormData();
formData.append('file', file);
formData.append('other', JSON.stringify(obj));
$.ajax({
url : "upload",
type : "POST",
data : formData,
contentType : false,
processData : false,
dataType : "json",
success : function() { }
});
});
Некоторые вопросы: вы уверены, что в элементе есть допустимое значение: 'e.target.files [0]'? Аннотирование '@ MultipartConfig 'указывает, что сервлет ожидает, что запросы будут выполняться с использованием типа MIME типа« multipart/form-data »; попробовали ли вы вызвать 'request.getHeaders' и посмотреть, какой тип контента предназначен для запросов, отправленных вашим JavaScript? Вы упомянули, что если вы удалите _Weld_, все будет работать правильно; как выглядит ваш сервлет-код в этом случае? –
Да e.target.files [0] дает правильные данные. заголовки запросов одинаковы в обоих случаях. Код сервлета одинаковый для обоих случаев – samik
Что находится в каталоге _/WEB-INF/lib_? Есть ли ошибки в журнале Tomcat? –