Я пытаюсь использовать некоторые веб-сервисы .NET, используя JAX-WS. Я сгенерировал классы Java с помощью инструмента wsimport. Однако, когда я пытаюсь использовать эти (собственные, не общедоступные) веб-сервисы в Java, я замечаю, что большинство методов и свойств, предоставленных поставщиком в его примерах C #, недоступны в сгенерированных классах (несмотря на то, что они не сталкивались с ошибками). при создании классов Java из файла WSDL). Подключение к веб-сервисам также работает в основном.
Когда я пытался сгенерировать класс C # с помощью wsdl.exe из .NET SDK, все методы были сгенерированы правильно.
Каков наилучший способ использования веб-служб .NET, чтобы в Java были доступны все функции, и почему wsimport генерирует только небольшую часть всех методов и свойств, описанных в файле WSDL?
Пример: в WSDL-файле UserManagement.wsdl есть фрагмент
<code>
<s:schema elementFormDefault="qualified" targetNamespace="<a href="http://www.initechsystems.com/initech7/initechws/" rel="nofollow noreferrer">http://www.initechsystems.com/initech7/initechws/</a>">
<s:element name="UserSecurityContext" type="s2:UserSecurityContext"/>
<s:complexType name="UserSecurityContext">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Token" type="s2:UserToken"/>
</s:sequence>
</s:complexType>
<s:complexType name="UserToken">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Value" type="s:string"/>
</s:sequence>
</s:complexType>
</s:schema>
В C # я могу получить доступ к UserSecurityContext следующим образом:
<code>
UserManagement userMgmt = new UserManagement();
userMgmt.UserSecurityContextValue = new SampleWS.UserRef.UserSecurityContext();
Однако в Java я могу создать объект UserManagement
<code>
UserManagement userMgmt = new UserManagement();
, но сгенерированный объект UserManagement не имеет ни доступного объекта SecurityContext, ни методов получения или установки для такого частного объекта.