Axis2 WebService и несколько элементов ExceptionFault в WSDL - PullRequest
0 голосов
/ 03 марта 2010

Я не эксперт AXIS2, поэтому я использую Eclipse для создания восходящего веб-сервиса. Я публикую 2 метода в качестве веб-сервисов. Эти методы определены для выброса java.lang.Exception для создания SOAPFault при вызове веб-службы, которая заканчивается исключением.

public class sample {

 public String someMethod() throws Exception {
  throw new CustomException("Error: blabla");
 }


 public String someOtherMethod() throws Exception {
  throw new CustomException("Error: blabla");
 }

}

После публикации веб-сервиса все работает нормально. Но WSDL, сгенерированный AXIS2, кажется дефектом. Существует 2 элемента ExceptionFault (по одному для каждого метода?), Что является проблемой для некоторых клиентов веб-служб.

<xs:element name="ExceptionFault">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="Exception" nillable="true" type="xs:anyType"/>
      </xs:sequence>
   </xs:complexType>
</xs:element>

В чем проблема? Что-то не так с моей реализацией? Я также пытался объявлять методы для прямого выброса CustomException или исключения, но безуспешно ...

Martin

1 Ответ

1 голос
/ 03 марта 2010

Если вы удалите «throws Exception» из сигнатур метода, он не сгенерирует WSDL с элементом Exception.

Если ваше CustomException расширяет RuntimeException (т. Е. Это непроверенное исключение), то у вас все будет хорошо. Исключение RuntimeException будет надлежащим образом превращено в SOAPFault.

...