你的Object obj= context.lookup("java/comp/env/ejb/Trader");
应为Object obj= context.lookup("java/comp/env/Trader");
应为Object obj= context.lookup("java/comp/env/Trader");
解决方案 »
- FTP怎么批量改文件后缀名,急!!!!!!!!!
- 出错求教!
- 应用启动时 出现错误
- 刚开始学struts2就被人警告了
- struts2小问题 高手帮解决下
- 数据库可不可以简单的理解为表格的集合?
- 存储过程blob参数问题
- 数据库的问题(2000的问题)
- Struts中html的标签问题<html:form>
- 项目刚刚结束,想自学下hibernate和spring(以后做项目可能就会用),请教下这两个先学哪个好些,或是有什么好的建议请提下,谢谢了
- 哪位高手知道较好的群发邮件的原理或者代码?谢谢,能给点建议嘛?100分。
- 高分请教,在Hibernate.properties配置好了DBCP连接池,如何在程序中调用
不过又出现个新问题,好像直接lookup“java/comp/env/ejb/Trader"一般来说是找不到的,要设置工程的web.xml,我的web.xml设置如下:web.xml
----------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<session>
<ejb-name>Trader</ejb-name>
<Home>ejbappdemo.TraderHome</Home>
<remote>ejbappdemo.Trader</remote>
<ejb-ref>
<description>EJB's Referece</description>
<ejb-ref-name>ejb/Trader</ejb-ref-name> <!-- 这儿引用了ejb/Trader -->
<ejb-ref-type>Session</ejb-ref-type>
<Home>TraderHome</Home>
<remote>Trader</remote>
<ejb-link>Trader</ejb-link>
</ejb-ref>
</session>
</web-app>
----------------------------------------------------------------------------------JavaBean中调用EJB的代码如下:
----------------------------------------------------------------------------------
package testejb;import ejbappdemo.*; //shop.jar中的package
import java.util.*;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;public class TestEJBBean {public TestEJBBean() {
try{
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL,"t3://demosoft:7001");
Context context = new InitialContext(properties);
Object ref=context.lookup("java:comp/env/ejb/Trader"); //这里出现调用出错
/*如果直接用Object ref=context.lookup("Trader");则成功,这是为什么? */
TraderHome home=(TraderHome)PortableRemoteObject.narrow(ref,TraderHome.class);
Trader trader=home.create();
trader.showMsg();
}
catch(Exception e){
System.err.println(e.getMessage());
e.printStackTrace();
}
}
}----------------------------------------------------------------------------------
错误提示如下:
While trying to look up comp/env/ejb/Trader in /app/webapp/WebTestEJB/29404618.javax.naming.NameNotFoundException: While trying to look up comp/env/ejb/Trader in /app/webapp/WebTestEJB/29404618.; remaining name 'comp/env/ejb/Trader'at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:858)at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:150)at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:237)at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:336)at weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWrapper.java:45)at weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:130)at javax.naming.InitialContext.lookup(InitialContext.java:347)at testejb.TestEJBBean.<init>(TestEJBBean.java:17)at jsp_servlet.__callejbjsp._jspService(__callejbjsp.java:130)at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:446)at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350)at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)望赐教如何解决?
因为那个EJB在远程服务器上