【发布时间】:2016-03-19 17:29:49
【问题描述】:
我正在使用 NetBeans 和 Glassfish 4.1.1 开发一个 web 应用程序。我正在使用 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
我可以通过清理构建和重新部署来摆脱它。但无论如何,NetBeans 在每次保存后都会自动重新部署。所以我仍然必须点击 clean and build 然后重新部署自己
那么我可以在 glassfish 服务器上更改任何设置来避免这种情况,或者我可以告诉 NetBeans 在自动部署之前清理和构建吗?
不是一直这样,最近更新 glassfish 可能是在那之后才出现的,具体记不太清了。
提前致谢!这花了我很多时间..
已解决
我又用谷歌搜索了几个小时,找到了解决方案:我在 glassfish 中设置了一个新的系统属性
org.jboss.weld.serialization.beanIdentifierIndexOptimization = false
为了避免出现不一致,如此处 WELD 参考中所述:
【问题讨论】:
-
你是如何设置这个属性的?我正在努力解决同样的问题。
-
在 glassfish (localhost:4848) 的管理控制台中转到“服务器(管理服务器)”-->“属性”-->“系统属性”并添加一个新属性“org.jboss” .weld.serialization.beanIdentifierIndexOptimization”,值为“false”
-
它也适用于 Websphere 应用程序服务器 9。谢谢。
标签: jakarta-ee cdi weld