|
在jboss上部署了一个ear包,里面有一个war包和两个jar包A.jar和test.jar,部署后,显示成功,上控制台jndiview都能看Dao(到)部署的ejb,服务器的启dong(动)日志server.log文件中也无异chang(常),war包里面有一个Servlet,在init()方fa(法)中要去找上面两ge(个)jar包里面De(的)ejb,但是发现A.jar包里Mian(面)的ejbdou(都)能找到,而test.jar包里面的ejb全都找不到,
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
p.put(Context.PROVIDER_URL, "jnp://ip:port" ); //
p.put("java.naming.factory.url.pkgs", "org.jboss.naming");
Context ctx = new InitialContext(p);
try {
System.out.println("beginn to fin Abstractoffice");//
Object ref = ctx.lookup("AbstractOfficeEJB");//A.jar里面的ejb,能找到
System.out.println(ref);
} catch (Exception ex) {
}
try {
System.out.println("beginn to fin BEjb");
Object ref = ctx.lookup("BEjb");//test.jar里面的ejb,找不Dao(到),出错,jndi是绝对没错的
System.out.println(ref);
} catch (Exception ex) {
ex.printStackTrace();
}
邪了men(门),一个ear包里面jar,显示都部署成功,为啥一个能找到另外一个找不到呢,找不到的爆出以xia(下)异常,
2011-08-01 14:20:29,489 ERROR [STDERR] (http-ip-8180-1) javax.naming.NameNotFoundException: BEjb
2011-08-01 14:20:29,489 ERROR [STDERR] (http-ip-8180-1) at org.jboss.ha.jndi.HAJNDI.lookupRemotely(HAJNDI.java:265)
2011-08-01 14:20:29,489 ERROR [STDERR] (http-ip-8180-1) at org.jboss.ha.jndi.HAJNDI.lookup(HAJNDI.java:206) ....(后面太长)
注:A.jar是别人用antda(打)的包,test.jar是用eclipse直接打的包,打包用的jdk版本可能会有不一致,但这有关系么?
http://www.javaxxz.com |
|