"StatelessBean.ejbgrpx": No JNDI name found for EJB referenced using this name: "ejb/AutoDealerHome".这是什么错误,我已经在描述 No JNDI name found for EJB referenced using this name: "ejb/AutoDealerHome". 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 描述文件应该指明:1 name for ejb ( my name is ...)2 name for reference (the name of the ejb i want to use is ...)(i am an ejb:-) ) 看我的描述文件:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN' 'http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd'><weblogic-ejb-jar> <weblogic-enterprise-bean> <ejb-name>AutoBuyer</ejb-name> <reference-descriptor> <ejb-reference-description> <ejb-ref-name>ejb/AutoDealerHome</ejb-ref-name> <jndi-name>AutoDealer</jndi-name> </ejb-reference-description> </reference-descriptor> <jndi-name>AutoBuyer</jndi-name> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name>AutoDealer</ejb-name> <reference-descriptor> <resource-description> <res-ref-name>jdbc/DBPool</res-ref-name> <jndi-name>SQLDataSource</jndi-name> </resource-description> </reference-descriptor> <jndi-name>AutoDealer</jndi-name> </weblogic-enterprise-bean></weblogic-ejb-jar>另外一个:<?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>AutoBuyer</display-name> <ejb-name>AutoBuyer</ejb-name> <home>sessionstateless.AutoBuyerHome</home> <remote>sessionstateless.AutoBuyer</remote> <ejb-class>sessionstateless.AutoBuyerBean</ejb-class> <session-type>Stateful</session-type> <transaction-type>Container</transaction-type> <ejb-ref> <ejb-ref-name>ejb/AutoDealerHome</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>sessionstateless.AutoDealerHome</home> <remote>sessionstateless.AutoDealer</remote> </ejb-ref> </session> <session> <display-name>AutoDealer</display-name> <ejb-name>AutoDealer</ejb-name> <home>sessionstateless.AutoDealerHome</home> <remote>sessionstateless.AutoDealer</remote> <ejb-class>sessionstateless.AutoDealerBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> <env-entry> <env-entry-name>TableName</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>AutoStock</env-entry-value> </env-entry> <resource-ref> <res-ref-name>jdbc/DBPool</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>AutoBuyer</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> <container-transaction> <method> <ejb-name>AutoDealer</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> <container-transaction> <method> <ejb-name>AutoDealer</ejb-name> <method-name>getAvailableCarsInPriceRange</method-name> </method> <trans-attribute>NotSupported</trans-attribute> </container-transaction> </assembly-descriptor></ejb-jar> 你是怎么写的阿jndi-name应该是AutoDealer 你的jndi-name在部署描述项中与LOOKUP中不一样吧。 public Connection initial(){ String user="system"; // 能够登录WebLogic控制台的用户名 String password="12345678"; //登录密码 String dataSourceName="frameSources"; // 在WebLogic控制台配置的数据源名称 Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); env.put(Context.PROVIDER_URL, "t3://localhost:7001"); Connection con = null; try { Context context = new InitialContext(env); DataSource dataSource = (DataSource)context.lookup(dataSourceName); con = dataSource.getConnection(user,password); }catch(SQLException sqle){ System.out.println("TestJNDI.initial [SQL]:"+sqle.getMessage()); }catch(Exception ex){ System.out.println("TestJNDI.initial [Ex]"+ex.getMessage()); } return con; } 把<ejb-ref-name>ejb/AutoDealerHome</ejb-ref-name>改为<ejb-ref-name>AutoDealerHome</ejb-ref-name> 已经解决了,参考资源没有jndi名,我加上了,就可以了,感谢大家的关注 新手,遇到一个问题,页面表单提交后无任何反应。 求大神 FCKeditor 上传图片尺寸如何限制?(把表格撑大了) JSP里面的一个小问题 有没有谁用过自己开发的框架 struts2中的一个问题! 不知道wsdl中如何定义interface? mybatis中删除关联表中的数据 struts标签的简单问题,怎么在jsp页面显示数据库中一字段的记录 在tomcat中运行jsp.(快帮忙吧!) java搞j2ee的项目,机子反应速度太慢! 怎样在JBoss下部署EJB?
1 name for ejb ( my name is ...)
2 name for reference (the name of the ejb i want to use is ...)(i am an ejb:-) )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN' 'http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>AutoBuyer</ejb-name>
<reference-descriptor>
<ejb-reference-description>
<ejb-ref-name>ejb/AutoDealerHome</ejb-ref-name>
<jndi-name>AutoDealer</jndi-name>
</ejb-reference-description>
</reference-descriptor>
<jndi-name>AutoBuyer</jndi-name>
</weblogic-enterprise-bean>
<weblogic-enterprise-bean>
<ejb-name>AutoDealer</ejb-name>
<reference-descriptor>
<resource-description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<jndi-name>SQLDataSource</jndi-name>
</resource-description>
</reference-descriptor>
<jndi-name>AutoDealer</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>另外一个:
<?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>AutoBuyer</display-name>
<ejb-name>AutoBuyer</ejb-name>
<home>sessionstateless.AutoBuyerHome</home>
<remote>sessionstateless.AutoBuyer</remote>
<ejb-class>sessionstateless.AutoBuyerBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
<ejb-ref>
<ejb-ref-name>ejb/AutoDealerHome</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>sessionstateless.AutoDealerHome</home>
<remote>sessionstateless.AutoDealer</remote>
</ejb-ref>
</session>
<session>
<display-name>AutoDealer</display-name>
<ejb-name>AutoDealer</ejb-name>
<home>sessionstateless.AutoDealerHome</home>
<remote>sessionstateless.AutoDealer</remote>
<ejb-class>sessionstateless.AutoDealerBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<env-entry>
<env-entry-name>TableName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>AutoStock</env-entry-value>
</env-entry> <resource-ref>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>AutoBuyer</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>AutoDealer</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>AutoDealer</ejb-name>
<method-name>getAvailableCarsInPriceRange</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
String user="system"; // 能够登录WebLogic控制台的用户名
String password="12345678"; //登录密码
String dataSourceName="frameSources"; // 在WebLogic控制台配置的数据源名称 Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, "t3://localhost:7001");
Connection con = null;
try {
Context context = new InitialContext(env);
DataSource dataSource = (DataSource)context.lookup(dataSourceName);
con = dataSource.getConnection(user,password);
}catch(SQLException sqle){
System.out.println("TestJNDI.initial [SQL]:"+sqle.getMessage());
}catch(Exception ex){
System.out.println("TestJNDI.initial [Ex]"+ex.getMessage());
}
return con;
}
<ejb-ref-name>ejb/AutoDealerHome</ejb-ref-name>
改为
<ejb-ref-name>AutoDealerHome</ejb-ref-name>