java.io.NotSerializableException:org.jboss.weld.bean.ManagedBean [英] java.io.NotSerializableException: org.jboss.weld.bean.ManagedBean

查看:207
本文介绍了java.io.NotSerializableException:org.jboss.weld.bean.ManagedBean的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出在GlassFish服务器4.0上运行的JSF 2.2.6中的以下CDI bean。

Given the following CDI bean in JSF 2.2.6 running on GlassFish server 4.0.

import javax.inject.Named;
import javax.faces.view.ViewScoped;
import java.io.Serializable;
import org.primefaces.model.LazyDataModel;

@ViewScoped
@Named("myBean")
public class MyBean extends LazyDataModel<T> implements Serializable
{
    @Inject   //Injecting an EJB.
    private MyLocalEJB service;

    private static final long serialVersionUID = 1L;
}

这会导致在取消部署应用程序时抛出以下异常。

This causes the following exception to be thrown on undeployment of the application.

java.io.NotSerializableException: org.jboss.weld.bean.ManagedBean
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1518)
    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:601)
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1519)
    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:601)
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:2195)
    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:601)
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at org.apache.catalina.session.StandardManager.writeSessions(StandardManager.java:761)
    at com.sun.enterprise.web.WebModule.saveSessions(WebModule.java:1730)
    at com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:2430)
    at com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:2386)
    at com.sun.enterprise.web.WebApplication.stop(WebApplication.java:190)
    at org.glassfish.internal.data.EngineRef.stop(EngineRef.java:161)
    at org.glassfish.internal.data.ModuleInfo.stop(ModuleInfo.java:324)
    at org.glassfish.internal.data.ApplicationInfo.stop(ApplicationInfo.java:380)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.unload(ApplicationLifecycle.java:1056)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.undeploy(ApplicationLifecycle.java:1096)
    at org.glassfish.deployment.admin.UndeployCommand.execute(UndeployCommand.java:400)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:537)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
    at org.glassfish.deployment.admin.DeployCommand.handleRedeploy(DeployCommand.java:724)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:365)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:537)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
    at org.glassfish.deployment.admin.ReDeployCommand.execute(ReDeployCommand.java:131)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
    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:522)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
    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.StaticHttpHandler.service(StaticHttpHandler.java:297)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:722)

在JSF 2.2中,有一个 适用于CDI bean的ViewScoped 。那么,为什么会抛出这个异常?

In JSF 2.2, there is a ViewScoped for CDI beans. So, why does this throw this exception?

它也是Java EE 7,尽管IDE(NetBeans 8.0)发出警告,

Also it is Java EE 7 though the IDE (NetBeans 8.0) issues a warning,


不满意的依赖:没有bean匹配注入点

Unsatisfied dependency: no bean matches the injection point

在下面的语句中bean:

on the following statement in the bean:

private MyLocalEJB service;

在Java EE 7中,不需要创建 bean .xml 文件。因此,不应发出此警告。是否有必要在Java EE 7中创建 beans.xml

In Java EE 7, there should not be a need to create the beans.xml file. So, this warning should not be issued. Is it necessary to create beans.xml in Java EE 7 ?

推荐答案


java.io.NotSerializableException:org.jboss.weld.bean.ManagedBean

java.io.NotSerializableException: org.jboss.weld.bean.ManagedBean

这是一个bug在莫哈拉。据报道,它是 issue 3191 。它已在Mojarra 2.2.7中得到修复,预计将于 2014年7月3日发布。如果你现在需要修复它,请抓住2.2.7快照。有关下载详细信息,请参阅如何下载Mojarra JSF每晚构建的答案。

This is a bug in Mojarra. It has been reported as issue 3191. It's fixed in Mojarra 2.2.7 whose release is expected 3 july 2014. If you need to get it fixed right now, grab the 2.2.7 snapshot. See for download details the answer on How to download Mojarra JSF nightly builds.


它也是Java EE 7,尽管IDE(NetBeans 8.0)发出警告,

Also it is Java EE 7 though the IDE (NetBeans 8.0) issues a warning,


不满意的依赖:没有bean匹配注入点

Unsatisfied dependency: no bean matches the injection point


抱歉,Netbeans超出了我的范围。如果您已经使用了最新的Netbeans版本,并且您确信Netbeans是错误的(即除了特定的例外情况之外的所有内容都有效),那么您将向他们报告问题。

Sorry, Netbeans is beyond me. If you're already using the latest Netbeans version and you are confident that Netbeans is Wrong (i.e. everything just works apart from the particular exception), then you'd report an issue to them.


在Java EE 7中,不需要创建beans.xml文件。因此,不应发出此警告。

In Java EE 7, there should not be a need to create the beans.xml file. So, this warning should not be issued.

你是完全正确的。另请参阅Reza Rahman的这篇博客: Java EE 7中的默认CDI启用

You're completely right. See also this blog of Reza Rahman: Default CDI enablement in Java EE 7.

这篇关于java.io.NotSerializableException:org.jboss.weld.bean.ManagedBean的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆