2011-12-19 30 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