2017-12-07 25 views
1

JBoss EAP 6.4と7.0の両方で動作する必要があるアプリケーションがあります。アプリケーションは、JBoss EAP 7でサポートされていないEJBエンティティBeanを使用するため、JBoss移行ガイドの説明に従ってエンティティBeanがJPAエンティティを使用するように移行されています。アプリケーションは6.4ではうまく動作し、正常に動作しますが、7.0では「依存しない依存関係」エラーが発生して展開できません。私は、欠落している依存関係がデータソースであったが、ここではそうではないような問題の多くを見てきました。欠落している依存関係のエラーでは、データソースはまったく言及されていません。ログにpersistence.xmlファイルが解析されており、デプロイメントが失敗する前にセッションBeanにjndiバインディングが追加されていることがわかります。永続ユニットに依存しないJBoss EAP 6.4から7.0への移行

私は複数のwarとejb jarファイルを含むEARファイルを持っています。私が問題を抱えているアプリケーションは、persistence.xmlファイルとエンティティクラスを含むejbModule.jarと、ejbModule.jarに含まれるエンティティクラスを参照するtaglibクラスを持つwebModule.warファイルです。

EARファイルの構造は以下に概説される:

MyEAR.ear
- ejbJar.jar
- webApp1.war
- webApp2.war
- ejbModule.jarは(のpersistence.xmlが含まエンティティクラス)
- META-INF/persistence.xmlの
- webModule.jar(タグライブラリクラスはejbModule.jarからエンティティ・クラスに依存している)
- META-INF

のpersistence.xml:(置き換えクラス名、データソース名、永続ユニット名)

<persistence version="2.0" xmlns:per="2.1" 
xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
<persistence-unit name="myPU"> 
    <class>org.MyEntity1</class> 
    <class>org.MyEntity2</class> 
    <jta-data-source>java:/MyDataSource</jta-data-source> 
    <properties> 
     <property name="jboss.entity.manager.jndi.name" value="java:/myPU"/> 
     <property name="jboss.entity.manager.factory.jndi.name" value="java:/myPU"/> 
    </properties> 
</persistence-unit> 

それがために「行方不明の依存関係」の行の数百を持っているように、それはエラーメッセージを投稿することは困難です私が共有することができないクラス名とアプリケーション名、そしてそれらをすべて置き換えるまでに私はそれが大いに役立つとは思わない。しかし、のようなエントリがあります。

"jboss.naming.context.java.comp.MyEAR.ejbModule.MyEntity1.InAppClientContainerは[jboss.naming.context.java.comp.MyEAR.ejbModule.MyEntity1]不足している" は、

は、しかしまた、同様にそこにエントリ:「。\ ""。。コンポーネント\ "

" jboss.deployment.subunit \" MyEAR.ear \ webApp1.war \ org.taglib.MyTagLibClass \" .STARTが見つからない[jboss.persistenceunit。\ "MyEAT.ear/ejbModule.jar#myPU \"] "

frが見えますorg.jboss.as.jpaのDEBUGロギングでは、JBossは耳の中のすべてのwarファイル内のすべてのtaglibクラスの永続ユニットに依存関係を追加するように見えます。 webModule.warのみが永続性ユニットを使用する必要があります。

2017-12-07 15:37:13,808 DEBUG [org.jboss.as.jpa](MSCサービススレッド1-2)PUサービスサービスjboss.persistenceunit。 "MyEAR.ear#myPU"に依存関係を追加すると、 org.taglib.MyTagLibClassコンポーネントの場合

EARのMETA-INFディレクトリにpersistence.xmlファイルを移動すると、アプリケーションはJBoss EAP 7.0にデプロイして正常に動作します。しかし、これは理想的なソリューションではありません。これはEARファイルが動的に構築され、制御できないカスタムアプリケーションを含む可能性があるためです。 私はこれを試してみるためにさまざまな構造を試しましたが、それ以外のものは見つかりませんでした。

JBoss EAP 7.0でこれを動作させるにはどうすればいいですか?

答えて

0

は、エンティティが

はこれを試してみてくださいpersistence.xmlに自動的に相対発見されるためとdoesnの場合は、ちょうどこの

<persistence version="2.0" xmlns:per="2.1" 
xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
<persistence-unit name="myPU"> 
    <jta-data-source>java:/MyDataSource</jta-data-source> 
</persistence-unit> 

が必要

あなたのpersistence.xmlで不要なエントリがありますできるだけ多くのserver.logを投稿してください。

もう1つのアイデアは、EAPを使用する際にRedHatサポートに問い合わせることです。サポートが含まれているサブスクリプションがあると仮定します。

+0

残念ながら、残念ながらアプリはまだ展開されません。上記のエラーと同じエラーで失敗します。 –

+0

ログファイル全体を入力してください。私はちょうどと抜粋であなたを助けることができません –

関連する問題