【问题标题】:Eclipse Galileo + Glassfish v3: JPADeployer NullPointerException on deployEclipse Galileo + Glassfish v3:部署时的 JPADeployer NullPointerException
【发布时间】:2010-03-08 00:19:33
【问题描述】:

我创建了一个非常简单的“企业应用程序”项目,其中包含大约 7 个实体 bean 和一个无状态会话 bean。我还配置了一个 Glassfish v3 实例作为我的应用程序服务器运行。不幸的是,当我尝试将 EAR 发布到 Glassfish 时,我收到以下响应:

SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
java.lang.NullPointerException
    at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:104)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:644)
    at org.glassfish.javaee.full.deployment.EarDeployer.prepareBundle(EarDeployer.java:269)
    at org.glassfish.javaee.full.deployment.EarDeployer.access$200(EarDeployer.java:79)
    at org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:131)
    at org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:129)
    at org.glassfish.javaee.full.deployment.EarDeployer.doOnBundles(EarDeployer.java:197)
    at org.glassfish.javaee.full.deployment.EarDeployer.doOnAllTypedBundles(EarDeployer.java:206)
    at org.glassfish.javaee.full.deployment.EarDeployer.doOnAllBundles(EarDeployer.java:232)
    at org.glassfish.javaee.full.deployment.EarDeployer.prepare(EarDeployer.java:129)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:644)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:296)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
    at java.lang.Thread.run(Thread.java:637)

【问题讨论】:

    标签: eclipse jpa glassfish ejb-3.0


    【解决方案1】:

    这个 NPE 看起来有点接近问题 #11387(这不是完全相同的问题,但可能是相同的原因......或者部署子组件中的另一个错误)。因此,我的建议是:

    1. 尝试使用最近的夜间版本(上述问题已在 3 天前在后备箱中修复,我没有仔细查看以确认它完全不相关)。
    2. 如果问题仍然存在,最好用堆栈跟踪和你的耳朵填写new issue

    【讨论】:

    • 在哪里可以找到每晚构建的版本?我检查了download.java.net/glassfish/v3/nightly,最新版本是从 2009 年 12 月 14 日开始的。
    • @bshacklett 是的,因为 v3 已经发布。每晚构建现在适用于 v3.1:download.java.net/glassfish/v3.1/nightly
    • @Pascal Thivent - 明白了。出版现在对我有用,所以看起来你是对的。谢谢你。您知道在这种环境中进行开发将如何影响生产 v3 服务器上的部署吗?我猜只要我不使用任何新功能,我应该状态良好?
    • @bshacklett 好。关于在生产服务器上的部署,如果不进行测试就很难说,我不确定你所说的“新功能”是什么意思。无论如何,也许 3.1(带有错误修复)此时会发布。顺便说一句,识别一个好的答案的常用方法是支持它;)
    • @Pascal Thivent - 至于新功能,我猜测 3.1 会支持 EJB3.1。感谢礼仪提示。我认为将答案标记为已接受也一样好。以后我会牢记这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多