2011-12-19 32 views
3

我試着露出下面的方法作爲Web服務
public void validate(Foo foo) throws javax.validation.ConstraintViolationException;JAXB - 地圖Java接口在Web服務上下文的第三方庫實現

問題是ConstraintViolationException嵌入的javax.validation.ConstraintViolation一個Set這是一個接口。我使用hibernate-validator作爲javax.validation API實現。

因爲JAXB無法處理接口。我被困在映射org.hibernate.validator.engine.ConstraintViolationImplConstraintViolation在運行時。

很明顯,我可以改變的唯一代碼就是我的Web服務。

在這種情況下,我如何定義我想用於所有接口的實現集?

謝謝

回答

1

你在做什麼是不好的做法。

您不應該爲此返回或拋出任何Java特定對象。

您應該只將可以「翻譯」的接口暴露給任何平臺。

+1

+1 - 在這種情況下,最好拋出一個JAX-WS友好異常,試圖映射ConstraintValidation的Hibernate實現。 – 2012-01-06 18:46:19