mapear serviço Web Service Axis2

28/02/2012

0

É possível mapear um seviço do axis2 para uma url mais amigavel.
por exemplo:
http://localhost:18080/axis2/services/exemplows.exemplowsHttpSoap11Endpoint
para
http://localhost:18080/exemplows

se possível como fazer ?
Welton Carvalho

Welton Carvalho

Responder

Posts

28/02/2012

Davi Costa

No seu wsdl altere o campolocation da tag:
<wsdlsoap:address location=http://localhost:18080/axis2/services/exemplows.exemplowsHttpSoap11Endpoint />

e terá que ter cuidado se no seu web.xml tem algo assim:
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

o que força vc ter services depois de http://localhost:18080/axis2

att Davi
Responder

28/02/2012

Welton Carvalho

No seu wsdl altere o campolocation da tag:
<wsdlsoap:address location=http://localhost:18080/axis2/services/exemplows.exemplowsHttpSoap11Endpoint />

e terá que ter cuidado se no seu web.xml tem algo assim:
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

o que força vc ter services depois de http://localhost:18080/axis2

att Davi


mas se eu alterar o location direto no wsdl, como a aplicação que for consumir ira encontrar o serviço?
eu não preciso mapear isso no service.xml ou axis2.xml?
Responder

28/02/2012

Davi Costa

Vai depender como vc fez toda sua implementação. Posta aqui esses dois arquivos para verificarmos se há necessidade de alteração em mais algum campo.
Sua classe Java não tem nenhuma referência a essa caminho não né (estou falando do serviço mesmo não dos clients)?

att Davi
Responder

28/02/2012

Welton Carvalho

No seu wsdl altere o campolocation da tag:
<wsdlsoap:address location=http://localhost:18080/axis2/services/exemplows.exemplowsHttpSoap11Endpoint />

e terá que ter cuidado se no seu web.xml tem algo assim:
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

o que força vc ter services depois de http://localhost:18080/axis2

att Davi


mas se eu alterar o location direto no wsdl, como a aplicação que for consumir ira encontrar o serviço?
eu não preciso mapear isso no service.xml ou axis2.xml?


fiz o que sugeriu e quando tento consumir ele não encontra o endpoint reference http://localhost:8080/Axis2Test/services/
<wsdl:service name=teste>
        <wsdl:port name=testeHttpSoap11Endpoint binding=ns:testeSoap11Binding>
            <soap:address location=http://localhost:8080/Axis2Test/services//>
        </wsdl:port>       
    </wsdl:service>


segue também o services.xml

<service name=teste targetNamespace=http://webservice.com>
	<Description>
		Please Type your service description here
	</Description>
	 <schema schemaNamespace=http://webservice.com/xsd/>	  	
	<messageReceivers>
		<messageReceiver mep=http://www.w3.org/2004/08/wsdl/in-only class=org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver />
		<messageReceiver  mep=http://www.w3.org/2004/08/wsdl/in-out  class=org.apache.axis2.rpc.receivers.RPCMessageReceiver/>
	</messageReceivers>
	<parameter name=ServiceClass locked=false>br.teste.servico.teste</parameter>
		
</service>

Responder

28/02/2012

Davi Costa

localhost:8080/Axis2Test/services// /troca colca pelo menos um nome, por exemplo:

localhost:8080/Axis2Test/services/exemplows

e testa esse seu services.xml vc não alterou né?

Vc depois vai ter que fazer a alteração no client para ele procurar localhost:8080/Axis2Test/services/exemplows

att Davi
Responder

03/03/2012

Dyego Carmo

Opa !

Funcionou ?

Poderia fechar o chamado ? :D

Valeu !
Responder

06/03/2012

Welton Carvalho

Desculpe pela demora para responder.

Bom da forma que o Davi passou funcionou sim, porém gostaria que mais amigável ainda.
hoje esta assim
<wsdl:service name=exemplows>
<wsdl:port name=movemaiswsHttpSoap11Endpoint binding=ns:movemaiswsSoap11Binding>
<soap:address location=http://10.0.17.61:18080/axis2/services/exemplows/>
</wsdl:port>
</wsdl:service>

mas gostaria que ficasse assim

<wsdl:service name=exemplows>
<wsdl:port name=movemaiswsHttpSoap11Endpoint binding=ns:movemaiswsSoap11Binding>
<soap:address location=http://10.0.17.61:18080/exemplows/>
</wsdl:port>
</wsdl:service>


é possivel fazer assim ?

grato..
Responder

10/03/2012

Welton Carvalho

localhost:8080/Axis2Test/services// /troca colca pelo menos um nome, por exemplo:

localhost:8080/Axis2Test/services/exemplows

e testa esse seu services.xml vc não alterou né?

Vc depois vai ter que fazer a alteração no client para ele procurar localhost:8080/Axis2Test/services/exemplows

att Davi


Davi é possivel fazer isso
localhost:8080/exemplows
ao invés disso
localhost:8080/Axis2Test/services/exemplows
Responder

15/03/2012

Davi Costa

Desconheço essa hipótese, mas só com muita pesquisa para confirmar..

att Davi
Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar