Обязательность ввода входного параметра в веб-сервисе (с использованием AXIS2) - PullRequest
1 голос
/ 08 ноября 2010

Я использую AXIS2 Framework для создания веб-службы и доступа к ней.С Axis2 у меня все нормально.Но у меня есть требование, чтобы при доступе к этому веб-сайту через soapui тестировать веб-сервис;в requestrt.xml он должен показать, какие необязательные параметры и обязательные параметры.

Но в данный момент он показывает, как показано ниже:

                    <soapenv:Body>
                       <xsd:insertsStudent>
                         <!--Optional:-->
                               <xsd:studentId>?</xsd:employeeId>

                         <!--Optional:-->
                              <xsd:emailAddress>?</xsd:emailAddress>
                          </xsd:insertsStudent>
                    </soapenv:Body>         

В приведенном выше примере запроса мыла я хочу, чтобы studentId был обязательным значениемтогда как я могу отобразить его как обязательный в запросе мыла (как показано ниже)

                    <soapenv:Body>
                       <xsd:insertsStudent>
                         <!--compulsory:-->
                               <xsd:studentId>?</xsd:employeeId>

                         <!--Optional:-->
                              <xsd:emailAddress>?</xsd:emailAddress>
                          </xsd:insertsStudent>
                    </soapenv:Body>      

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

На самом деле я просто занимаюсь программированием.Я не создаю файл wsdl (Axis2 автоматически отображает файл wsdl в браузере, когда вы запрашиваете веб-службу, например http://localhost:8080/services/testwebservice?wsdl).

. Итак, вы можете сказать мне, как мы можем изменить поведение при создании файла wsdl, используя axis2.

1 голос
/ 09 ноября 2010

В примерах запросов / ответов, созданных soapUI, вы получаете комментарий <!--Optional:--> над каждым полем, которое объявлено необязательным в соответствующем определении типов XSD вашего файла WSDL. Если элемент является обязательным, soapUI ничего не отображает над ним.

Ваше требование очень странное. Вы должны сделать элемент обязательным в вашем WSDL, а не заставлять soapUI отображать комментарий <!--compulsory:--> над элементом, который явно является необязательным.

Вышеуказанное означает, что у вас есть что-то похожее в WSDL:

<xsd:element name="insertsStudent">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="studentId" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="emailAddress" type="xsd:string" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

minOccurs="0" maxOccurs="1" означает необязательный;

minOccurs="1" maxOccurs="1" означает обязательный (обязательный).

Если вы измените minOccurs на 1 для studentId, вы получите обязательное поле, и soapUI отобразит это:

<soapenv:Body>
  <xsd:insertsStudent>
    <xsd:studentId>?</xsd:employeeId>
    <!--Optional:-->
    <xsd:emailAddress>?</xsd:emailAddress>
  </xsd:insertsStudent>
</soapenv:Body>    
...