2012-01-12 6 views
1

私はJSF、EclipseLinkアプリケーションを持っています。私は、JasperReportsを使用して、接続を作成するために必要なレポートをエクスポートします。Jtaデータソースを読む

JasperPrint jasperPrint = JasperFillManager.fillReport(File, Hash Map, Connection) 

現在の接続(永続性XMLで定義したデータソース)にアクセスできません。私はさまざまな方法で試してみましたが、効果があったのは新しい接続を作成することだけでした。 私のコードでは、接続パラメータをハードコーディングすることについて本当に気にしません。 データソースのパラメータを読み取る方法はありますか?同じパラメータを使用して接続を作成できますか?

答えて

1

データソースを使用しているかのようにpersistence.xmlから接続にアクセスできないということはわかりませんが、他の場所で定義されており、persistence.xmlを使用してプロバイダがコンテナ。したがって、データソースの場合、永続性ユニットには接続自体に関する情報はありませんが、コンテナからそれを探すことができるはずです。ここで説明するように

あなたはEclipseLinkのからの接続を取得することができます。 http://wiki.eclipse.org/EclipseLink/Examples/JPA/EMAPI#Getting_a_JDBC_Connection_from_an_EntityManager

また、あなたがデータソースを使用していない場合は、接続情報が含まれていますセッションからログインオブジェクトを取得するには、このコードを使用することができます。

+0

ありがとうございました。私が最初の方法を試してみると、2.0。閉じた接続を返します。そして、私は行を使用させてください:entityManager.getTransaction()。begin(); 例外のため: 発生原因:java.lang.IllegalStateException: 例外の説明:JTAの使用中にEntityTransactionを使用できません。 – user1020015

+0

あなたのログインオブジェクトは何ですか? ありがとうございます。 – user1020015