停止tomcat时,使用spring服务获取java.io.NotSerializableException

停止tomcat时,使用spring服务获取java.io.NotSerializableException,第1张

概述我正在使用带有JSF 2的spring 3我用spring bean替换了JSF托管bean,在bean的顶部添加:@Component('mybean') @Scope('session') 在我的bean中,我正在自动装配一个spring服务(使用注释@service声明)好吧,一切都运行良好的服务,但当我试图停止tomcat 6,我得到这个例外与我的春

我正在使用带有JsF 2的spring 3
我用spring bean替换了JsF托管bean,在bean的顶部添加:

@Component("mybean")@Scope("session")

在我的bean中,我正在自动装配一个spring服务(使用注释@service声明)

好吧,一切都运行良好的服务,但当我试图停止tomcat 6,我得到这个例外与我的春季服务

java.io.NotSerializableException

任何想法为什么我得到这个例外,以及如何解决它.

更新:

在使我的服务实现可序列化后,有时我得到以下异常:

java.lang.IllegalStateException: Cannot deserialize beanfactory with ID org.springframework.web.context.WebApplicationContext:/spring_faces: no factory registered for this ID    at org.springframework.beans.factory.support.Defaultlistablebeanfactory$SerializedbeanfactoryReference.readResolve(Defaultlistablebeanfactory.java:972)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)    at java.lang.reflect.Method.invoke(Method.java:597)    at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1061)    at java.io.ObjectinputStream.readOrdinaryObject(ObjectinputStream.java:1762)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1329)    at java.io.ObjectinputStream.defaultReadFIElds(ObjectinputStream.java:1947)    at java.io.ObjectinputStream.defaultReadobject(ObjectinputStream.java:480)    at org.springframework.aop.support.AbstractbeanfactorypointcutAdvisor.readobject(AbstractbeanfactorypointcutAdvisor.java:98)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)    at java.lang.reflect.Method.invoke(Method.java:597)    at java.io.ObjectStreamClass.invokeReadobject(ObjectStreamClass.java:974)    at java.io.ObjectinputStream.readSerialData(ObjectinputStream.java:1849)    at java.io.ObjectinputStream.readOrdinaryObject(ObjectinputStream.java:1753)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1329)    at java.io.ObjectinputStream.readArray(ObjectinputStream.java:1667)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1323)    at java.io.ObjectinputStream.defaultReadFIElds(ObjectinputStream.java:1947)    at java.io.ObjectinputStream.defaultReadobject(ObjectinputStream.java:480)    at org.springframework.aop.framework.AdvisedSupport.readobject(AdvisedSupport.java:550)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)    at java.lang.reflect.Method.invoke(Method.java:597)    at java.io.ObjectStreamClass.invokeReadobject(ObjectStreamClass.java:974)    at java.io.ObjectinputStream.readSerialData(ObjectinputStream.java:1849)    at java.io.ObjectinputStream.readOrdinaryObject(ObjectinputStream.java:1753)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1329)    at java.io.ObjectinputStream.defaultReadFIElds(ObjectinputStream.java:1947)    at java.io.ObjectinputStream.readSerialData(ObjectinputStream.java:1871)    at java.io.ObjectinputStream.readOrdinaryObject(ObjectinputStream.java:1753)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1329)    at java.io.ObjectinputStream.defaultReadFIElds(ObjectinputStream.java:1947)    at java.io.ObjectinputStream.readSerialData(ObjectinputStream.java:1871)    at java.io.ObjectinputStream.readOrdinaryObject(ObjectinputStream.java:1753)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1329)    at java.io.ObjectinputStream.defaultReadFIElds(ObjectinputStream.java:1947)    at java.io.ObjectinputStream.readSerialData(ObjectinputStream.java:1871)    at java.io.ObjectinputStream.readOrdinaryObject(ObjectinputStream.java:1753)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1329)    at java.io.ObjectinputStream.defaultReadFIElds(ObjectinputStream.java:1947)    at java.io.ObjectinputStream.readSerialData(ObjectinputStream.java:1871)    at java.io.ObjectinputStream.readOrdinaryObject(ObjectinputStream.java:1753)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1329)    at java.io.ObjectinputStream.defaultReadFIElds(ObjectinputStream.java:1947)    at java.io.ObjectinputStream.readSerialData(ObjectinputStream.java:1871)    at java.io.ObjectinputStream.readOrdinaryObject(ObjectinputStream.java:1753)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1329)    at java.io.ObjectinputStream.defaultReadFIElds(ObjectinputStream.java:1947)    at java.io.ObjectinputStream.readSerialData(ObjectinputStream.java:1871)    at java.io.ObjectinputStream.readOrdinaryObject(ObjectinputStream.java:1753)    at java.io.ObjectinputStream.readobject0(ObjectinputStream.java:1329)    at java.io.ObjectinputStream.readobject(ObjectinputStream.java:351)    at org.apache.catalina.session.StandardSession.readobject(StandardSession.java:1496)    at org.apache.catalina.session.StandardSession.readobjectData(StandardSession.java:998)    at org.apache.catalina.session.StandardManager.doload(StandardManager.java:394)    at org.apache.catalina.session.StandardManager.load(StandardManager.java:321)    at org.apache.catalina.session.StandardManager.start(StandardManager.java:648)    at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:446)    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4631)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)    at org.apache.catalina.core.StandardService.start(StandardService.java:525)    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)    at java.lang.reflect.Method.invoke(Method.java:597)    at org.apache.catalina.startup.bootstrap.start(bootstrap.java:289)    at org.apache.catalina.startup.bootstrap.main(bootstrap.java:414)

请指教.最佳答案看看错误,看起来tomcat正在尝试序列化整个spring上下文,我想这可能是因为你正在实现Serializable on Service.我想可能你需要这样做,我不太了解JsF,但我对scoped bean的理解让我想到,你可能需要这样的东西

    @Component    @Scope(proxyMode=ScopedProxyMode.TARGET_CLASS,value="session")    public class MyBean implements Serializable    {       //no need to implement serializable on service       @autowired(required=true)       private MyService service;    }
总结

以上是内存溢出为你收集整理的停止tomcat时,使用spring服务获取java.io.NotSerializableException全部内容,希望文章能够帮你解决停止tomcat时,使用spring服务获取java.io.NotSerializableException所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1265179.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存