Interstage Application Server J2EE ユーザーズガイド |
目次 索引 |
第1部 J2EE共通編 | > 第4章 JNDI |
オブジェクトの参照は、以下の手順で行います。
記述例を以下に示します。
// EJB Homeオブジェクトのlookup処理 java.lang.Object ejbobj = null; EJB214ETYHome home = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); ejbobj = (java.lang.Object)nctx.lookup("java:comp/env/ejb/EJB214ETY"); home = (EJB214ETYHome)javax.rmi.PortableRemoteObject.narrow(ejbobj, EJB214ETYHome.class); } catch(javax.naming.NamingException ex) { }
注意) Enterprise Beanの参照名を定義するときは、“ejb/Bean名”という形式で定義することを推奨します。
// EJB Local Homeオブジェクトのlookup処理 EJB214EmpCBMLocalHome home = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); home = (EJB214EmpCBMLocalHome)nctx.lookup("java:comp/env/ejb/EJB214EmpCBM"); } catch(javax.naming.NamingException ex) { }
注意) Enterprise Beanの参照名を定義するときは、“ejb/Bean名”という形式で定義することを推奨します。
// JDBCデータソースのlookup処理 javax.sql.DataSource dataSource = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); dataSource = (javax.sql.DataSource)nctx.lookup("java:comp/env/jdbc/DB1"); } catch(javax.naming.NamingException ex) { }
[JMSコネクションファクトリがjavax.jms.TopicConnectionFactoryの場合]
// JMSコネクションファクトリのlookup処理 javax.jms.TopicConnectionFactory topic = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); topic = (javax.jms.TopicConnectionFactory)nctx.lookup("java:comp/env/jms/Topic"); } catch(javax.naming.NamingException ex) { }
[JMSコネクションファクトリがjavax.jms.QueueConnectionFactoryの場合]
// JMSコネクションファクトリのlookup処理 javax.jms.QueueConnectionFactory queue = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); queue = (javax.jms.QueueConnectionFactory)nctx.lookup("java:comp/env/jms/Queue"); } catch(javax.naming.NamingException ex) { }
//JavaMailメールセションのlookup処理 javax.mail.Session session = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); session = (javax.mail.Session)nctx.lookup("java:comp/env/mail/MailSession"); } catch(javax.naming.NamingException ex) { }
//URLのlookup処理 java.net.URL url = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); url = (java.net.URL)nctx.lookup("java:comp/env/url/SVURL"); } catch(javax.naming.NamingException ex) { }
//connectorコネクションファクトリのlookup処理 javax.resource.cci.ConnectionFactory cf = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); cf =(javax.resource.cci.ConnectionFactory)nctx.lookup("java:comp/env/eis/RA01"); } catch(javax.naming.NamingException ex) { }
[JMSのDestinationがTopicの場合]
// JMS Destination(javax.jms.Topic)のlookup処理 javax.jms.Topic topic = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); topic = (javax.jms.Topic)nctx.lookup("java:comp/env/jms/Topic"); } catch(javax.naming.NamingException ex) { }
[JMSのDestinationがQueueの場合]
// JMS Destination(javax.jms.Queue)のlookup処理 javax.jms.Queue queue = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); queue = (javax.jms.Queue)nctx.lookup("java:comp/env/jms/Queue"); } catch(javax.naming.NamingException ex) { }
//環境エントリのlookup処理 java.lang.Short val = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); val = (java.lang.Short)nctx.lookup("java:comp/env/SValue"); } catch(javax.naming.NamingException ex) { }
引数に“java:comp/env/”を指定しないでlookup()メソッドを実行することも可能ですが、アプリケーションの移行性を重視する場合には推奨しません。
また、RMI over IIOP通信でコンテナが使用するORBオブジェクトも以下のように参照できます。
org.omg.CORBA.ORB orb = null; try { javax.naming.Context nctx = new javax.naming.InitialContext(); orb = (org.omg.CORBA.ORB)nctx.lookup("java:comp/ORB"); } catch(javax.naming.NamingException ex) { }
目次 索引 |