jboss下开发ejb,客户端查找ejb时候,context.lookup()函数的参数到底应该怎样写?

pxpwxj 2006-06-23 12:07:50
各位大侠:
我用jboss部署ejb,首先在ejb-jar.xml里面出现了ejb名称:<ejb-name>Fibo</ejb-name>
然后jboss.xml里面出现了<ejb-name>Fibo</ejb-name>
<jndi-name>ejb/Fibo</jndi-name>

然后在作为客户端的web程序之jboss-web.xml,web.xml里面都有<ejb-ref>之类的元素。
那么jboss再部署这个ear文件之后,到底是将这个ejb绑定为哪个jndi名称。
context.lookup()的参数到底该怎样写?

2个问题:“java:/comp/env/”什么情况下需要出现在lookup()函数里面?


远程访问ejb时候,lookup()里面怎样写呢?
本人初学,tks

tks
...全文
746 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lightersky 2006-06-24
  • 打赏
  • 举报
回复
###################以下是jboss的配置##############
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099

###################以下是Weblogic的配置##############
# java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
# java.naming.provider.url=t3://localhost:7001

###################以下是sun one app server 的配置##############
#java.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory
#java.naming.provider.url=iiop://localhost:3700

###################以下是rmi的配置##############
#java.naming.factory.initial=com.sun.jndi.rmi.registry.RegistryContextFactory
#java.naming.provider.url=rmi://localhost:1099

###################以下是ldap的配置##############
#java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
#java.naming.provider.url=ldap://localhost:389
wuzhiqing1984 2006-06-24
  • 打赏
  • 举报
回复
可以参考一下:
//EJB的初始化方法
public void initialize() throws Exception {
//创建服务器对象查找类
Context context = getInitialContext();
//取得EJB在服务器的对象
Object ref = context.lookup("StockManagementData");
//取得StockManagementData EJB的创建接口
stockManagementDataHome = (StockManagementDataHome)PortableRemoteObject.narrow(ref,
StockManagementDataHome.class);
//取得StockManagementData EJB的远程接口
create();
}
//服务器对象查找类的创建方法
private Context getInitialContext() throws Exception {
String url = "t3://192.168.123.118:7001";
String user = null;
String password = null;
Properties properties = null;
//初始化联接服务器的属性
try {
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
}
return new InitialContext(properties);
}
catch(Exception e) {
System.out.println("Unable to connect to WebLogic server at " + url);
System.out.println("Please make sure that the server is running.");
throw e;
}
}
//创建StockManagementData EJB的远程接口
public stockmanagementpro.StockManagementData create() throws Exception {
stockManagementData = stockManagementDataHome.create();
return stockManagementData;
}
yown 2006-06-24
  • 打赏
  • 举报
回复
如果要是非本地机器上,那么这个

Object objRef = ic.lookup("java:comp/env/YonghelloEJB"); 怎么写呢?

要用RMI吗?

yown 2006-06-24
  • 打赏
  • 举报
回复
try {
InitialContext ic = new InitialContext();
Object objRef = ic.lookup("java:comp/env/YonghelloEJB");
//Object objRef = ic.lookup("YonghelloEJB");
YonghelloHome home = (YonghelloHome)PortableRemoteObject.narrow(objRef,ejbs.YonghelloHome.class);
YonghelloClient YonghelloRemote = home.create();
message = YonghelloRemote.sayYonghello();
} catch (RemoteException re) { re.printStackTrace();
} catch (CreateException ce) { ce.printStackTrace();
} catch (NamingException ne) { ne.printStackTrace();
}
infowain 2006-06-24
  • 打赏
  • 举报
回复
t3是weblogic的协议,其他的服务器不能用
kevinliuu 2006-06-23
  • 打赏
  • 举报
回复
例子

// Load up the initial context
Context ctx = new InitialContext();

// Look up a bean's home interface
Object obj = ctx.lookup("java:comp/env/ejb/PurchaseHome ");
PurchaseHome purchaseHome =
(PurchaseHome)PortableRemoteObject.narrow(obj, PurchaseHome.class);
Purchase purchase = purchaseHome.create(paymentInfo);

// Work on the bean
for (Iterator i = items.iterator(); i.hasNext(); ) {
purchase.addItem((Item)i.next());
}

// Look up another bean
Object obj = ctx.lookup("java:comp/env/ejb/InventoryHome");
InventoryHome inventoryHome =
(InventoryHome)PortableRemoteObject.narrow(obj, InventoryHome.class);
Inventory inventory = inventoryHome.findByStoreName(storeName);

// Work on the bean
for (Iterator i = items.iterator(); i.hasNext(); )
inventory.markAsSold((Item)i.next());
}

// Do some other stuff
pxpwxj 2006-06-23
  • 打赏
  • 举报
回复
各位高手,就是说如果调用远程的ejb,先要为jndi准备一个properties,这个properties里面要有ip地址,协议等等参数。请问怎样知道某种服务器(如jboss)需要什么参数,各参数该怎样填写?

还问:"t3://10.13.72.159:7001" ,这个t3是否为指定的协议名称?这是j2ee规定的,还是服务器特定的?
jk01dingxian 2006-06-23
  • 打赏
  • 举报
回复
t3的远程方法调用是针对weblogic的.只有weblogic有.做j2ee开发远程方法调用一般是client测试ejb.我记得jboss是会在你的配置文件里的EJB的JNDI名自动加前缀java:.所以你查找时应该是lookup(java:XXXXX).
superghygf 2006-06-23
  • 打赏
  • 举报
回复
楼上说得不错
weichenggao 2006-06-23
  • 打赏
  • 举报
回复
我项目中的完整的例子,参考一下吧:


properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");

properties.put(Context.PROVIDER_URL,"t3://10.13.72.159:7001");

properties.put(Context.SECURITY_PRINCIPAL, "");
properties.put(Context.SECURITY_CREDENTIALS, "");
ctx = new InitialContext(properties);
String jndi ="ejb/cardcenter/PolicyService";
Object jndiobj = ctx.lookup(jndi);
this.cardHome = (CardEjbServiceHome)PortableRemoteObject.narrow(jndiobj,
CardEjbServiceHome.class);
card = cardHome.create();
List list = this.card.searchPolicy("YUANJIE004");
xiaoyuan2007 2006-06-23
  • 打赏
  • 举报
回复
关注
pxpwxj 2006-06-23
  • 打赏
  • 举报
回复
如果是要调用远程的ejb呢?
《概率论与数理统计》是理工科大学中的一门重要基础课程,它结合了概率论的基本理论与统计学的方法,用于分析和处理随机现象。第二版的完整版多媒体教学系统旨在通过丰富的教学资源和互动体验,帮助学生深入理解和掌握这门学科的核心概念。 一、概率论基础 概率论是研究随机事件及其规律性的数学理论,主要包括以下几个关键概念: 1. 随机试验:概率论的研究对象,如掷骰子、抽卡等。 2. 样本空间:所有可能结果的集合。 3. 事件:样本空间的子集,代表某种特定的结果。 4. 概率:事件发生的可能性,通常介于0和1之间,表示为P(A)。 5. 条件概率:在已知某个事件发生的情况下,另一个事件发生的概率。 6. 乘法法则和加法法则:用于计算两个独立或不独立事件的概率。 二、概率分布 1. 离散概率分布:如二项分布、泊松分布、几何分布、超几何分布等,用于描述离散随机变量的分布情况。 2. 连续概率分布:如均匀分布、正态分布、指数分布等,适用于连续随机变量。 三、统计学基础 1. 参数估计:通过样本数据估计总体参数,如均值、方差等。 2. 抽样分布:统计量在多次重复抽样下的分布情况。 3. 点估计和区间估计:给出参数的一个估计值或一个估计范围。 4. 假设检验:检验关于总体参数的假设是否成立,如t检验、卡方检验、F检验等。 5. 回归分析:研究两个或多个变量间的关系,预测一个变量基于其他变量的值。 四、数理统计方法 1. 最大似然估计:寻找使样本数据出现概率最大的参数估计方法。 2. 矩估计:通过总体矩与样本矩的关系来估计参数。 3. 正态分布的中心极限定理:大量独立随机变量的和近似服从正态分布,即使这些变量本身非正态。 4. 协方差和相关系数:衡量两个随机变量之间线性关系的强度和方向。 5. 方差分析(ANOVA):比较多个组别间的均值差异。 五、多元统计分析 1. 多元正态分布:多维空间中的正态分布,常用于多元线性回归。 2. 判别分析:根据已知分类的样本数据,建立判别函数,对新数据进行分类。 3. 聚类分析:将相似数据分组,揭示数据内在结构。 4. 主成分分析(PCA):降低数据维度,提取主要特征。 六、多媒体教学系统 该教学系统可能包含以下组成部分: 1. 视频讲座:专家讲解理论和例题,直观展示概念。 2. 动画演示:动态模拟随机过程,帮助理解概率模型。 3. 交互式练习:提供习题和答案,实时反馈学习效果。 4. 实验教程:设计数学实验,让学生亲手操作,加深理解。 5. 电子教材:包含文字、图表、案例等丰富内容,便于自主学习。 通过这个多媒体教学系统,学生不仅可以学习到概率论与数理统计的理论知识,还能通过实践应用和互动学习,提升解决实际问题的能力。

67,543

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧