2010-03-03 3 views
0

저는 AXIS2 전문가가 아니므로 Eclipse를 사용하여 상향식 웹 서비스를 생성하고 있습니다. 두 가지 방법을 웹 서비스로 게시하고 있습니다. 이러한 메소드는 예외로 끝나는 webservice를 호출 할 때 SOAPFault를 생성하기 위해 java.lang.Exception을 throw하도록 정의됩니다.Axis2 WebService와 WSDL의 여러 ExceptionFault 요소

public class sample { 

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


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

} 

웹 서비스 게시 후 모든 것이 정상적으로 작동합니다. 그러나 AXIS2에서 생성 된 WSDL은 결함으로 보입니다. 두 가지 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을 직접 던져, 또는 예외를 던지는 메소드를 선언하는

마틴

답변

1

을 시도하면이 발생하지 않습니다 메소드 서명에서 "예외를 throw"제거하는 경우 Exception 요소가있는 WSDL.

CustomException이 RuntimeException을 확장하면 (즉, 확인되지 않은 예외 임) 사용자는 괜찮을 것입니다. RuntimeException은 Axis에 의해 SOAPFault로 올바르게 변환됩니다.