3
我在尝试验证传入的SOAP消息到我在JBoss AS(v.5.1.0)上运行的服务时遇到了一些困难。Web服务请求忽略基本的WSDL XML元素限制
在我的代码,我已经明确地设定为所需的一些领域,如:
public class MyClass {
@XmlElement(required=true, nillable=false)
private List<myOtherObjects> myList;
}
这个要求还体现在WSDL(注意缺少的minOccurs的=“0”):
<xs:element maxOccurs="unbounded" name="myList" type="tns:myOtherObjects" />
但是,当我做一个测试soap消息,其myList设置为空或空时,这些限制被完全忽略,迫使我在服务的应用程序逻辑内手动验证。
我在互联网上做了一些搜索,发现在WebLogic上,默认情况下,验证似乎没有启用,尽管它可以通过修改weblogic-webservices.xml文件来启用。 (http://forums.oracle.com/forums/thread.jspa?threadID=783972&tstart=115)
我想知道是否有类似的东西,我必须与JBoss AS在soap消息到达服务之前启用自动验证。任何帮助将不胜感激。
奥利弗
值得指出的是'required'和'nillable'不使用的验证程序。您需要告诉JBoss WebServices根据架构进行验证,默认情况下不会这样做。不过,我不知道该怎么做。 – skaffman 2010-03-22 22:37:11
嗨,谢谢你的回复!我搜索了更多,似乎我可以使用@SchemaValidation来完成我想要做的事情,但我仍然在确定它将如何工作......如果任何人都可以给我一些这方面的指示,大。 – Oliver 2010-03-23 14:27:14
好的。我通过向服务类添加注释@SchemaValidation(enabled = true)来验证工作。它看起来是这样的: @WebService @SchemaValidation(启用=真) 公共类MyServices { @WebMethod(动作= “echoAction”) 公共字符串回声(@WebParam(NAME = “字”)串字)抛出 异常{ – Oliver 2010-03-23 18:09:47