EJB访问Weblogic用T3
来源:互联网 发布:淘宝怎么给卖家留言 编辑:程序博客网 时间:2024/05/16 18:24
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
package com.newmodern.etm.utility;/** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: newmodern * @author Colin * @version 1.0 */import java.util.*;import javax.naming.*;import javax.ejb.*;import javax.rmi.PortableRemoteObject;import javax.sql.*;import java.sql.*;public class EJBUtil { private static Context context = null; private static final String url = "t3://localhost:7001"; private static final String JDBC_JNDI = "jdbc/XAOracle"; public static Object getEJBHome(String lookupName, Class homeClass) { try { if (context==null) { context = getInitialContext(); } Object home = PortableRemoteObject.narrow( context.lookup(lookupName), homeClass); return home; } catch (NamingException ne) { throw new EJBException(ne.getMessage()); } } public static Connection getConnection(String lookupName) { try { if (context==null) { context = getInitialContext(); } DataSource ds = (DataSource)PortableRemoteObject.narrow( context.lookup(lookupName), DataSource.class); return ds.getConnection(); } catch (NamingException ne) { throw new EJBException(ne.getMessage()); } catch (SQLException e) { throw new EJBException(e.getMessage()); } } public static Connection getConnection() { try { if (context==null) { context = getInitialContext(); } DataSource ds = (DataSource)PortableRemoteObject.narrow( context.lookup(JDBC_JNDI), DataSource.class); return ds.getConnection(); } catch (NamingException ne) { throw new EJBException(ne.getMessage()); } catch (SQLException e) { throw new EJBException(e.getMessage()); } } private static Context getInitialContext() throws NamingException { try { Properties h = new Properties(); h.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); h.put(Context.PROVIDER_URL, url); return new InitialContext(h); } catch (NamingException ne) { throw ne; } }}
我们可以用下面方式调用该类:lookup找Home: public void insertCategory(String codeSubscriber, String systemUsed, String codeCategory, String codeCategoryGroup, String categoryDesc, String actionBy, Timestamp newTimestamp) throws ETMDataAccessException, ETMDataAlreadyExistsException { try { CategoryHome home =(CategoryHome)EJBUtil.getEJBHome( "MyMasterCategory",CategoryHome.class); home.create(codeSubscriber, systemUsed, codeCategory, codeCategoryGroup, categoryDesc, actionBy, newTimestamp); } catch (DuplicateKeyException e) { throw new ETMDataAlreadyExistsException(); } catch (RemoteException e) { throw new ETMDataAccessException(e); } catch (CreateException e) { throw new ETMDataAccessException(e); } } String subscriberSql = "Select code_subscriber, subscriber_name " "From subscriber Where status = 'A' "; public Collection getSubscriberList() throws ETMDataAccessException { Connection con = null; PreparedStatement pStmt = null; ResultSet res = null; SubscriberEntity subscriber = null; Collection page = new ArrayList(); try { //getConnection(); con = EJBUtil.getConnection("jdbc/XAOracle"); pStmt = con.prepareStatement(subscriberSql); SystemLogger.getInstance().logDebug("SQL:" subscriberSql "<-START->"); res = pStmt.executeQuery(); SystemLogger.getInstance().logDebug("SQL:" subscriberSql "<-END->"); while (res.next()) { subscriber = new SubscriberEntity( res.getString("code_subscriber"), res.getString("subscriber_name")); page.add(subscriber); } } catch (SQLException e) { throw new ETMDataAccessException(e); } finally { if (res != null) { try { res.close(); } catch (Exception e) {} } if (pStmt != null) { try { pStmt.close(); } catch (Exception e) {} } if (con != null) { try { con.close(); con = null; } catch (Exception e) {} } } return page; }