我正在解决一个奇怪的问题:当我在localhost JBoss实例中对POJO或Seam组件进行更改时,重新启动它并加载页面,可以看到更改。但是,在我们的服务器上运行相同版本的JBoss,当我停止实例,删除WAR文件,上传最新版本,然后重新启动JBoss时,它不会显示一些新的服务器端功能。
具体来说,更改是一个实现javax.faces.validator.Validator类的POJO类。然后在XHTML Facelet中使用它,如下所示:
<h:inputText value="#{outsideaccount.accountOrganizationEmail}" maxlength="50"
id="txtOrganizationSupportEmail"
validatorMessage="Organization Support Email is not valid. It must be in the pattern 'some_id@some_domain.com'.">
<f:validator validatorId="AnyEmailValidator"/>
</h:inputText>
我可以正确使用我的localhost JBoss上的电子邮件验证程序;在开发服务器上,它在同一页面上使用相同的电子邮件抛出验证错误。很奇怪。 JBoss是否在某处缓存了类文件?如何清除JBoss开发服务器缓存中的所有内容?
我在本地使用Win XP Pro;开发服务器在JVM版本1.5.0_16-b02上使用JBoss 4.2.3.GA,使用Unix SunOS 5.10。感谢。
答案 0 :(得分:7)
JBoss有工作和tmp目录,您可以删除它们以确保一切都干净。事情可以在那里缓存,因此如果遇到问题,可以在部署时清除它们。还有一个setting强制在JBoss端自动发生。如果您的问题是缓存清除问题,这将有助于解决它。
另一种可能性是,您在JBoss上部署了两个战争副本,但在生产中部署时会出现一些错误。