
我正在使用带有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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)