Eai pessoal…
To com varias duvidas, agradeceria se alguem pudesse me ajudar…
To tentando fazer um upload de imagem, porem quando vou fzr o upload me deparo com o seguinte erro :
[color=red]java.lang.LinkageError: loader constraint violation: when resolving method “org.apache.commons.fileupload.servlet.ServletFileUpload.(Lorg/apache/commons/fileupload/FileItemFactory;)V” the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, controller/inserir/ServletUpload, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, org/apache/commons/fileupload/servlet/ServletFileUpload, have different Class objects for the type org/apache/commons/fileupload/FileItemFactory used in the signature
controller.inserir.ServletUpload.doGet(ServletUpload.java:46)
controller.inserir.ServletUpload.doPost(ServletUpload.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)[/color]
minha servlet Upload ta assim:
[code]public class ServletUpload extends HttpServlet{
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean isMultiPart = FileUpload.isMultipartContent(request);
if (isMultiPart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
String formulario = "";
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.getFieldName().equals("tipoForm")) {
formulario = item.getString();
}
if (!item.isFormField()) {
if (item.getName().length() > 0) {
this.inserirImagemDiretorio(item);
}
}
}
}
catch (FileUploadException ex) {
ex.printStackTrace();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
private void inserirImagemDiretorio(FileItem item) throws IOException {
//Pega o diretório /logo dentro do diretório atual de onde a
//aplicação está rodando
String caminho = getServletContext().getRealPath("/logo") + "/";
// Cria o diretório caso ele não exista
File diretorio = new File(caminho);
if (!diretorio.exists()){
diretorio.mkdir();
}
// Mandar o arquivo para o diretório informado
String nome = item.getName();
String arq[] = nome.split("\\\\");
for (int i = 0; i < arq.length; i++) {
nome = arq[i];
}
File file = new File(diretorio, nome);
FileOutputStream output = new FileOutputStream(file);
InputStream is = item.getInputStream();
byte[] buffer = new byte[2048];
int nLidos;
while ((nLidos = is.read(buffer)) >= 0) {
output.write(buffer, 0, nLidos);
}
output.flush();
output.close();
}
}[/code]
Alguém tem ideia do porque do erro?!
Outra duvida é, se eu quiser instancia um objeto com o caminho dessa imagem?! como eu faria? Qual seria o parametro pro objeto!?
Valeu!