【问题标题】:JBoss server exception while connecting to mysql连接到 mysql 时 JBoss 服务器异常
【发布时间】:2013-02-13 19:49:36
【问题描述】:

我最近尝试了使用 jboss 和 eclipse 的 JPA 程序。为了连接到 MySQL,我在 JBoss 安装目录路径中放入了所需的 mySQL-connector JAR,并在 jboss 的standalone.xml 中添加了配置,如果我从 eclipse 启动 jboss,它启动正常并显示我也配置了连接。 但是如果我添加我的 ejb 程序并启动服务器,它会给我以下错误,当我搜索解决这个问题时,每个论坛都给了我不同的解决方案,但似乎没有解决我的问题。

错误

17:34:17,195 错误 [org.jboss.msc.service.fail](MSC 服务线程 1-5)MSC00001:无法启动服务 jboss.deployment.unit."FirstEJBProject.jar".INSTALL: 服务中的 org.jboss.msc.service.StartException jboss.deployment.unit."FirstEJBProject.jar".INSTALL: 处理失败 部署“FirstEJBProject.jar”的阶段安装在 org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) [rt.jar:1.7.0_13] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) [rt.jar:1.7.0_13] 在 java.lang.Thread.run(未知来源) [rt.jar:1.7.0_13] 引起:java.lang.IllegalArgumentException:空 名称段不允许用于 java org.jboss.msc.service.ServiceName.of(ServiceName.java:85) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 org.jboss.msc.service.ServiceName.append(ServiceName.java:112) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 org.jboss.as.naming.deployment.ContextNames.buildServiceName(ContextNames.java:178) 在 org.jboss.as.naming.deployment.ContextNames$BindInfo.(ContextNames.java:190) 在 org.jboss.as.naming.deployment.ContextNames$BindInfo.(ContextNames.java:181) 在 org.jboss.as.naming.deployment.ContextNames.bindInfoFor(ContextNames.java:124) 在 org.jboss.as.naming.deployment.ContextNames.bindInfoForEnvEntry(ContextNames.java:165) 在 org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.deployPersistenceUnit(PersistenceUnitDeploymentProcessor.java:319) 在 org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.addPuService(PersistenceUnitDeploymentProcessor.java:258) 在 org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.handleJarDeployment(PersistenceUnitDeploymentProcessor.java:145) 在 org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.deploy(PersistenceUnitDeploymentProcessor.java:120) 在 org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ... 5 更多

17:34:17,430 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870:部署部署“FirstEJBProject.jar”已滚动 返回失败消息{“JBAS014671:失败的服务”=> {"jboss.deployment.unit.\"FirstEJBProject.jar\".INSTALL" => “服务中的 org.jboss.msc.service.StartException jboss.deployment.unit.\"FirstEJBProject.jar\".INSTALL: 失败 部署的过程阶段安装 \"FirstEJBProject.jar\""},"JBAS014771:服务与 缺少/不可用的依赖项” => [“jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic.Validatorjboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogicMissing[jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic。 Validatorjboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic]","jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic.ValidatorFactoryjboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogicMissing [jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic.ValidatorFactoryjboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic]"]} 17:34:17,430 INFO [org.jboss.as.server.deployment](MSC 服务 线程 1-2) JBAS015877:在 13 毫秒内停止部署 FirstEJBProject.jar 17:34:17,445 信息 [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774:服务状态报告 JBAS014775:新的缺失/不满足的依赖关系: 服务 jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic (失踪)家属:[服务 jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic.ValidatorFactory, 服务 jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic.Validator] JBAS014777:未能启动的服务:服务 jboss.deployment.unit."FirstEJBProject.jar".INSTALL: 服务中的 org.jboss.msc.service.StartException jboss.deployment.unit."FirstEJBProject.jar".INSTALL: 处理失败 部署“FirstEJBProject.jar”的阶段安装

17:34:17,461 错误 [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: 复合操作 失败并被回滚。失败的步骤:" => {"操作步骤 2" => {"JBAS014671: 失败的服务" => {"jboss.deployment.unit.\"FirstEJBProject.jar\".INSTALL" => “服务中的 org.jboss.msc.service.StartException jboss.deployment.unit.\"FirstEJBProject.jar\".INSTALL: 失败 部署的过程阶段安装 \"FirstEJBProject.jar\""},"JBAS014771:服务与 缺少/不可用的依赖项” => [“jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic.Validatorjboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogicMissing[jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic。 Validatorjboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic]","jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic.ValidatorFactoryjboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogicMissing [jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic.ValidatorFactoryjboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic]"]}}}

persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="1.0">
<!-- MySQL DataSource -->
<persistence-unit name="STUD">
    <jta-data-source>java:/</jta-data-source>
    <properties>
        <property name="showSql" value="true" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
    </properties>
</persistence-unit>

sstandalone.xml

<datasource jndi-name="java:/mydb" pool-name="my_pool" enabled="true" jta="true" use-java-context="true" use-ccm="true">
                <connection-url>jdbc:mysql://localhost:3306/myschema</connection-url>
                <driver>mysql</driver>
                <security>
                    <user-name>root</user-name>
                    <password>password</password>
                </security>
                <statement>
                    <prepared-statement-cache-size>
                        100
                    </prepared-statement-cache-size>
                    <share-prepared-statements/>
                </statement>
            </datasource>
            <drivers>
                <driver name="h2" module="com.h2database.h2">
                    <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                </driver>
                 <driver name="mysql" module="com.mysql"/>
            </drivers>
        </datasources>

我在这里错过了什么吗?

我尝试过使用 mySQL-ds.xml,如果我使用它,它会给出不同的错误,因为数据源无法解析。如果我也知道解决方案会很有帮助,因为我会打包我的程序并进行部署,我不需要再次在 JBoss 中进行 SQL 连接。

谢谢。

【问题讨论】:

    标签: mysql eclipse jpa jboss ejb


    【解决方案1】:

    问题是&lt;jta-data-source&gt;java:/&lt;/jta-data-source&gt;的问题,我需要填写和&lt;datasource jndi-name="java:/mydb"一样的名字所以最后自己解决了,谢谢大家的帮助。

    固定的持久性 XML 代码

        <persistence xmlns="http://java.sun.com/xml/ns/persistence"
    version="1.0">
    <!-- MySQL DataSource -->
    <persistence-unit name="STUD">
        <jta-data-source>java:/mydb</jta-data-source>
        <properties>
            <property name="showSql" value="true" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
        </properties>
    </persistence-unit>
    

    希望这会有所帮助

    【讨论】:

      【解决方案2】:

      您需要定义&lt;driver&gt;mysql&lt;/driver。这通常通过定义一个模块来完成。你可以找到所有关于它herehttp://bnlconsulting.com/index.php/blog/item/88-jboss-71-adding-mysql-datasource

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-18
        • 1970-01-01
        • 2014-10-29
        • 1970-01-01
        相关资源
        最近更新 更多