在部署了一个EJB进jboss后,启动报如下错误:(只贴出关键的.)
06:34:53,437 WARN  [EJBTimerServiceImpl] Cannot obtain TransactionManager from JNDI, using TxManager.getInstance(): javax.naming.NameNotFoundException: TransactionManager not bound06:35:06,609 ERROR [MainDeployer] Could not create deployment: file:/C:/Program Files/jboss-4.0.4RC1/server/default/deploy/sayhello.jar/
org.jboss.deployment.DeploymentException: Verification of Enterprise Beans failed, see above for error messages.
at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:594)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)06:35:06,812 ERROR [URLDeploymentScanner] Incomplete Deployment listing:--- Incompletely deployed packages ---
org.jboss.deployment.DeploymentInfo@d3f1d110 { url=file:/C:/Program Files/jboss-4.0.4RC1/server/default/deploy/sayhello.jar/ }
  deployer: MBeanProxyExt[jboss.ejb:service=EJBDeployer]
  status: Deployment FAILED reason: Verification of Enterprise Beans failed, see above for error messages.
  state: FAILED
  watch: file:/C:/Program Files/jboss-4.0.4RC1/server/default/deploy/sayhello.jar/META-INF/ejb-jar.xml
  altDD: null
  lastDeployed: 1231281306406
  lastModified: 1231278536031
  mbeans:
我的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> 
              <![CDATA[No Description.]]> 
       </description> 
       <display-name>Generated by XDoclet</display-name> 
       <enterprise-beans> 
              <session> 
                     <description> 
                            <![CDATA[Description for Hello]]> 
                     </description> 
                     <display-name>HelloWorld</display-name> 
                     <ejb-name>HelloWorld</ejb-name> 
                     <home>interfaces.HelloHome</home> 
                     <remote>interfaces.Remote</remote> 
                     <ejb-class>beans.HelloWordSession</ejb-class> 
                     <session-type>Stateless</session-type> 
                     <transaction-type>Container</transaction-type> 
              </session> 
       </enterprise-beans> 
       <assembly-descriptor> 
       </assembly-descriptor> 
</ejb-jar> 
我的jboss.xml
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 2.4//EN" "http://www.jboss.org/j2ee/dtd/jboss_2_4.dtd"> 
<jboss> 
   <enterprise-beans> 
      <session> 
         <ejb-name>HelloWorld</ejb-name> 
         <jndi-name>ejb/HelloWorld</jndi-name> 
      </session> 
   </enterprise-beans> 
   <resource-managers> 
   </resource-managers> 
</jboss> 搞了36个小时了,还是找不道原因,先去睡觉了,请你办办我,拜托了!!!

解决方案 »

  1.   

    增加一下配置 <!-- An EJB Timer Service that is Tx aware -->
     <mbean code="org.jboss.ejb­.txtimer.EJBTimerSer­viceImpl" name="jboss.ejb:ser­vice=EJBTimerService­">
     <attribute name="RetryPolicy">­jboss.ejb:service=EJ­BTimerService,retryP­olicy=fixedDelay</attrib­ute>
     <attribute name="PersistencePo­licy">jboss.ejb:serv­ice=EJBTimerService,­persistencePolicy=databa­se</attribute>
     <attribute name="TimerIdGenera­torClassName">org.jb­oss.ejb.txtimer.BigI­ntegerTimerIdGenerator</­attribute>
     <attribute name="TimedObjectIn­vokerClassName">org.­jboss.ejb.txtimer.Ti­medObjectInvokerImpl</at­tribute>
     <depends>jboss:serv­ice=TransactionManag­er</depends>
     </mbean> 
      

  2.   

    https://jira.jboss.org/jira/browse/JBAS-3053+[EJBTimerServiceImpl]+Cannot+obtain+TransactionManager+from+JNDI,+using+TxManager.getInstance()&hl=zh-CN&ct=clnk&cd=1&gl=cn&client=firefox-a&st_usg=ALhdy2-qxysdsWNvqUlKDxNpqVABhkogvg
      

  3.   

    我把上面的代码配置到了server\default\deploy\jboss-ws4ee.sar\META-INF\jboss-service.xml,是不是配置错地方了啊,启动时出现了错误了:
    10:03:51,296 ERROR [MainDeployer] Could not create deployment: file:/C:/Program
    Files/jboss-4.0.4RC1/server/default/deploy/jboss-ws4ee.sar/
    org.jboss.deployment.DeploymentException: No ClassLoaders found for: org.jboss.e
    jb-.txtimer.EJBTimerSer-viceImpl; - nested throwable: (java.lang.ClassNotFoundEx
    ception: No ClassLoaders found for: org.jboss.ejb-.txtimer.EJBTimerSer-viceImpl)        at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java
    :196)我是个笨蛋,希望您能说详细点啊
      

  4.   

    但是现在又有个新问题,:
    12:06:55,250 ERROR [MainDeployer] Could not create deployment: file:/C:/Program
    Files/jboss-4.0.4RC1/server/default/deploy/ejb-timer-service.xml
    org.jboss.deployment.DeploymentException: Trying to install an already registere
    d mbean: jboss.ejb:service=EJBTimerService
            at org.jboss.system.ServiceCreator.install(ServiceCreator.java:103)
            at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigura
    tor.java:449)
            at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java
    :171)
            at org.jboss.system.ServiceController.install(ServiceController.java:226
    )
    我是不是配置错了地方了啊??(server\default\deploy\jboss-ws4ee.sar\META-INF\jboss-service.xml)
      

  5.   

    终于自己解决了,从一开始就是错误的,安装的JBOSS时候没安装好,选项点错了,造成了不支持EJB