`

Java EE 7 Hands-on Lab,CDI deployment failure:WELD-000072,解决办法

阅读更多
运行环境:
  • NetBeans8.0.2
  • GlassFish4.1
  • 《Java EE 7 Essentials》,最后一章,端到端应用程序的示例:Java EE 7 Hands-on Lab,movieplex7

问题描述:
  • 在运行《Java EE 7 Essentials》里,最后一章,端到端应用程序的示例时,会报错,见下面【第一个错误信息】。
  • 引起报错的原因是,Booking类没有实现序列化,需要加上implements Serializabl,见【代码】。 但加上之后,再运行项目,却报另外一个错,见【第二个错误信息】。
  • 解决办法:
  • 添加 implements Serializable 之后,重启 GlassFish Server,项目 Clean and Build, 再运行项目 或者直接停止 GlassFish,项目 Clean and Build, 运行项目(会自动启动GlassFish)
  • 总结:
  • GlassFish Server 没能正确加载正确的版本,需要重启服务。GlassFish号称基于OSGI创建,支持热部署,我改了一个普通的EJB Bean,就出现不能正确加载的现象。看来我对GlassFish以及背后的所谓的支持热部署的OSGI了解得不够,继续努力!
  • 共同学习:
  • 如果你看到了这里,同时你也在用Java EE 7的话,那么这个群(187515899)就是一个好去处。
  • 《Java EE 7 Essentials》在群共享里可以得到。
  • 欢迎点击后面的链接加入群【JavaEE GlassFish NetBeans OSGI】一起学习讨论:http://jq.qq.com/?_wv=1027&k=ZCvkA9
  • 作者最新的Java EE 7 Hands-on Lab代码,可以从这里得到https://github.com/javaee-samples/javaee7-hol,这里的代码已经修复了本文提到的错误,同时还有电子版的详细文档。


【代码】
@Named
@FlowScoped("booking")
//下面添加的代码是:implements Serializable
public class Booking implements Serializable {
//some code
}


【第一个报错信息】
Severe: Exception during lifecycle processing org.glassfish.deployment.common.DeploymentException: CDI deployment failure:WELD-000072: Bean declaring a passivating scope must be passivation capable. Bean: Managed Bean [class org.glassfish.movieplex7.booking.Booking] with qualifiers [@Default @Any @Named] at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:234) at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131) at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:496) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:356) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534) at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565) at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:356) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464) at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722) at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534) at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224) at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189) at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) at java.lang.Thread.run(Thread.java:745) Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-000072: Bean declaring a passivating scope must be passivation capable. Bean: Managed Bean [class org.glassfish.movieplex7.booking.Booking] with qualifiers [@Default @Any @Named] at org.jboss.weld.bean.ManagedBean.checkType(ManagedBean.java:203) at org.jboss.weld.bean.AbstractBean.initializeAfterBeanDiscovery(AbstractBean.java:105) at org.jboss.weld.bean.ManagedBean.initializeAfterBeanDiscovery(ManagedBean.java:113) at org.jboss.weld.bootstrap.BeanDeployer.doAfterBeanDiscovery(BeanDeployer.java:343) at org.jboss.weld.bootstrap.BeanDeployment.afterBeanDiscovery(BeanDeployment.java:277) at org.jboss.weld.bootstrap.WeldStartup.deployBeans(WeldStartup.java:408) at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:83) at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:222) ... 41 more ...

【第二个报错信息】
Severe:   WebModule[/movieplex7]StandardWrapper.Throwable
java.lang.IllegalStateException: Error when configuring to use the EJB interceptor binding API. JAX-RS EJB integration can not be supported.
at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider.registerEjbInterceptor(EjbComponentProvider.java:223)
at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider.bind(EjbComponentProvider.java:251)
at org.glassfish.jersey.server.ApplicationHandler.bindWithComponentProvider(ApplicationHandler.java:903)
at org.glassfish.jersey.server.ApplicationHandler.bindProvidersAndResources(ApplicationHandler.java:832)
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:435)
at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:163)
at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:323)
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289)
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:320)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:310)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1583)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1382)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5704)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5946)
at com.sun.enterprise.web.WebModule.start(WebModule.java:691)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1041)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:1024)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2286)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1932)
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:139)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291)
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:352)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:500)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider$3.run(EjbComponentProvider.java:216)
at java.security.AccessController.doPrivileged(Native Method)
at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider.registerEjbInterceptor(EjbComponentProvider.java:210)
... 70 more
Caused by: java.lang.NullPointerException
at com.sun.ejb.containers.InternalInterceptorBindingImpl.registerInterceptor(InternalInterceptorBindingImpl.java:97)
... 77 more
0
0
分享到:
评论

相关推荐

    java_ee_sdk-8u1.zip

    Java EE(Java Platform, Enterprise Edition)是Oracle公司提供的一个企业级应用开发平台,它扩展了Java SE(标准版)的功能,专为构建分布式、多层的企业级应用程序而设计。Java EE SDK包含了运行和开发Java EE...

    java_ee_sdk-8u1-web.zip

    Java EE SDK 8u1-web.zip 是一个包含Java企业版(Java Enterprise Edition,简称Java EE)开发工具的压缩包,特别地,它包含了Java Development Kit(JDK)的一个版本。JDK是Java程序开发的核心组件,提供了编译、...

    Beginning Java EE 7.pdf

    ### Java EE 7 关键知识点概述 #### 一、Java EE 7 平台概览 - **定义与目标**:Java Enterprise Edition (Java EE) 7 是一个为开发企业级应用提供支持的标准平台。其目标是简化企业应用的开发过程,并确保应用程序...

    Apress.Begining EJB3 Java EE 7 Edition.2013

    ### 企业级应用开发:《Apress.Begining EJB3 Java EE 7 Edition.2013》核心知识点解析 #### 一、书籍概述 **标题与描述:**《Apress.Begining EJB3 Java EE 7 Edition.2013》是一本面向初学者介绍如何使用EJB3...

    appengine-java-vm-cdi-numberguess:CDI 焊接编号猜测样本的改编

    此示例演示了如何在 App Engine 托管的 VM 中的 Servlet 容器中使用 Weld。 这是来自的改编 使用 Google App Engine 托管的 VM 运行 mvn appengine:gcloud_app_run 现在您可以在查看应用程序。 Jetty 特定的配置...

    wicket-quickstart-cdi-async:在同步模式下测试 CDI,使用 Websocket 通知

    wicket-quickstart-cdi-async 用于在同步/异步模式下测试 CDI 的 Wicket 快速入门,带有 Websocket 通知 旨在部署在 [WildFly] ( ) 上 Wicket CDI 1.1 的解决方法 运行 web 应用程序: mvn install & mvn wildfly...

    java_ee_sdk-8

    Java EE SDK 8是Java企业版的一个重要版本,它包含了开发和运行Java EE应用程序所需的全部组件。这个SDK,标识为"java_ee_sdk-8",特别提到了JDK 1.8,这是Oracle公司在发布时的最新Java Development Kit版本。JDK ...

    jboss-978-1-7821-6018-2:用于 Java 平台的 JBoss Weld CDI

    JBoss Weld CDI是Java平台上的一个核心组件,它实现了Java企业版(Java EE)的 Contexts and Dependency Injection (CDI) 规范。CDI是Java EE中的一个关键部分,它提供了一种管理和注入依赖关系的方式,使得开发者...

    jetty-maven-cdi-demo:有关如何一起设置和使用resteasy,swagger,weld,jsr-303和jetty的演示应用程序

    Jetty-Maven-CDI演示 这个小型演示介绍了如何配置项目以获取以下功能: 通过焊接的依赖注入 自动安心的资源扫描和通过焊缝的依赖注入 Resteasy资源中的JSR-303验证 Swagger JAX-RS扫描 Swagger在端点上提供其余文档...

    jetty-openwebbeans-cdi-demo:使用apache openwebbeans作为CDI实现在码头上运行的Web应用程序

    【标题】:“jetty-openwebbeans-cdi-demo:使用Apache OpenWebBeans作为CDI实现在Jetty上运行的Web应用程序” 【描述】:“Jetty的简单CDI 2.0项目,提供了源代码以供参考” 这个项目展示了如何在Jetty服务器上...

    java-ee-job-2-master.zip

    Java EE(Enterprise Edition)是Java平台上用于构建企业级应用程序的框架。这个名为"java-ee-job-2-master.zip"的压缩包很可能包含了与Java EE相关的学习资料、项目源码和教程,非常适合Java初学者和进阶者提升技能...

    Beginning JavaEE 7

    ### Java EE 7 入门知识点详述 #### 一、Java EE 7 概览 根据提供的内容,“Beginning JavaEE 7”是一本旨在帮助读者掌握Java EE 7技术栈的基础教程。Java EE(Java Platform, Enterprise Edition)是Sun ...

    cdi jsf java ee 6 weld

    在IT行业中,CDI(Contexts and Dependency Injection)和JSF(JavaServer Faces)是Java EE 6框架中的核心组件,而Weld是CDI的一个实现。这些技术为开发高效、可维护的Web应用程序提供了强大的支持。让我们深入探讨...

    java--ee-simple-case-master.zip

    Java EE(企业版Java,以前称为Java 2 Platform, Enterprise Edition或J2EE)是Java平台上用于构建和部署分布式企业级应用程序的框架。这个“java--ee-simple-case-master.zip”压缩包显然包含了与Java EE相关的学习...

    JavaEE6Tutorial I

    ### Java EE 6 教程知识点详解 #### 一、Java EE 6 概述 - **定义**:Java Platform, Enterprise Edition (Java EE) 是一个标准的企业级应用开发平台,由 Oracle 公司维护。Java EE 6 版本是在 2009 年发布的,它...

    JAVA EE API-1.5&1.6.

    Java EE(Java Platform, Enterprise Edition)是Java平台上用于构建企业级应用的框架,它提供了丰富的API和服务,使得开发者能够创建可扩展、安全且高效的分布式应用程序。这个压缩包包含的是Java EE 1.5和1.6两个...

    Java-EE-8-Application-Development:Packt发布的Java-EE-8-Application-Development

    Java EE 8应用程序开发 这是发布的的代码存储库。 它包含从头到尾完成本书所必需的所有支持项目文件。 关于这本书 Java EE是企业Java标准。 编写符合Java EE规范的应用程序不会将开发人员与特定的供应商联系在一起。...

    Apress.Java.EE.7.Recipes.Jun.2013

    ### Java EE 7 Recipes知识点概览 #### 一、引言 Java平台是全球最广泛使用的应用程序开发平台之一。由于其强大的灵活性与适应性,Java平台不仅被用于桌面或移动应用开发,还广泛应用于Web应用乃至硬件操作系统。这...

Global site tag (gtag.js) - Google Analytics