Иерархия проверенных исключений в WebServices с использованием подключаемого модуля JAX-WS Maven (wsimport)

I ' m работаем над проектом, в котором мы хотим использовать отмеченные исключения для уведомления пользователя (например) о неправильном вводе или предпринятом неправильном действии. Такие исключения должны иметь иерархию, такую ​​как:

public abstract class BusinessException extends java.lang.Exception {...}
public class InvalidInputException extends BusinessException {...}
public class InvalidActionException extends BusinessException {...}

Мы генерируем Java-код из WSDL / XSD (подход, основанный на контракте), используя Maven, jaxws-maven-plugin , цель wsimport . . 12194] Я попытался пройти это ( http://www.ibm.com/developerworks/xml/library/ws-tip-jaxrpc.html ) руководство (оно предназначено для jax-rpc, но, похоже, работает и для jax-ws). Я написал



    
    
        
    

    
        
            
            
            
        
    

    
        


        
            
                
            
            
                
            
            
                
            
        
    

  ...

с типами, определенными в ows: namespace


    
        
    



    
        
            
                
            
        
    



    
        
            
                
            
        
    



Когда я запускаю mvn clean package , я получаю следующее (геттеры, сеттеры, ctors и аннотации удалены):

public interface TestWebService {
    @WebMethod
    public void throwException() throws ExceptionMessage;
}

public class ExceptionMessage extends Exception {
    private InvalidInputException faultInfo;
    (...)
}

public abstract class BusinessException implements Serializable {
    protected int code;
    (...)
}  

public class InvalidActionException extends BusinessException implements Serializable {
    protected String actionName;
    (...)
}

public class InvalidInputException extends BusinessException implements Serializable {
    protected String validationMessage;
    (...)
}

Это не то я хотел, потому что есть одно исключение, и оно может содержать разные данные faultInto . Есть ли способ создать иерархию исключений, как указано выше, исключительно в XSD / WSDL? Поскольку класс ExceptionMessage генерируется непосредственно из тега , мне не удалось найти способ создать там родительский / дочерний элемент.

6
задан Ondrej Skalicka 4 February 2011 в 11:08
поделиться