还有一点要说明的是,包Student已经引入library了,并且在调用到的地方都import table.student.*;了
解决方案 »
- ehcache问题
- 09年来了,想换个工作,不知道深圳情况怎么样,大家发表下看法...
- 跪求 J2EE 中文 API!!!!
- 大侠门帮忙看看 java 连接IBM MQ的问题 谢谢!
- 搞不出来我就没法回家过年了,Hibernate3动态创建表,高手请留步!!
- 为什么我在用Hibernate时一到Transaction.commit时报NullPointException
- 求WEBLOGIC8。1的入门指南或者其他版本的也可以,先谢谢了
- 支持portal的容器有哪些呀?
- 招聘经验丰富Java兼职教师!北京 70元-100元/小时 mail:[email protected]
- 关于编辑器???
- struts中的连接池配置?
- To apan_bj:我想要你的《实战EJB2。0》但太多人要了,我上不去!
Object ref = ctx.lookup("java:/comp/env/Student");所以,可以肯定的是,通过JNDI找不到你的student实体bean。可能的原因是:
1,你没有发布你的student bean 到jndi中。
2,你的发布名称不对
Component Component Type Target Target Type Deployed
Student EJB myserver Server true
===========================================================================
Name Application URI Deployment Order
Student Student Student.jar 1000
应该是发布成功了。发布的名称,难道不是Student么?它的名字明明写着Student呀,还望大哥指教。
<jndi-name>StudentRemote</jndi-name>
<local-jndi-name>Student</local-jndi-name>
Object ref = ctx.lookup("java:/comp/env/Student");
应该这样写
Object ref = ctx.lookup("Student");
直接look jndi名字,前面那一堆没用.除非你自己配置好了 ------------------------------------------------------
我们还年轻牛奶会有的奶牛也会有的
可天天在 csdn 混这些会有吗 ??
就可以了在左边树形菜单的地方双击你的session bean 就会看到一堆的选项卡 上面所说的就是其中一个
试试 也许有用
你说的那种情况是2个Bean在一个工程里面的情况,可是如果我在A工程里面做了一个Bean,然后再B工程里面做了一个Bean,2者怎么调用呢?A工程里面的Bean发布了。
另外,我还要改动Bean的包,不修改XML怎么行呢?
将这段加入到sessionBean的配置文件中
<reference-descriptor><weblogic-enterprise-bean>
<ejb-name>Student_S</ejb-name>
<reference-descriptor>
<ejb-local-reference-description>
<ejb-ref-name>
ejb/Student
</ejb-ref-name>
<jndi-name>
Student
</jndi-name>
</ejb-local-reference-description>
</reference-descriptor>
<local-jndi-name>SignOnEJB.SignOnHome</local-jndi-name>
</weblogic-enterprise-bean>附加一句:你应用的是本地接口,所以这么用的;
<ejb-local-ref >
<ejb-ref-name>ejb/local/Student</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home></local-home>
<local></local>
<ejb-link>Student</ejb-link>
</ejb-local-ref>
或者
<ejb-ref>
...
</ejb-ref>
然后使用ctx.lookup("java:comp/env/your ref-name");
注意link选项最好不添,添加容易出错!
-----------------------------------------------------------
可是我怎么找不到ejbreference标签栏呢?我用的是weblogic7
另外通过远程接口可以调用其他的EJB,但是用本地接口就不行,不知道是什么原因
import java.util.*;
import javax.rmi.*;
import javax.ejb.*;public class Bejb {
private String name = "not found";
public void setName(String n) {
try {
InitialContext ctx = new InitialContext(); //初始化上下文
Object ref = ctx.lookup("AccountSes"); //通过JNDI名字得到对象的接口
AccountSesHome accountSesHome = (AccountSesHome) PortableRemoteObject.narrow(ref, AccountSesHome.class);
//把对象强制转化为home接口类。这样就得到了EJB对象的Home接口,然
//后再按EJB规范,根据不同的EJB类型,通过不同的方法得到EJB的
//Home接口类。
AccountSes accountSes = accountSesHome.create();
name = accountSes.getName(new Integer(Integer.parseInt( n )));
}catch(Exception e) {
e.printStackTrace();
}
}
public String getName() {
return name;
} }