2014-01-08 62 views
0

我正在開發一個針對多個應用程序服務器平臺的IceFaces應用程序。目標服務器之一是JBoss AS 7.2,但通過驗證我的實體會導致奇怪的行爲。 在一個實體,我設置以下約束上爲一個整數字段,它結合到輸入字段:使用註釋在JBoss上的最小/最大值限制

@Min(value=1) 
@Max(value=99) 
@Column(name = "ORDER") 
private Integer order; 

通過說明書空值被認爲是有效的。這正是Weblogic 12c發生的情況。但是在JBoss中,當我提交一個空值時,拋出javax.validation.ConstraintViolationException。 此外默認轉換器(如果我讓它)將空值轉換爲零。在Weblogic上,它再次做了預期的事情:忽略null,因此將輸入字段留空。

任何想法是什麼使差異,以及如何克服它?

回答

0

如果有人遇到同樣的問題,這裏有一個解決方案可以幫助: 看起來像Tomcat(JBoss的servlet容器)總是轉換空值,因此空輸入字段值爲零,如果字段綁定到數字實例。但是零顯然小於給定的約束(min 1),所以堅持實體會產生一個異常。

設置以下JVM選項可修復問題: -Dorg.apache.el.parser.COERCE_TO_ZERO=false

相關問題