PDA

Visualizza la versione completa : [JAVA] Invio di email e copie di file indesiderate


GoldenBoy80
08-03-2006, 16:36
Allora nella mia applicazione devo mandare email da codice.
Nessun problema dopo varie prove ( :dhò: :dhò: )come ricavarmi il File tramite struts e i suoi form, ci sono riuscito tutto a posto.

Poi è arrivato il momento di prendere i vari array di byte e trasformali in File da aggiungere alla mia mail. etc etc.. tutto bene tutto funziona ma:

Il file che spedisco in allegato mi viene copiato anche in una cartella di cui l'applicazione non dovrebbe neanche sapere l'esistenza :oVVoVe: .

Vado a spiegarmi meglio..
Lavoro con JBuilderX la cui cartella che contiene il mio progetto si trova sotto C:\workspace\mioProggetto.
Qui ci sono i sorgenti.

Dopodichè tramite l'utilità di Jbuilderx avvio tomcat e dopo aver messo tutta la mia applicazione compilata nella webapp di Tomcat la faccio girare.
Ora in considerazione che l'applicazione senza sorgenti si trova nella webapps di TOMCAT non dovrebbe sapere neanche cosa sia la C:\workspace\mioProggetto.


Vado nella mi applicazione invio l'email con l'allegato, e cosa mi ritrovo?
il documento che ho allegato copiato in C:\workspace\mioProggetto. :dottò:
Potevo capire se me lo metteva in webapp\mioProgetto, ossia nel contecxt del mio progetto ma cosi non capisco assolutamente come faccia ad andare a mettermelo qui.
Questo il codice con il quale creo la mia mail e il file da allegare.

public void setAttachment(FormFile file,String body) throws Exception
{
if(this.message == null)
this.message = new MimeMessage(getSession());
MimeBodyPart textPart = new MimeBodyPart();
this.body=body;
MimeBodyPart attachFilePart = new MimeBodyPart();
File outputFile = new File(file.getFileName());
FileOutputStream fileOutputStream = new FileOutputStream(outputFile);
fileOutputStream.write(file.getFileData());
FileDataSource fds = new FileDataSource(outputFile.getPath());
textPart.setContent(body,"text/html");
attachFilePart.setDataHandler(new DataHandler(fds));
attachFilePart.setFileName(outputFile.getName());
Multipart mp = new MimeMultipart();
mp.addBodyPart(textPart);
mp.addBodyPart(attachFilePart);
message.setContent(mp);
}

Sapreste dirmi dove sbaglio? o cosa causa la copia?
Sono poco pratico nella gestione dei file, con java ogni aiuto è ben accetto

Andrea1979
08-03-2006, 18:18
e che succede se fai partire Tomcat e applicazione a manina, senza passare per il JBuilder (non lo aprire proprio).

GoldenBoy80
09-03-2006, 09:38
:unz:
Yess si infatti sembra che sia JBuilder a prendere lo Stream come se gli fosse detto a lui di salvare l'oggetto :incupito:.
Fatto partire Tomcat da solo nessun problema di copia.

Ora è un gran rottura però, perchè lavorando con Repository e dovendo avere JBuilder aperto sto bastardo mi và a fare la commit anche di tutti sti cavolo di File che uso come prova, per allegare..
Mestizia....spero di finire ste prove al più presto. O so già che mi riempiro il repository di robbaccia magari anche qualche img un pò spinta :fagiano:

Dannato JBuilderX.

Grazie del consiglio :smack:

Andrea1979
09-03-2006, 09:40
nema problema. Controlla piuttosto la configurazione del progetto di JBuilderX (che personalmente trovo uno strumento validissimo), magari oltre all'esecuzione via TomCat c'è configurata pure una "esecuzione locale" (ed infatti la root del progetto è la cartella predefinita dove JBuilder va a pescare e scrivere i file, se non viene specificato un percorso assoluto).

Buona giornata.

Loading