SOAP Attchmentsa encoding base64

sand13r

Erfahrenes Mitglied
Hi,

ich hab mal wieder ein grosses problem und hoffe das mir jemand weiter helfen kann,
wie der name schon sagt muss ich per SOAP Message eine datei verschicken.. das funktioniert soweit auch nur leider wird die datei binary codiert ich bräuchte die datei aber in base64 irgendjemand eine idee?

hab schon folgendes versucht aber das ignoriert er einfach


Code:
 attachment.addMimeHeader("Content-Transfer-Encoding","base64");

weiss echt nicht mehr weiter kann mir jemand helfen?

mein xml mime header von meinem attachment sollte so aussehen..

Code:
MIME-Version: 1.0

Content-Type: image/gif

Content-Transfer-Encoding: base64

Content-Id: <attached_image>

Content-Disposition: attachment; filename="http://www.google.de/intl/de_de/images/logo.gif"

X-Mailer: MIME-tools 5.420 (Entity 5.420)


aber es sieht eben so aus


Code:
MIME-Version: 1.0

Content-Type: image/gif

Content-Transfer-Encoding: binary

Content-Id: <attached_image>

Content-Disposition: attachment; filename="http://www.google.de/intl/de_de/images/logo.gif"

X-Mailer: MIME-tools 5.420 (Entity 5.420)


sprich das einzige problem is das der encoding typ nicht stimmt und er die datei dann falsch codiert und der server daraus eben nichts mit anfanegn kann da er ja base64 codiert erwartet...


i hab schon gegoogelt aber find leider nichts...
weis irgendjemand weiter?

greetz sand13r
 
DANKE für deine Antwort

Also .Ja das habe Ich bereits getan, anfangs dachte ich ja das macht der automatisch, da hab ich mich aber wohl geirrt..

die frage ist eben nun nur noch ob der server der die xml bzw soap message bekommt ein problem hat weil da ja binary steht diese aber in base64 codiert ist...


weisst du wie ich das ändern kann?

danke schonmal greetz sand13r
 
Hi !

Ich gehe mal davon aus, daß deine Objekt namens "attachment" vom Typ javax.xml.soap.SOAPPart ist. Ist dies der Fall kannst du laut Doku den Mime-Type nicht wirklich ändern .... du musst ein AttachmentPart nehmen. Ist es aber vom Typ SoapPart, kann ich dir so auch nicht helfen. Da müsstest du vielleicht mal ein bisschen Code posten !

Gruss,
Krösi
 
Vielen Dank für deine erneute Antwort,

ok dies ist mein attachmenobj

Code:
AttachmentPart attachment = msg.createAttachmentPart(); 
attachment.setContent(new ByteArrayInputStream(imgContent), "image/gif");

damit kann man laut doku..also so wie ichs verstanden hab mime headers hinzufügen...

Code:
  attachment.addMimeHeader("Content-Disposition", "  attachment;filename="+apfad+"");
  attachment.addMimeHeader("Content-Transfer-Encoding","base64");
  attachment.addMimeHeader("MIME-Version","1.0");
  attachment.addMimeHeader("X-Mailer","MIME-tools 5.420 (Entity 5.420)");
 
  msg.addAttachmentPart(attachment);

dies funktioniert auch wunderbar.. er erzeugt mir den mime header eintrag X-Mailer, Mime Version usw... nur denn Content-Transfer-Encoding ignoriert er..
wenn ich ihn weglasse schreibt er ihn dennoch automatisch hin.. ich weiss nicht vielleicht ist das der standardwert.. aber der müsste doch eigentlich zu editieren sein oder?


vielen dank nochmal für deine Hilfe..

falls du mehr code brauchst einfach bescheid sagen...

gruss sand13r
 
Vielen dank für deine Antwort^^

ja hab auch schon set.MimeHeader(); versucht.. hab auch versucht zuerst alle mime header mit removeallMimeHeader(); zu löschen ging aber auch nicht.. bzw wenn ich ganz am schluss bevor ich das attachment der SoapMessage hinzufüge removeallMimeHeaders(); mache dann verschwinden alle bis auf den content typ (muss ja drin sein) und das Content-Transfer-Encoding... deshalb denk i irgendwie das des voreingestellt oder so sein muss.. i weis wirklich nich weita.. so ein mist...

danek nochmals für deine Antwort.. hast du sonst noch eine Idee?

greetz sand13r


[EDIT]: btw dein Link in deiner Sigi HOW TO BECOME A GOOD JAVA PR0GRMMER is glaub tot :D
 
Ja das war ja ich^^,weil ich dachet das wärs gewesen..
aber das problem an dieser lösung ist das ich ein multipart obj benötige..was i ja eigentlich nicht brauch und i nich weis ob das den server der meine soap message erwartet dadurch nicht verwirrt ist weil er ja nur ein attachment benötigt...deshalb wurde mir gesagt i soll es anders lösen...LEIDERRRRRRRRRRRRRRRRR...aber danke für dein intensives research weis ich sehr zu schätzen...

weis denn keiner rat? kann doch nicht so schwer sein.. ich kapier das nicht... wenn ich es so mache setzt er den Content-Transfer-Header.. nur das dumme SAAJ scheint es nicht zu checken...oh..man..bin am verzweifeln..


greetz sand13r
 

Neue Beiträge

Zurück