[jboss-user] [Javassist user questions] - JNDI and java: context problem
fla83tn
do-not-reply at jboss.com
Sun Jul 23 20:35:24 EDT 2006
Hi,
In my project I'd like to send an e-mail from my message-driven bean but I have 2 problem.
First of all this is my problematic code:
|
| private void send(Context c,String to){
| javax.mail.Session session = null;
|
| try {
|
| session = ---- see after -----
|
| MimeMessage m = new MimeMessage(session);
| m.setFrom();
|
| m.setRecipients(javax.mail.Message.RecipientType.TO,
| InternetAddress.parse(to, false));
| m.setSubject("Pinestore Order confirmation");
| m.setSentDate(new Date());
| m.setContent("The Order has been processed",
| "text/plain"); //equivalent to setText..
| Store s = session.getStore();
| s.connect(); // POP authentication
| Transport.send(m);
|
| System.out.println("Message sent OK.");
| } catch (javax.mail.MessagingException e) {
| e.printStackTrace();
| } catch (javax.naming.NamingException e) {
| e.printStackTrace();
| }
| }
|
| public static void main(String args[]){
| Context c = null;
| try {
| Hashtable environment = new Hashtable();
| environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
| environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
| environment.put(Context.PROVIDER_URL, "jnp://localhost:1099");
| c =new InitialContext(environment);
|
| }
| catch (NamingException ex) {
| }
| send(c,"xxx at domain");
| }
|
This are my question:
| this is only because I have some confusion:
| Why couldn't I access to resources in jndi at java:comp/env?
| If I do
|
| | Context c = b.getInitialContext();
| | Context compEnv = (Context) c.lookup("java:comp/env");
| |
| compEnv is null..the only things that work is c.lookup("") or lookup of everything that is located under Global JNDI Namespace..
|
|
| | My second question is:
| | If I leave the default <attribute name="JNDIName">java:/Mail</attribute> in file mail-service.xml I can't manage to lookup via jndi to the MBean...this because the java: context seems to be invisible..only names that are in Global JNDI Namespace are visible..
| |
|
|
| | So I try to get around the problem modifying the file mail-service.xml as <attribute name="JNDIName">Mail</attribute> so now I can do in my code:
| |
| | | session = (javax.mail.Session)PortableRemoteObject.narrow(
| | | c.lookup("Mail"), javax.mail.Session.class);
| | |
| | In this case the lookup works, but now I get still error because javax.mail.Session isn't a remote interface and then I can not do a PortableRemoteObject.narrow...
| |
|
|
| Somewhere I read that:
|
| "objects referenced behind the java: root are not reachable by external JNDI calls, they are private to the VM of the server."
|
| Is it true? How can I solve the problem?
|
| Instead for the last error I don't know how to bind the result of the lookup..
|
| Please somebody help me!!!!!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3960213#3960213
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3960213
More information about the jboss-user
mailing list