用JAVABEANS可以调用“无状态Session Bean”吗????????

uu_snow 2002-04-03 05:20:36
我用JB6写了很简单的无状态Session Bean,它只有一个方法是:
public String show(){
return "hello";
}
在JB6中编译、Deploy都成功了,而且,用JB6写的EJB Test Client测试
程序也测试正确
我使用的是WEBLOGIC 6.1
我又写了一个JAVABEANS:
package date;

import javax.naming.*;
import javax.rmi.PortableRemoteObject;
import java.io.*;
import java.lang.*;
import java.util.*;

public class jbnDate
{
private snlbnDateHome snlbnDateHomeObject = null;
private snlbnDate snlbnDateObject = null;

public jbnDate(){}
public String Days()
{
String retValue="null";
try{
InitialContext ctx =new InitialContext();
Object ref = ctx.lookup("java:comp/env/ejb/snlbnDate");
snlbnDateHomeObject = (snlbnDateHome) PortableRemoteObject.narrow(ref, snlbnDateHome.class);
snlbnDateObject = snlbnDateHomeObject.create();
retValue = snlbnDateObject.show();
}catch(Exception e){
e.printStackTrace();
}
return retValue;
}
}
编译通过,并把编译完的CLASS放到了WEBLOGIC下的
mydomain\applications\DefaultWebApp\WEB-INF\classes\date目录下
然后,我写了个简单的JSP文件调用这个JAVABEANS,在控制台出现下面的错误:

javax.naming.NameNotFoundException: Unable to resolve comp/env/ejb/snlbnDate Res
olved: 'comp/env' Unresolved:'ejb' ; remaining name 'snlbnDate'

请问,我应该怎样才能在JAVABEANS中调用到我写的这个“无状态Session Bean”???

谢谢
...全文
69 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ydy1356 2002-04-05
  • 打赏
  • 举报
回复
你不如就用jsp去调用生成的EJB Test Client测试类。
zhiweihua 2002-04-05
  • 打赏
  • 举报
回复
wafer_w(流浪的风)
说的没错,你是一下
uu_snow 2002-04-05
  • 打赏
  • 举报
回复
不行呀
wafer_w 2002-04-04
  • 打赏
  • 举报
回复
如果部署文件写起来麻烦,也可以这样:

Properties properties = null;
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, "t3://localhost:7001");
InitialContext context = new InitialContext(properties);
Object ref = ctx.lookup("你EJB的JNDI名");
……


//可以将localhost换成你weblogic所在的ip地址
uu_snow 2002-04-04
  • 打赏
  • 举报
回复
当然成功了
jacktance 2002-04-04
  • 打赏
  • 举报
回复
你的电脑配置怎样,你调试成功过任何EJB吗?
uu_snow 2002-04-03
  • 打赏
  • 举报
回复
我把java:comp/env/ejb/snlbnDate改成snlbnDate以后重新编译、发布
还是不行
在JAVABEANS中到底怎么调用SESSION BEAN??
kkhui 2002-04-03
  • 打赏
  • 举报
回复
根据你的xml,你的jndi名字是snlbnDate
ctx.lookup("snlbnDate");

如果你想要用java:comp/env/..来find,增加ejb-ref吧
uu_snow 2002-04-03
  • 打赏
  • 举报
回复
weblogic-ejb-jar.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN' 'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>snlbnDate</ejb-name>
<jndi-name>snlbnDate</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
uu_snow 2002-04-03
  • 打赏
  • 举报
回复
ejb-jar.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<display-name>snlbnDate</display-name>
<ejb-name>snlbnDate</ejb-name>
<home>date.snlbnDateHome</home>
<remote>date.snlbnDate</remote>
<ejb-class>date.snlbnDateBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>snlbnDate</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
jacktance 2002-04-03
  • 打赏
  • 举报
回复
估计是部署的有问题,你那个部署的xml呢?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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