Melhor maneira de consumir serviços da web .NET em Java
-
10-07-2019 - |
Pergunta
Eu estou tentando consumir alguns serviços .NET Web usando JAX-WS. I geraram as classes Java usando a ferramenta wsimport. No entanto, quando tento usar esses (proprietária, não públicos) de serviços web em Java, noto que a maioria dos métodos e propriedades fornecidas pelo fornecedor em seus exemplos de C # não estão disponíveis nas classes geradas (apesar de ter não encontrou quaisquer erros ao gerar as classes Java a partir do arquivo WSDL). Conexão com os serviços web também funciona basicamente.
Quando eu tentei gerar uma classe C # usando wsdl.exe do .NET SDK, todos os métodos foram gerados corretamente.
Qual seria a melhor maneira de consumir os serviços .NET Web para que a funcionalidade completa estará disponível em Java, e por que wsimport gerar apenas um pequeno subconjunto de todos os métodos e propriedades descritas no arquivo WSDL?
Exemplo: no arquivo WSDL UserManagement.wsdl há um trecho
<s:schema elementFormDefault="qualified" targetNamespace="http://www.initechsystems.com/initech7/initechws/">
<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>
Em C #, eu posso acessar o do UserSecurityContext followingly:
UserManagement userMgmt = new UserManagement();
userMgmt.UserSecurityContextValue = new SampleWS.UserRef.UserSecurityContext();
No entanto, em Java eu ??posso criar o objeto UserManagement
UserManagement userMgmt = new UserManagement();
mas o objeto UserManagement gerado não tem qualquer objeto acessível SecurityContext, nem getters ou setters para um objeto tão privado.
Solução
Estas link pode ser útil para você:
- http://java.sun.com/webservices /docs/2.0/tutorial/doc/JAXWS4.html
- http://java.sun.com /webservices/docs/2.0/tutorial/doc/JAXBWorks4.html#wp82947
- http: // www.google.com/search?hl=en&q=data+type+supported+in+jax-ws&aq=f&oq=
Também. a resposta a outra pergunta href="https://stackoverflow.com/questions/590514/netbeans-and-net-web-services"> ajuda poder.
Outras dicas
Eu gostaria de ver o exemplo que você está falando, como parece que o exemplo envia objetos com o comportamento através do fio ao invés de modelos apenas (ou mensagens, se você preferir um termo melhor SOA).
Quando você envia um objeto que é formatada como um modelo de dados, ou mensagem, ele não irá conter métodos para uso. E, com interoperabilidade, não faz muito sentido para configurar o comportamento (métodos) para ir do outro lado do fio.
Como para o que você pode fazer, desde que você está serialização, você pode criar os métodos comportamentais, se elas fazem sentido do seu lado. Pessoalmente, gostaria de criar o comportamento em outros objetos e manter os modelos / mensagens como recipientes do estado. Mas, sua milhagem pode variar. ; -)