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