У нас есть несколько веб-сервисов на базе MS, которые в интрасети видны как ссылки .asmx? WSDL.Нет проблем, когда эти веб-сервисы используются с последней версией Visual Studio.Все бизнес-объекты имеют смысл.Я подозреваю, что Microsoft использует какое-то секретное рукопожатие при использовании ServiceReference и полагается на некоторые собственные знания о том, какой фактический тип CSharp находится за элементом, типизированным как <s:schema>
Но нашему отделу необходимо использовать все, что связано с Java.Мой выбор - CXF (v.2.4.2), и он хорошо работает с Eclipse, SOAP-UI, Tomcat.И есть проблемы с совместимостью.Во-первых, каждый wsdl должен быть изменен вручную.Все <s:schema> <s:any> are replaced with single <s:any>
.После этого CXF может завершить создание клиентской Java.Но объекты Java не являются бизнес-объектами POJO.Это некие DOM-элементы, например
<code>/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <any/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
*
* * * / @XmlAccessorType (XmlAccessType.FIELD) @XmlType (name = "", propOrder = {"any"}) открытый статический класс GetDepartmentsResult {@XmlAnyElement (lax = true) защищенный объект any;/ ** * Получает значение свойства any.* * @return * возможным объектом является * {@link Object} * * / public Object getAny () {return any;} / ** * Устанавливает значение свойства any.* * @param value * допустимым объектом является * {@link Object} * * / public void setAny (Object value) {this.any = value;}}
Когда код тестируется во время выполнения, все работает нормально.Но каждый объект должен рассматриваться как элемент DOM.Я уверен, что где-то допустил ошибку, удалив <s:schema>
или когда использовал wsld2java, поэтому он потерял семантику.Но что мне делать именно в CXF, чтобы классы Java выглядели так же чисто, как классы CSharp?
Спасибо.
Редактировать: получил некоторые подсказки по http://msdn.microsoft.com/en-us/magazine/cc188755.aspx, яНадеюсь, эта ссылка будет действительна в более позднее время, когда кто-то ищет тот же ответ.Другой способ найти статью:
Журнал MSDN> Выпуски> 2003> Апрель> Файлы XML: веб-службы и наборы данных