我正在尝试使用部署在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不幸的灵魂谁没有得到任何答案。如果有人能指出我正确的方向会很好,因为此刻我被卡住了。
答案 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标记,但上述方式 - 按预期工作。