jboss错误信息追加:
at org.jboss.ejb.Container.invoke(Container.java:782)
at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1058)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:1003)
at $Proxy5.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:413)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
at $Proxy40.start(Unknown Source)
at org.jboss.ejb.EjbModule.startService(EjbModule.java:404)
at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:1003)
at $Proxy5.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:413)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
at $Proxy15.start(Unknown Source)
at org.jboss.ejb.EJBDeployer.start(EJBDeployer.java:395)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:814)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:627)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:591)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
at $Proxy3.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:435)
at org.jboss.deployment.scanner.URLDeploymentScanner.scanDirectory(URLDeploymentScanner.java:656)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:507)
at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:266)
at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:165)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:1003)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:413)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
at $Proxy2.start(Unknown Source)
at org.jboss.deployment.SARDeployer.start(SARDeployer.java:232)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:814)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:627)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:591)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:575)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:324)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:221)
at org.jboss.Main.boot(Main.java:148)
at org.jboss.Main$1.run(Main.java:381)
at java.lang.Thread.run(Thread.java:536)
Caused by: javax.naming.NameNotFoundException: MySqlDS not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:495)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:503)
at org.jnp.server.NamingServer.getObject(NamingServer.java:509)
at org.jnp.server.NamingServer.lookup(NamingServer.java:282)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:484)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:463)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge.<init>(JDBCEntityBridge.java:96)
... 82 more

解决方案 »

  1.   

    你的jboss中的jboss.jca:service=LocalTxCM,name=MySqlDS服务没有启动。
    去控制台看看有没有这个服务,如果没有添加上就可以了
      

  2.   

    不清楚你再搞些什么,mysql-service.xml里面配置的是mysql的数据原啊,你在里面配置的mysql的jndi为UserCmpBean,但是你在jaws.xml里面datasource jndi又是引用的java:/MySqlDS,不知道你清楚了问题存在没有!
    你应该在mysql-service.xml申明你的datasource jndi比如说你例子里是java:/MySqlDS,然后你在到你的cmp配置文件jaws.xml里面引用你申明的datasource jndi java:/MySqlDS,这样才对吧,另外jboss里面配置ejb需要配置login-config.xml吗,反正我用的时候是没有配置这个的
      

  3.   

    多谢两位指教
    tolijing725:jndi是我写错乐,我配置文件里确实是MySqlDS.
    torainight:哪个控制台啊?怎么添加?按理是会自动启动的吧.
    我是按这篇文章照着做的,没想到还是出错(http://www.purposesolutions.com/Resources/EclipseJ2EE.html)
    我装的j2ee插件是lomboz
    我下面把mysql-service.xml全贴上来好了:/******************************
    <?xml version="1.0" encoding="UTF-8"?><!-- ===================================================================== -->
    <!--                                                                       -->
    <!--  JBoss Server Configuration                                           -->
    <!--                                                                       -->
    <!-- ===================================================================== --><server>  <!-- ==================================================================== -->
      <!-- New ConnectionManager setup for mysql using 2.0.11 driver            -->
      <!-- Build jmx-api (build/build.sh all) and view for config documentation -->
      <!-- ==================================================================== -->  <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=MySqlDS">
        <!-- Include a login module configuration named MySqlDbRealm. 
             Update your login-conf.xml, here is an example for a 
             ConfiguredIdentityLoginModule:    <application-policy name = "MySqlDbRealm">
           <authentication>
              <login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule" flag = "required">
                 <module-option name = "principal">yourprincipal</module-option>
                 <module-option name = "userName">yourusername</module-option>
                 <module-option name = "password">yourpassword</module-option>
                 <module-option name = "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=MySqlDS</module-option>
              </login-module>
           </authentication>
        </application-policy>    NOTE: the application-policy name attribute must match SecurityDomainJndiName, and the 
          module-option name = "managedConnectionFactoryName"
        must match the object name of the ConnectionManager you are configuring here.
        -->
        <!--uncomment out this line if you are using the MySqlDbRealm above
        <attribute name="SecurityDomainJndiName">MySqlDbRealm</attribute>
         -->
            <depends optional-attribute-name="ManagedConnectionFactoryName">
          <!--embedded mbean-->
          <mbean code="org.jboss.resource.connectionmanager.RARDeployment" name="jboss.jca:service=LocalTxDS,name=MySqlDS">        <attribute name="JndiName">MySqlDS</attribute>        <attribute name="ManagedConnectionFactoryProperties">
              <properties>
                <config-property name="ConnectionURL" type="java.lang.String">jdbc:mysql://localhost:3306/test</config-property>
                <config-property name="DriverClass" type="java.lang.String">org.gjt.mm.mysql.Driver</config-property>
                <!--set these only if you want only default logins, not through JAAS -->
                <config-property name="UserName" type="java.lang.String">root</config-property>
                <config-property name="Password" type="java.lang.String"></config-property>
              </properties>        </attribute><!--Below here are advanced properties -->
            <!--hack-->
            <depends optional-attribute-name="OldRarDeployment">jboss.jca:service=RARDeployment,name=JBoss LocalTransaction JDBC Wrapper</depends>
          </mbean>
        </depends>
        <depends optional-attribute-name="ManagedConnectionPool">
          <!--embedded mbean-->
          <mbean code="org.jboss.resource.connectionmanager.JBossManagedConnectionPool" name="jboss.jca:service=LocalTxPool,name=MySqlDS">
            <attribute name="MinSize">5</attribute>
            <attribute name="MaxSize">20</attribute>
            <attribute name="BlockingTimeoutMillis">5000</attribute>
            <attribute name="IdleTimeoutMinutes">15</attribute>
            <!--criteria indicates if Subject (from security domain) or app supplied
                parameters (such as from getConnection(user, pw)) are used to distinguish
                connections in the pool. Choices are 
                ByContainerAndApplication (use both), 
                ByContainer (use Subject),
                ByApplication (use app supplied params only),
                ByNothing (all connections are equivalent, usually if adapter supports
                  reauthentication)-->
            <attribute name="Criteria">ByContainer</attribute>
          </mbean>
        </depends>
        <depends optional-attribute-name="CachedConnectionManager">jboss.jca:service=CachedConnectionManager</depends>
        <depends optional-attribute-name="JaasSecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
        <attribute name="TransactionManager">java:/TransactionManager</attribute>
        <!--make the rar deploy! hack till better deployment-->
        <depends>jboss.jca:service=RARDeployer</depends>
      </mbean>
    </server>
    /******************************************************************/
    我注意到注释里说这种新写法是给2.0.11driver的,我用的是2.0.14会不会不支持啊?
      

  4.   

    那个mbean和login-config.xml可以不配置的,你可以到JBOSS_HOME/docs/examples/jca/mysql-ds.xml看看,只要把这个文件中的参数改成你的mysql设置就可以了,然后把它复制到相应deploy目录中就可以啦。我的DB2就是这么连上的。login-config.xml是用于JAAS对数据源的安全管理的,我也正在研究中。