Eu gerei um cliente de serviço da web usando utils JBoss (compatível com JAX-WS) usando Eclipse 'cliente de serviço da web de um wsdl'.
Portanto, a única coisa que forneci foi um url para um WSDL de serviço da web.
Agora, o provedor de serviço da web me diz para alterar o "url de acesso ao aplicativo do terminal do cliente" do serviço da web.
O que é e como mudar?
java
web-services
jboss
jax-ws
EugeneP
fonte
fonte
Respostas:
IMO, o provedor está dizendo para você alterar o ponto de extremidade do serviço (ou seja, onde acessar o serviço da web), não o ponto de extremidade do cliente (não entendo o que poderia ser). Para alterar o terminal de serviço, você basicamente tem duas opções.
Use o provedor de vinculação para definir o URL do endpoint
A primeira opção é alterar o
BindingProvider.ENDPOINT_ADDRESS_PROPERTY
valor da propriedade deBindingProvider
(todo proxy implementajavax.xml.ws.BindingProvider
interface):A desvantagem é que isso só funciona quando o WSDL original ainda está acessível. Não recomendado.
Use o WSDL para obter o URL do endpoint
A segunda opção é obter a URL do terminal do WSDL.
fonte
wsimport
ferramentas modernas não geram mais código com umget[Service]Port
método. Em vez disso, chameget[Service]
e converta o objeto resultante em aBindingProvider
para definir esses tipos de propriedades.Para adicionar algum esclarecimento aqui, quando você cria seu serviço, a classe de serviço usa o padrão 'wsdlLocation', que foi inserido nele quando a classe foi construída a partir do wsdl. Portanto, se você tiver uma classe de serviço chamada SomeService e criar uma instância como esta:
Se você olhar dentro de SomeService, verá que o construtor se parece com isto:
Portanto, se você quiser que ele aponte para outra URL, basta usar o construtor que recebe um argumento de URL (há 6 construtores para definir qname e recursos também). Por exemplo, se você configurou um monitor TCP / IP local que está escutando na porta 9999 e deseja redirecionar para esse URL:
e isso chamará este construtor dentro do serviço:
fonte
Eu não iria tão longe quanto @Femi para alterar a propriedade de endereço existente. Você pode adicionar novos serviços à seção de definições facilmente.
Isso não requer uma recompilação do WSDL para Java e fazer atualizações não é mais difícil do que se você usasse a opção BindingProvider (que não funcionou para mim btw).
fonte
Para alterar a propriedade do endereço final, edite seu arquivo wsdl
fonte