Avatar billede pixelpaw Nybegynder
23. august 2005 - 22:38 Der er 37 kommentarer og
1 løsning

javamail problem i IE

Jeg har et projekt i netbeans som fungerer fint i appletviewer, men ikke i IE. Det drejer sig om javamail. Koden eksekveres frem til connect funktionen og går ikke videre derfra.
¨
Her er koden:

import java.io.*;
import java.util.*;
import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;

public void sendFile() {
              try {           
                  Properties props = System.getProperties();
                  props.put("mail.smtp.host", SMTP_SERVER);
                  props.put("mail.smtp.auth", "true");
                  Session session = Session.getDefaultInstance(props, null);
                  MimeMessage message = new MimeMessage(session);
                  message.setFrom(new InternetAddress(FROM));
                  message.addRecipient(Message.RecipientType.TO, new InternetAddress(TO));
                  message.setSubject(SUBJECT, "ISO-8859-1");
                  MimeBodyPart mpart1 = new MimeBodyPart();
                  mpart1.setText(BODY, "ISO-8859-1");
                  MimeBodyPart mpart2 = new MimeBodyPart();
                  mpart2.setDataHandler(new DataHandler(new FileDataSource(FILENAME)));
                  mpart2.setFileName((new File(FILENAME)).getName());
                  MimeMultipart mpart = new MimeMultipart();
                  mpart.addBodyPart(mpart1);
                  mpart.addBodyPart(mpart2);
                  message.setContent(mpart);
                  message.saveChanges();
                  Transport transport = session.getTransport("smtp");
                  transport.connect(SMTP_SERVER, USERNAME, PASSWORD);                 
                  transport.sendMessage(message, message.getAllRecipients());
                  transport.close();
                 
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
          }
Avatar billede arne_v Ekspert
23. august 2005 - 22:40 #1
IE med SUN Java eller IE med MS Java ?
Avatar billede arne_v Ekspert
23. august 2005 - 22:41 #2
Er din applet pakket i en jar fil som har et manifest med et classpath
direktiv som peger på javamail.jar og activation.jar som ligger på web serveren
sammen med din jar fil ?
Avatar billede pixelpaw Nybegynder
23. august 2005 - 23:05 #3
Java Plug-in 1.5.0_02
Using JRE version 1.5.0_02 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\
Avatar billede arne_v Ekspert
23. august 2005 - 23:06 #4
java versionen er ok, men så er der lige classpath/jar spørgsmålet
Avatar billede pixelpaw Nybegynder
23. august 2005 - 23:09 #5
Kan ikke identifisere et classpath direktiv som peger på javamail.jar og activation.jar i MANIFEST.MF filen der ligger i META-INF folderen befindende sig i appletens jar-fil. Hvad er galt?
Avatar billede arne_v Ekspert
23. august 2005 - 23:11 #6
dit manifest skal indeholde:

Class-Path: javamail.jar activation.jar

og javamailk.jar og activation.jar skal ligge i samme dir på web serveren
som din egen jar fil
Avatar billede pixelpaw Nybegynder
23. august 2005 - 23:17 #7
Hvorfor bliver ikke disse jar-filerne tilføjet MANIFEST.MF filen af netbean?
Det virker underlig at selv redigere i denne filen. Har jeg gjort en begynderfejl?
Avatar billede arne_v Ekspert
23. august 2005 - 23:18 #8
det er helt normalt at man selv skal tilføje classpath til manifest
Avatar billede pixelpaw Nybegynder
23. august 2005 - 23:45 #9
Jeg får nu følgende fejlmeddelelse:
Manifest is invalid: Manifest sections should start with a "Name" attribute and not "Class-Path"
Avatar billede pixelpaw Nybegynder
24. august 2005 - 01:14 #10
Hvis jeg skriver:

Name:
Class-Path: javamail.jar activation.jar

- bliver dette tilføjet manifestfilen. Men, appleten får ikke sendt mailen med et java objekt attatchet til den. Jeg tror det er ved dette punkt det går galt:

private STRING SMTP_SERVER = vip.cybercity.dk

                  message.saveChanges();
                  Transport transport = session.getTransport("smtp");
                  transport.connect(SMTP_SERVER, USERNAME, PASSWORD);           
        ---------->transport.sendMessage(message, message.getAllRecipients());
                  transport.close();

Denne linje bliver ikke eksekveret.
Avatar billede arne_v Ekspert
24. august 2005 - 08:55 #11
ligger de 2 jar filen sammen med din jar file så appletten kan hente dem ?
Avatar billede arne_v Ekspert
24. august 2005 - 08:55 #12
har client PC adgang til vip.cybercity.dk ?
Avatar billede pixelpaw Nybegynder
24. august 2005 - 09:05 #13
I mit webapplication file wiew, ligger både Applet.jar, mail.jar og activation.jar i samme folder, nemlig build/web-folderen. Mail.jar og activation.jar er også inkluderet i Library folderen.

Hvorfor kan jeg sende e-mail i når applet kører i applet-wiew og ikke når den kører i IE-wiew. Når den første fungerer, viser det ikke at client PC har adgang til host?
Avatar billede arne_v Ekspert
24. august 2005 - 09:08 #14
jeg mener at appletviewer kun checker funktionalitet ikke security
Avatar billede arne_v Ekspert
24. august 2005 - 09:09 #15
en unsigned applet har kun adgang til den server som den selv er hentet fra

en signet applet kan få mere adgang

der er normalt kun adgang til en SMTP server hvis man er connectet til internettet
via den pågældende ISP
Avatar billede pixelpaw Nybegynder
24. august 2005 - 09:13 #16
Vel...min Applet.jar fil er en signet applet.
Avatar billede arne_v Ekspert
24. august 2005 - 09:29 #17
nogen fejl i java console ?
Avatar billede pixelpaw Nybegynder
24. august 2005 - 09:40 #18
Du har rett...
Der er et problem med security. Hvad er problemet, hvordan kan dette løses?
Exception in thread "AWT-EventQueue-2" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
    at java.util.Vector.elementAt(Unknown Source)
    at cg.model.TankList.get(TankList.java:47)
    at cg.model.TankGroup.getTank(TankGroup.java:222)
    at cg.ItemController.tanksSelected(ItemController.java:159)
    at cg.ItemController.selectType(ItemController.java:78)
    at cg.view.ItemView.tankTabShown(ItemView.java:262)
    at cg.view.ItemView.access$300(ItemView.java:36)
    at cg.view.ItemView$5.componentShown(ItemView.java:108)
    at java.awt.Component.processComponentEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
java.security.AccessControlException: access denied (java.net.SocketPermission mail.veedfald.com resolve)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkConnect(Unknown Source)
    at java.net.InetAddress.getAllByName0(Unknown Source)
    at java.net.InetAddress.getAllByName0(Unknown Source)
    at java.net.InetAddress.getAllByName(Unknown Source)
    at java.net.InetAddress.getByName(Unknown Source)
    at java.net.InetSocketAddress.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at com.sun.mail.util.SocketFetcher.getSocket0(SocketFetcher.java:253)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:129)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1181)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:311)
    at javax.mail.Service.connect(Service.java:233)
    at javax.mail.Service.connect(Service.java:134)
    at cg.TankProgram.sendFile(TankProgram.java:177)
    at cg.ItemController.sendFile(ItemController.java:441)
    at cg.ItemController.done(ItemController.java:292)
    at cg.view.ItemView.doOkBtn(ItemView.java:293)
    at cg.view.ItemView.access$200(ItemView.java:36)
    at cg.view.ItemView$3.actionPerformed(ItemView.java:84)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Avatar billede arne_v Ekspert
24. august 2005 - 09:50 #19
den er signed ?

kommer den frem og prompter for privs ?
Avatar billede pixelpaw Nybegynder
24. august 2005 - 09:58 #20
Jeg får en prompt for security warning som jeg svarer ja til, før appleten "kører"...
Do you want to trust the signed applet distributet by "Unknown" etc..
Avatar billede pixelpaw Nybegynder
24. august 2005 - 10:03 #21
Kan min måde at signe appletten på være forkert.
Jeg fulgte punktvis anvisningerne fra artikkel: http://www.developer.com/java/data/article.php/3303561
Avatar billede arne_v Ekspert
24. august 2005 - 10:54 #22
jeg genererer certifikat med

keytool -genkey -keystore %1.jks -alias %1
keytool -export -keystore %1.jks -alias %1 -file %1.cer

og signer med

javac %1.java
jar cvf %1.jar %1.class
jarsigner -keystore %2.jks %1.jar %2
Avatar billede pixelpaw Nybegynder
24. august 2005 - 11:24 #23
Skal .cer filen ligge et bestemt sted for at dette skal fungere?

Prøver at følge anvisningen, men får -
java.security.AccessControlExceptionaccess denied (java.net.SocketPermission mail.veedfald.com resolve)
Avatar billede pixelpaw Nybegynder
24. august 2005 - 12:35 #24
Poster også policy filen med...mangler her noget?
grant {
permission java.security.AllPermission;
};
Avatar billede arne_v Ekspert
24. august 2005 - 12:53 #25
.cer file skal kun bruges hvis du vil importere den for at undgå den prompt
Avatar billede arne_v Ekspert
24. august 2005 - 12:53 #26
du skal slet ikke bruge en policy fil

applets support komme rmed en indbygget "skrap" policy
Avatar billede pixelpaw Nybegynder
24. august 2005 - 12:55 #27
Så er jeg på herrens marker...nogle forslag?
Avatar billede arne_v Ekspert
24. august 2005 - 20:20 #28
Avatar billede pixelpaw Nybegynder
24. august 2005 - 21:09 #29
Ja, det gør jeg....?
Avatar billede arne_v Ekspert
24. august 2005 - 21:21 #30
og det gør du ikke ved dine egne som du har lavet med de kommandoer jeg beskrev
(som er dem jeg selv har brugt) ??
Avatar billede pixelpaw Nybegynder
24. august 2005 - 21:23 #31
Jo, jeg får også promt ved at køre mine egne applets...
Avatar billede arne_v Ekspert
24. august 2005 - 21:26 #32
men stadig AccessControlException ?
Avatar billede pixelpaw Nybegynder
24. august 2005 - 21:28 #33
Jepp.....
Avatar billede pixelpaw Nybegynder
24. august 2005 - 21:42 #34
Måske et dumt spørsmål, men skal også mail.jar og activation.jar signes?
Avatar billede arne_v Ekspert
24. august 2005 - 21:44 #35
jeg tror at du er inde på noget af det rigtige !

prøv det !!
Avatar billede pixelpaw Nybegynder
24. august 2005 - 22:18 #36
Nope... dette var et skudd i tågen. De er jo signet i forvejen...
Avatar billede pixelpaw Nybegynder
25. august 2005 - 13:51 #37
Hej arne_v nu har jeg løst problemet! Det var signingen af mail.jar og activation.jar der var problemet. Et lille spørsmål til slut....
Hvor skal .keystore filen ligge på webserveren, hvis den overhodet skal ligge der.
Post et svar så du kan få poeng...
Tak for hjelpen og dialogen.
Avatar billede arne_v Ekspert
25. august 2005 - 13:57 #38
keystore skal absolut ikke ligge på serveren

----

og svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester