ejb-jar.xml文件如下:
<?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>
<description>Book Application</description>
<display-name>Book EJB</display-name>
<enterprise-bean>
<session>
<ejb-name>BookEJB</ejb-name>
<home>demy.BookEJBHome</home>
<remote>demy.BookEJB</remote>
<ejb-class>demy.BookEJBImpl</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-bean>
</ejb-jar>

解决方案 »

  1.   

    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>
    <ejb-ref>
    <ejb-ref-name>ejb/BookEJB</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <home>demy.BookEJBHome</home>
    <remote>demy.BookEJB</remote>
    </ejb-ref>
    </web-app>
      

  2.   

    jboss-jdbc.xml呢?(名字可能不太准确)
      

  3.   

    jboss-web.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <jboss-web>
    <ejb-ref>
    <ejb-ref-name>ejb/BookEJB</ejb-ref-name>
    <jndi-name>ejb/BookEJB</jndi-name>
    </ejb-ref>
    </jboss-web>
      

  4.   

    jboss.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <jboss>
    <enterprise-beans>
    <session>
    <ejb-name>BookEJB</ejb-name>
    <jndi-name>ejb/BookEJB</jndi-name>
    </session>
    </enterprise-beans>
    </jboss>
      

  5.   

    反正还有个xml文件是绑定EJBName和JNDI的,Jboss根据这个xml提供JNDI服务。
      

  6.   

    反正还有个xml文件是绑定EJBName和JNDI的,Jboss根据这个xml提供JNDI服务。
      

  7.   

    按道理这样应该可以了。我没有用到那个jboss-web.xml
      

  8.   

    但总是报错:javax.naming.NameNotFoundException ejb not found.
      

  9.   

    你启动JBoss的时候,可以看一下CMD里面的日志,或者打开日志文件看一下有什么异常,我通常都是根据那里改错的。
      

  10.   

    下面的就是一次部署后日志里面的内容
    2004-12-31 11:15:47,328 DEBUG [org.jboss.web.tomcat.tc5.TomcatDeployer] Initialized: {WebApplication: /E:/jboss/server/default/tmp/deploy/tmp61872bookejb.ear-contents/bookejb-exp.war/, URL: file:/E:/jboss/server/default/tmp/deploy/tmp61872bookejb.ear-contents/bookejb-exp.war/, classLoader: java.net.FactoryURLClassLoader@1443628:21247528} jboss.web:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/book
    2004-12-31 11:15:47,328 DEBUG [org.jboss.web.WebModule] Started jboss.web.deployment:id=-1976030977,war=bookejb.war
    2004-12-31 11:15:47,328 DEBUG [org.jboss.system.ServiceController] Starting dependent components for: jboss.web.deployment:id=-1976030977,war=bookejb.war dependent components: []
    2004-12-31 11:15:47,343 DEBUG [org.jboss.deployment.MainDeployer] End deployment start on package: bookejb.war
    2004-12-31 11:15:47,359 DEBUG [org.jboss.system.ServiceController] starting service jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:47,359 DEBUG [org.jboss.deployment.EARDeployment] Starting jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:47,359 DEBUG [org.jboss.deployment.EARDeployment] Started jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:47,359 DEBUG [org.jboss.system.ServiceController] Starting dependent components for: jboss.j2ee:service=EARDeployment,url='bookejb.ear' dependent components: []
    2004-12-31 11:15:47,359 INFO  [org.jboss.deployment.EARDeployer] Started J2EE application: file:/E:/jboss/server/default/deploy/bookejb.ear
    2004-12-31 11:15:47,359 DEBUG [org.jboss.deployment.MainDeployer] End deployment start on package: bookejb.ear
    2004-12-31 11:15:47,359 DEBUG [org.jboss.deployment.MainDeployer] Deployed package: file:/E:/jboss/server/default/deploy/bookejb.ear
    2004-12-31 11:16:09,906 INFO  [STDOUT] javax.naming.NameNotFoundException ejb not bound
      

  11.   

    这个应该是完整的一次日志输出
    2004-12-31 11:15:46,953 DEBUG [org.jboss.deployment.MainDeployer] Undeploying file:/E:/jboss/server/default/deploy/bookejb.ear
    2004-12-31 11:15:46,953 DEBUG [org.jboss.deployment.MainDeployer] Stopping sub deployment: file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear-contents/bookejb.war
    2004-12-31 11:15:46,953 DEBUG [org.jboss.system.ServiceController] stopping service: jboss.web.deployment:id=207645950,war=bookejb.war
    2004-12-31 11:15:46,953 DEBUG [org.jboss.system.ServiceController] stopping dependent services for: jboss.web.deployment:id=207645950,war=bookejb.war dependent services are: []
    2004-12-31 11:15:46,953 DEBUG [org.jboss.web.WebModule] Stopping jboss.web.deployment:id=207645950,war=bookejb.war
    2004-12-31 11:15:46,953 INFO  [org.jboss.web.tomcat.tc5.TomcatDeployer] undeploy, ctxPath=/book, warUrl=file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear-contents/bookejb-exp.war/
    2004-12-31 11:15:46,968 DEBUG [tomcat.localhost./book.Context] Stopping
    2004-12-31 11:15:46,968 DEBUG [tomcat.localhost./book.Context] Stopping filters
    2004-12-31 11:15:46,968 DEBUG [tomcat.localhost./book.Context]  Stopping filter 'CommonHeadersFilter'
    2004-12-31 11:15:46,968 DEBUG [tomcat.localhost./book.Context] Processing standard container shutdown
    2004-12-31 11:15:46,968 DEBUG [tomcat.localhost./book.Context] Sending application stop events
    2004-12-31 11:15:46,968 DEBUG [tomcat.localhost./book.Context] resetContext jboss.web:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/book org.jboss.mx.server.MBeanServerImpl@2e7820
    2004-12-31 11:15:46,968 DEBUG [tomcat.localhost./book.Context] Stopping complete
    2004-12-31 11:15:46,968 DEBUG [org.jboss.web.WebModule] Stopped jboss.web.deployment:id=207645950,war=bookejb.war
    2004-12-31 11:15:46,968 DEBUG [org.jboss.deployment.MainDeployer] Stopping sub deployment: file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear-contents/bookejb.jar
    2004-12-31 11:15:46,968 DEBUG [org.jboss.system.ServiceController] stopping service: jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:46,968 DEBUG [org.jboss.system.ServiceController] stopping dependent services for: jboss.j2ee:service=EARDeployment,url='bookejb.ear' dependent services are: []
    2004-12-31 11:15:46,968 DEBUG [org.jboss.deployment.EARDeployment] Stopping jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:46,968 DEBUG [org.jboss.deployment.EARDeployment] Stopped jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:46,968 DEBUG [org.jboss.deployment.MainDeployer] Destroying sub deployment: file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear-contents/bookejb.war
    2004-12-31 11:15:46,968 DEBUG [org.jboss.system.ServiceController] destroying service: jboss.web.deployment:id=207645950,war=bookejb.war
    2004-12-31 11:15:46,968 DEBUG [org.jboss.system.ServiceController] destroying dependent services for: jboss.web.deployment:id=207645950,war=bookejb.war depenent services are: []
    2004-12-31 11:15:46,968 DEBUG [org.jboss.web.WebModule] Destroying jboss.web.deployment:id=207645950,war=bookejb.war
    2004-12-31 11:15:46,968 DEBUG [org.jboss.web.WebModule] Destroyed jboss.web.deployment:id=207645950,war=bookejb.war
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.DeploymentInfo] Cleaned Deployment: file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear-contents/bookejb-exp.war/
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.MainDeployer] Undeployed file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear-contents/bookejb.war
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.MainDeployer] Destroying sub deployment: file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear-contents/bookejb.jar
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.DeploymentInfo] Not deleting localUrl, it is null or not a copy: file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear-contents/bookejb.jar
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.MainDeployer] Undeployed file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear-contents/bookejb.jar
    2004-12-31 11:15:46,984 INFO  [org.jboss.deployment.EARDeployer] Undeploying J2EE application, destroy step: file:/E:/jboss/server/default/deploy/bookejb.ear
    2004-12-31 11:15:46,984 DEBUG [org.jboss.system.ServiceController] destroying service: jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:46,984 DEBUG [org.jboss.system.ServiceController] destroying dependent services for: jboss.j2ee:service=EARDeployment,url='bookejb.ear' depenent services are: []
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.EARDeployment] Destroying jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.EARDeployment] Destroyed jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:46,984 DEBUG [org.jboss.system.ServiceController] removing service: jboss.j2ee:service=EARDeployment,url='bookejb.ear'
    2004-12-31 11:15:46,984 DEBUG [org.jboss.system.ServiceController] removing jboss.j2ee:service=EARDeployment,url='bookejb.ear' from server
    2004-12-31 11:15:46,984 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] Unregistering cl=org.jboss.mx.loading.UnifiedClassLoader3@873b9f{ url=file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear ,addedOrder=43}
    2004-12-31 11:15:46,984 DEBUG [org.jboss.mx.loading.UnifiedLoaderRepository3] UnifiedLoaderRepository removed(true) org.jboss.mx.loading.UnifiedClassLoader3@873b9f{ url=file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear ,addedOrder=43}
    2004-12-31 11:15:46,984 DEBUG [org.jboss.util.file.Files] Failed to delete dir: E:\jboss\server\default\tmp\deploy\tmp61871bookejb.ear
    2004-12-31 11:15:46,984 WARN  [org.jboss.deployment.DeploymentInfo] Could not delete file:/E:/jboss/server/default/tmp/deploy/tmp61871bookejb.ear restart will delete it
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.MainDeployer] Undeployed file:/E:/jboss/server/default/deploy/bookejb.ear
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.MainDeployer] Starting deployment of package: file:/E:/jboss/server/default/deploy/bookejb.ear
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.MainDeployer] Starting deployment (init step) of package at: file:/E:/jboss/server/default/deploy/bookejb.ear
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.MainDeployer] Copying file:/E:/jboss/server/default/deploy/bookejb.ear -> E:\jboss\server\default\tmp\deploy\tmp61872bookejb.ear
    2004-12-31 11:15:46,984 DEBUG [org.jboss.deployment.MainDeployer] using deployer org.jboss.deployment.EARDeployer@14e45b3
    2004-12-31 11:15:46,984 INFO  [org.jboss.deployment.EARDeployer] Init J2EE application: file:/E:/jboss/server/default/deploy/bookejb.ear
      

  12.   

    這樣試試:
    Properties properties = new Properties();
    properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    properties.put(Context.PROVIDER_URL, "localhost:1099");
    InitialContext ic = new InitialContext(properties);
    Object obj = ic.lookup("ejb/BookEJB");
      

  13.   

    为什么我按照楼上的方法后出现下面的错误呢?
    java.lang.NoClassDefFoundError: org/jboss/logging/Logger
    at org.jnp.interfaces.NamingContext.<clinit>(NamingContext.java:104)
    at org.jnp.interfaces.NamingContextFactory.getInitialContext(NamingContextFactory.java:41)
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.init(Unknown Source)
    at javax.naming.InitialContext.<init>(Unknown Source)
    at demy.CountClient.main(CountClient.java:31)
      

  14.   

    到http://localhost:8080/jmx-console/看看你的ejb是否部署上了,要是部署上了,看看部署上的ejb名字是不是你lookup的名字
      

  15.   

    查了是下面的信息,应该不会有问题吧
    jboss.j2ee
    jndiName=ejb/BookEJB,plugin=pool,service=EJB
    jndiName=ejb/BookEJB,service=EJB
    jndiName=ejb/CountBean,plugin=cache,service=EJB
    jndiName=ejb/CountBean,plugin=pool,service=EJB
    jndiName=ejb/CountBean,service=EJB
    module=Count.jar,service=EjbModule
    module=bookejb.jar,service=EjbModule
    service=ClientDeployer
    service=EARDeployer
    service=EARDeployment,url='bookejb.ear'