1

Java EEアプリケーションを最新のEclipseバージョン(Glassfishアダプターバージョン1.7.1を搭載したHelios SR2)から最新のGlassfish(3.1)にデプロイしようとすると、奇妙な例外が発生します。管理コンソールを介してwarファイルをサーバーに手動でデプロイすると、すべてが正常に機能します。したがって、アプリケーション自体またはGlassfish構成にバグがあるようには見えません。

SCHWERWIEGEND: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [com.sun.ejb.containers.TimerBean/em] in the scope of the module called [MyCMS]. Please verify your application.
java.lang.RuntimeException: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [com.sun.ejb.containers.TimerBean/em] in the scope of the module called [MyCMS]. Please verify your application.
    at com.sun.enterprise.deployment.BundleDescriptor.findReferencedPUViaEMRef(BundleDescriptor.java:693)
    at com.sun.enterprise.deployment.BundleDescriptor.findReferencedPUsViaPCRefs(BundleDescriptor.java:681)
    at com.sun.enterprise.deployment.WebBundleDescriptor.findReferencedPUs(WebBundleDescriptor.java:1056)
    at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:184)
    at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:166)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:870)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:410)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:465)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:222)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:234)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:619)

誰かがEclipseで同様の問題を経験し、解決策を見つけましたか?

乾杯、ファビアン

4

3 に答える 3

1

ルドー、助けてくれてありがとう!私は自分の問題を解決しました:何らかの理由で、eclipseワークスペースのglassfisteclipseAppフォルダーへのマッピングが正しくありませんでした。Eclipseを更新すると、Maven依存関係ライブラリ全体がデプロイされました。また、derby.jar [test]もglassfishにデプロイされていたため、この奇妙なバグが発生しました。これがどのように起こったのか、そしてなぜこれが日食の更新によって引き起こされたのかはもうわかりません...とにかく、次の行を追加することで問題を解決しましたプロパティ>デプロイメントアセンブリ:/ target / myapp / WEB-INF / lib-> WEB-INF / lib

于 2011-03-02T10:54:11.643 に答える
1

アプリケーションをJBoss6-M2からGlassfish3.1.1に移植しているときに、このエラーが発生していました。persistence.xmlファイルは、 META-INFベースディレクトリの下のearファイルにアーカイブされました。JBossはそれを見つけるのに問題はありませんでしたが、Glassfishはこの場所でスコープの問題がありました。解決策は、persistence.xmlが特定のjarのMETA-INFディレクトリ内に保存されるようにアーカイブを再構築することでした。

于 2011-09-16T14:36:14.050 に答える
0

Webアプリケーションですか、それともFull EARアプリケーションですか?展開されたディレクトリでデプロイしたと思います。GFサーバーのプロパティには、展開されたディレクトリの代わりにアーカイブを展開する新しいオプションがあります。やってみませんか?これにより、問題が本当にEclipseパッケージ側にあるかどうかがわかります。おそらくpersistence.xmlファイルが正しくセットアップまたはデプロイされていないようですか?

ドメインディレクトリでサーバーが使用する展開ディレクトリの内容を確認することもできます。eclipsAppsサブディレクトリを確認します。

于 2011-03-01T15:54:02.720 に答える