首页 文章

连接到mysql时JBoss服务器异常

提问于
浏览
0

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

错误

17:34:17,195 ERROR [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:无法处理阶段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] at org.jboss.msc.service.ServiceControllerImpl $ StartTask.startService(ServiceControllerImpl.java:1811)[jboss-msc -1.0.2.GA.jar:1.0.2.GA] at 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] at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)[rt.jar:1.7 .0_13] at java.lang.Thread.run(Unknown Source)[rt.jar:1.7.0_13]引起:java.lang . IllegalArgumentException:org.jboss.msc.service.ServiceName.of(ServiceName.java:85)中的java不允许空名称段[jboss-msc-1.0.2.GA.jar:1.0.2.GA] at org .jboss.msc.service.ServiceName.append(ServiceName.java:112)[jboss-msc-1.0.2.GA.jar:1.0.2.GA] atg.jboss.as.naming.deployment.ContextNames.buildServiceName (ContextNames.java:178)org.jboss.as.naming.deployment.ContextNames $ BindInfo . (ContextNames.java:190)at 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 . 位于org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcess的org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.addPuService(PersistenceUnitDeploymentProcessor.java:258)的jpa.processor.PersistenceUnitDeploymentProcessor.deployPersistenceUnit(PersistenceUnitDeploymentProcessor.java:319) or.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 more 17:34:17,430 INFO [org.jboss.as.server](DeploymentScanner-threads - 2) JBAS015870:部署 “FirstEJBProject.jar” 的部署被回滚失败消息{: “安装” “JBAS014671服务失败”=> { “jboss.deployment.unit \” FirstEJBProject.jar \ =>“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.Studen tLogicMissing [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:停止部署FirstEJBProject.jar in 13ms 17:34:17,445 INFO [org.jboss.as .controller](DeploymentScanner-threads - 2)JBAS014774:服务状态报告JBAS014775:新的缺失/不满足的依赖项:服务jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic(missing)dependents:[service jboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic.ValidatorFactory,service jboss.naming.context.java.comp .FirstEJBProject.FirstEJBProject.StudentLogic.Validator] JBAS014777:无法启动的服务:服务jboss.deployment.unit . “FirstEJBProject.jar”.INSTALL:服务jboss.deployment.unit中的org.jboss.msc.service.StartException . “ FirstEJBProject.jar“.INSTALL:无法处理部署的部署INSTALL”FirstEJBProject.jar“17:34:17,461 ERROR [org.jboss.as.server.deployment.scanner](DeploymentScanner-threads - 1){”JBAS014653:Composite操作失败并被回滚 . 失败的步骤:“=> {”操作步骤-2“=> {”JBAS014671:失败的服务“=> {”jboss.deployment.unit . \“FirstEJBProject.jar \” . INSTALL“ >>服务jboss.deployment.unit中的org.jboss.msc.service.StartException . \“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连接 .

谢谢 .

2 回答

  • 0

    问题在于 <jta-data-source>java:/</jta-data-source> 我需要填写与 <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

    您需要定义 <driver>mysql</driver . 这通常通过定义模块来完成 . 你可以找到所有相关的信息here http://bnlconsulting.com/index.php/blog/item/88-jboss-71-adding-mysql-datasource

相关问题