0

最近、jbossとeclipseを使用してJPAプログラムを試しました。MySQLに接続するために、必要なmySQL-connector JARをJBossインストールディレクトリパスに配置し、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 inservicejboss.deployment.unit。"FirstEJBProject.jar".INSTALL:org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java)でのデプロイメント"FirstEJBProject.jar"のフェーズINSTALLの処理に失敗しました: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] 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(Unknown Source)[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(不明なソース)[rt.jar:1.7.0_13]原因:java.lang.IllegalArgumentException:org.jboss.msc.service.ServiceName.of(ServiceName.java:85)[jbossのJavaでは空の名前セグメントは許可されていません-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] at org.jboss.as.naming.deployment.ContextNames.buildServiceName(ContextNames.java:178)at org.jboss.as.naming.deployment.ContextNames $ BindInfo。(ContextNames.java:190)at org org.jboss.as.namingの.jboss.as.naming.deployment.ContextNames$BindInfo。(ContextNames.java:181)。org.jboss.as.naming.deployment.ContextNames.bindInfoForEnvEntry(ContextNames.java:165)のdeployment.ContextNames.bindInfoFor(ContextNames.java:124)org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.deployPersistenceUnit(PersistenceUnitDeploymentProcessor。 java:319)org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.addPuService(PersistenceUnitDeploymentProcessor.java:258)at org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.handleJarDeployment(PersistenceUnitDeploymentProcessor.java:145)at org .as.jpa.processor.PersistenceUnitDeploymentProcessor.deploy(PersistenceUnitDeploymentProcessor.java:120)at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113)[jboss-as-server-7.1.1.Final .jar:7.1.1。ファイナル]...さらに5

17:34:17,430 INFO [org.jboss.as.server](DeploymentScanner-threads-2)JBAS015870:デプロイメント"FirstEJBProject.jar"のデプロイが失敗メッセージ{"JBAS014671:Failed services" => {" jboss .deployment.unit。\"FirstEJBProject.jar\"。INSTALL"=>"サービスjboss.deployment.unit。\"FirstEJBProject.jar\"。INSTALLのorg.jboss.msc.service.StartException:フェーズ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:13msでデプロイメントFirstEJBProject.jarを停止しました17:34:17,445 INFO [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:失敗したサービス開始するには:servicejboss.deployment.unit。"FirstEJBProject.jar" .INSTALL:org.jboss.msc.service.StartException inservicejboss.deployment.unit。"FirstEJBProject.jar".INSTALL:デプロイメントのフェーズINSTALLの処理に失敗しました「FirstEJBProject.jar」deploy.unit。"FirstEJBProject.jar".INSTALL:org.jboss.msc.service.StartException inservicejboss.deployment.unit。"FirstEJBProject.jar".INSTALL:デプロイメント"FirstEJBProject.jar"のフェーズINSTALLの処理に失敗しましたdeploy.unit。"FirstEJBProject.jar".INSTALL:org.jboss.msc.service.StartException inservicejboss.deployment.unit。"FirstEJBProject.jar".INSTALL:デプロイメント"FirstEJBProject.jar"のフェーズINSTALLの処理に失敗しました

17:34:17,461エラー[org.jboss.as.server.deployment.scanner](DeploymentScanner-threads-1){"JBAS014653:複合操作が失敗し、ロールバックされました。失敗したステップ:"=>{"操作ステップ- 2 "=> {" JBAS014671:失敗したサービス"=>{"jboss.deployment.unit。\"FirstEJBProject.jar\"。INSTALL"=>"サービスjboss.deployment.unitのorg.jboss.msc.service.StartException 。\"FirstEJBProject.jar\"。INSTALL:デプロイメント\ "FirstEJBProject.jar \" "}のフェーズINSTALLの処理に失敗しました、" 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] "]}}}FirstEJBProject.FirstEJBProject.StudentLogic.ValidatorFactoryjboss.naming.context.java.comp.FirstEJBProject.FirstEJBProject.StudentLogic] "]}}}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接続を再度行う必要がないので、その解決策も知っていると役に立ちます。

ありがとうございました。

4

2 に答える 2

2

問題は、<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>

これがお役に立てば幸いです

于 2013-03-05T14:42:23.170 に答える
0

を定義する必要があります<driver>mysql</driver。これは通常、モジュールを定義することによって行われます。ここで すべてを見つけることができますhttp://bnlconsulting.com/index.php/blog/item/88-jboss-71-adding-mysql-datasource

于 2013-03-03T05:01:45.003 に答える