您的位置:首页>平台软件>应用服务器,中间件>

EJB访问Weblogic用T3

[ 来源:jsp中文网 | 更新日期:2007-7-15 21:29:15 | 评论 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) { 字串6
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);

字串1

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()); 字串3
} 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:
字串8





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();

字串3


} 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"); 字串9
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) {}
字串7

}
if (pStmt != null) {
try {
pStmt.close();
} catch (Exception e) {}
}
if (con != null) {
try {
con.close();
con = null;
} catch (Exception e) {}
}
}
return page;
}

字串8

Tags:
责任编辑:
您的评论
用户名: 新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为