2015-02-18 4 views
0

Я пытаюсь сделать параметр веб-метода обязательным. Я использую JAXB2.2, поэтому я могу использовать аннотацию XmlElement для параметров. Проблема в том, что в сгенерированном wsdl я все еще могу иметь minOccurs = 0.JAXB-WS: XmlElement и WebParam

@WebMethod(operationName = "retrieve") 
@WebResult(name = "response") 
public RetrieveWrapper retrieve(@WebParam(name = "name") @XmlElement(nillable=false, required=true) String name) { 

И в сгенерированном WSDL у меня есть это:

<xs:complexType name="retrieve"> 
    <xs:sequence> 
     <xs:element name="name" type="ns1:String" minOccurs="0"/> 
    </xs:sequence> 
</xs:complexType> 

Любые консультации, пожалуйста? Что мне не хватает?

ответ

0

«Имя» в вашем complexType «retrieve» не является обязательным. У вас, вероятно, есть класс, соответствующий «retrieve» с полем «name», на котором вы не определили «required = true». Но это не то, что вы хотите.

Я думаю, что ваш wsdl правильный для того, что вы хотите, проверьте свой wsdl, который у вас должен быть, и другой элемент «name», который соответствует вашему webparam и требуется (нет «minoccurs»).

+0

Здравствуйте, спасибо за совет, я попробовал его и до сих пор не получили результата я ожидал: '@WebMethod @WebResult (имя =«ответ») общественного RetrieveWrapper извлечения (@WebParam @XmlElement (nillable = false, required = true) String name) 'и генерировать wsdl id:' '. Я хочу упомянуть, что я прокомментировал все остальное из класса. – Maria

Смежные вопросы