Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Надо подправить wsdl файл


Автор: Kizja 3.4.2010, 14:50
Привет, пробую сгенерировать на основании wsdl файла java классы и наоборот...

Есть примерно такой кусок в wsdl файле:

Код

    <message name="testException">
        <part name="faultInfo" type="ns:TestFault"/>
    </message>
    <portType name="TestService">
        <operation name="blah">
           <fault name="TestException" message="tns:testException"/>
        </operation>
    </portType>


и есть xsd схема, где этот элемент прописан:

Код

    <xs:complexType name="TestFault">
        <xs:sequence>
            <xs:element name="message" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>


в результате генерации получается такое:

Код

public class TestException extends Exception {
    
    private TestFault faultInfo;

    public TestException() {
        super();
    }
    
    public TestException(String message) {
        super(message);
    }
    
    public TestException(String message, Throwable cause) {
        super(message, cause);
    }

    public TestException(String message, TestFault faultInfo) {
        super(message);
        this.faultInfo = faultInfo;
    }

    public TestException(String message, TestFault faultInfo, Throwable cause) {
        super(message, cause);
        this.faultInfo = faultInfo;
    }

    public TestFault getFaultInfo() {
        return this.faultInfo;
    }
}


Код

public class TestFault {
    @XmlElement(namespace = "http://xsd", required = true)
    protected String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String value) {
        this.message = value;
    }
}


Кто-нибудь знает как изменить wsdl/xsd так, чтобы он генерировал в конструкторах так же инициализацию поля faultInfo, т.е. примерно так:

Код

    public TestException() {
        this("Blah");
    }
    
    public TestException(String message) {
        super(message);
        faultInfo = new TestFault();
        faultInfo.setMessage(message);
    }


Искал, искал, но пока так и не нашёл как так сделать, хотел попробовать тогда в обратную сторону, чтобы по такому коду с конструктором мне бы сгенерировал верный wsdl, но чего-то в обратную сторону пока не получилось сгенерировать - может у кого-то есть HelloWorld на эту тему ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)