J2EE的问题,只要您讲得让我感觉对本问题有用,或是知道在这些问题上的思路,那样就有分
XDZXG 2002-03-11 11:01:19 下面是我tomcat中通过jsp调用Bean Userweb时出现的错误提示:
javax.naming.CommunicationException
[Root exception is java.lang.ClassNotFoundException: UserManage.EJBUserManage.C_UserManageHome]
已知:1:UserWeb是调用运行在JBoss中的EJB,且该EJB通过命令行方式调用没有错
误,一切正常;
2:若将下列程序中语句:
Object userHome = (C_UserManageHome)ctx.lookup("UserManage");
改为:
Object userHome = ctx.lookup("java:comp/env/ejb/C_UserManageHome");
则错误提示为:
javax.naming.NameNotFoundException: env not bound;
3:tomcat与JBoss都是运行正常的;
结论:相在知道可能是在tomcat中调用 EJB时有些什么配置,但本人不清楚,请各位
老兄帮帮忙,本人十分感谢,并且予以高分;
初学者,问题对高手来说可能很愚,请勿见笑,谢谢;
代码:
import UserManage.EJBUserManage.C_UserManage; //远程接口
import UserManage.EJBUserManage.C_UserManageHome; //本地接口
import UserManage.EJBUserManage.*;
import java.util.Properties;
import javax.rmi.PortableRemoteObject;
import java.rmi.Naming;
import java.rmi.*;
import javax.naming.*;
public class UserWeb
{
public String getUser(String str)
{
String str2="";
String info="";
try{
Properties p2 = new Properties();
p2.putContext.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
p2.put(Context.PROVIDER_URL, "localhost:1099");
p2.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
Context ctx = new javax.naming.InitialContext(p2);;
Object userHome = (C_UserManageHome)ctx.lookup("UserManage");
C_UserManageHome home = (C_UserManageHome)PortableRemoteObject.
narrow(userHome,UserManage.EJBUserManage.C_UserManageHome.class);
C_UserManage uManage= home.create();
str2= uManage.GetElementByXml("115");
uManage.remove();
}catch(javax.naming.NamingException ne){
info = ne.toString();
}catch(java.rmi.RemoteException re){
info = re.toString();
}catch(javax.ejb.CreateException ce){
info = ce.toString();
}catch(javax.ejb.RemoveException re){
info = re.toString();
}
return str2+ " "+info;
}
}