Привет, пробую сгенерировать на основании 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 на эту тему ? |