Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

jta-data-source名に__pmが付けられてエラーとなる

これ、ハマってる方がいるのかわからないのですが、自分は結構ハマったのでメモ。

手元の環境は

Windows 8 Pro(64bit)
JDK 7u67
NetBeans 8.0.1
GlassFish 4.1

で、Java DB(Derby)のテーブルからNetBeansの自動生成機能でエンティティ・クラス作ったりしたアプリをデプロイしたとき

重大: Exception while preparing the app : Invalid resource : MemoJNDI__pm
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid resource : MemoJNDI__pm
at org.glassfish.jdbcruntime.service.JdbcDataSource.validateResource(JdbcDataSource.java:81)
at org.glassfish.jdbcruntime.service.JdbcDataSource.setResourceInfo(JdbcDataSource.java:62)
at org.glassfish.jdbcruntime.JdbcRuntimeExtension.lookupDataSourceInDAS(JdbcRuntimeExtension.java:136)
…略

みたいなエラーでこけてしまう。うーん、今まであまりなったことなかったのに…と。

自動生成されたpersistence.xmlのjta-data-sourceは

<persistence-unit name="sample.javaee_MemoApp_war_1.0PU" transaction-type="JTA">
    <jta-data-source>MemoJNDI</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties/>
</persistence-unit>

となっていて「__pm」なんてつけてないんだけど…??みたいな。

ググると海外情報では同じエラーの人が多々いて、回答みてやってみたりもしたけど、ダメでした。


java - Glassfish can not find JNDI DataSource while deploying - Stack Overflow


java - JNDI resource name appended with _pm . Deployment fails . - Stack Overflow


java - Glassfish Server Error when deploy .war: Error occurred during deployment: Exception while preparing the app : Invalid resource - Stack Overflow

http://www.nagazuka.nl/2014/03/invalid-resource-with-netbeans-8_27.html

というか、GlassFish3.1.2.2とかNetBeans7.3でもなってるっぽい。自分はなったことないのだが。。。

で、ドメインを作り直すと、普通に動くようになりました。
前に@megascusさんが以下ブログでパスワードの所で注意、とあって、一番下にドメイン作り直し、というをやってみた感じ。


#JJUG_CCC Java EE 7 HoL補足 - 水まんじゅう

NetBeansのサーバ追加で新しくGlassFish4.1を食わせなおしただけですが。

f:id:kikutaro777:20140915165534j:plain

デフォルトで作られるドメインが駄目なのかなぁ。domain.xmlとか細かく見比べてみないと。

NetBeansで自動生成されるglassfish-resources.xmlでJDBCのconnection-poolやresourceを定義するのではなく、GlassFishの管理コンソールで手動作成すればいけるとも書いてありましたが、まだ試してないです。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村