新闻正文

EJB访问Weblogic用T3

来源:JAVA天堂  JAVA学习者  2007-6-16 02:28:33 网友评论 0 条 字体:[ ] ~我要投稿!




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;
}



收藏到ViVi   收藏此页到365Key
上一篇:在JavaBean 中实现数据库操作的一点个人见解
下一篇:使用 EJB 组件你需要了解些什么呢?
用户名:新注册) 密码: 匿名评论 [所有评论]
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
本栏搜索
  • Google
   网站首页 -  网站地图 -  技术学习 -  网站投稿 -  帮助中心
Copyright 2003-2008 www.javah.net All Rights Reserved
2008 如果你喜欢本站 请收藏本站 并推荐给你的朋友一起分享