在Weblogic中的JAX-WS端点上使用@SchemaValidation批注时出现异常

时间:2010-10-07 13:21:23

标签: java web-services java-ee weblogic jax-ws

我正在尝试使用部署在Weblogic 10.3.3上的JAX-WS Web服务进行模式验证。

根据文档,这应该像添加注释一样简单 “@SchemaValidation”到端点类。但是,当我尝试这样做时,在部署应用程序时抛出以下异常:

Caused by: javax.xml.ws.WebServiceException: 
Annotation@com.sun.xml.internal.ws.developer.SchemaValidation 
(handler=class com.sun.xml.internal.ws.server.DraconianValidationErrorHandler)
is not recognizable, 
atleast one constructor of class com.sun.xml.internal.ws.developer.SchemaValidationFeature 
should be marked with @FeatureConstructor
at com.sun.xml.ws.binding.WebServiceFeatureList.getWebServiceFeatureBean(WebServiceFeatureList.java:169)
at com.sun.xml.ws.binding.WebServiceFeatureList.parseAnnotations(WebServiceFeatureList.java:141)

错误消息抱怨“com.sun.xml.internal.ws.developer.SchemaValidationFeature”没有使用@FeatureConstructor注释的构造函数。当我看到那个班级时,肯定会有一个:

  @com.sun.xml.internal.ws.api.FeatureConstructor(value={"handler"})
  public SchemaValidationFeature(java.lang.Class arg0);

我已经在谷歌上搜索了但是找不到任何提及这个超过this不幸的灵魂谁没有得到任何答案。如果有人能指出我正确的方向会很好,因为此刻我被卡住了。

2 个答案:

答案 0 :(得分:1)

SchemaValidation注释正在运行,但请确保您导入正确的类。

com.sun.xml.ws.developer.SchemaValidation

而不是

com.sun.xml.internal.ws.developer.SchemaValidation

默认情况下,第二个类与JDK捆绑在一起。第一个(由weblogic使用)来自glassfish.jaxws.rt_XXX.jar,因此您可能需要明确地将此jar添加到类路径中。

答案 1 :(得分:0)

我最近遇到了同样的问题。

为了解决这个问题,我添加了标签

<validation-request>true</validation-request>

到weblogic-webservices.xml文件

这在app-server上启用了SOAP请求验证。

XML Structure of weblogic-webservices.xml

注意:我无法成功使用@SchemaValidation标记,但上述方式 - 按预期工作。