我知道我可以使用serialVersionUID来控制类的版本.我读到我可以添加或删除字段,类仍然兼容,它只使用默认值.
什么时候必须更改serialVersionUID?
我正在使用NetBeans和Glassfish 4.1.1开发一个webapp.我正在使用JSF和CDI来管理facelets的后台bean.在更改代码中的任何内容后不久,在通过浏览器"成功"部署和运行应用程序后,我总是会遇到此IllegalStateException的内部服务器错误:
org.jboss.weld.exceptions.IllegalStateException: WELD-000227: Bean
identifier index inconsistency detected - the distributed container
probably does not work with identical applications
Run Code Online (Sandbox Code Playgroud)
我可以通过干净,构建和重新部署来摆脱它.但无论如何,NetBeans在每次保存后都会自动重新部署.所以我仍然需要点击清洁和构建,然后重新部署自己总是在任何小改变后,它让我疯了!
那么我可以在glassfish服务器上更改任何设置以避免这种情况,或者我可以告诉NetBeans在自动部署之前清理和构建吗?
它并不总是这样,最近我更新了玻璃鱼,它可能只是在那之后出现,我不记得了.
提前致谢!这花了我很多时间..
解决了
我再次谷歌搜索了几个小时,找到了解决方案:我在glassfish中设置了一个新的系统属性
org.jboss.weld.serialization.beanIdentifierIndexOptimization = false
为了避免出现不一致,如WELD参考文献中所述: