Alterar porta na qual um serviço web Axis está a ouvir
Pergunta
Eu tenho um aplicativo web em execução na porta: 80, e eu tenho um serviço web Axis que é parte do que a aplicação web. Como tal, o serviço está sendo executado na porta: 80 assim
.No entanto, por razões de segurança o nosso cliente nos pediu para mudar a porta de serviço web para 8080, para que possam permitir o acesso apenas a essa porta para os consumidores remotas do serviço web. Portanto, eles não terão acesso à aplicação web regular, mas tem acesso ao serviço.
Isso é possível fazer sem refatoração o aplicativo e tirando o serviço web em um aplicativo Web separado?
Solução
Como eu disse no meu comentário, a nossa aplicação web está hospedado em Oracle como 10g com um servidor Oracle Web Cache sentado na frente dele. Oracle Web Cache é baseado no Apache httpd, por isso tem o apoio host virtual e reescrita de URL (embora não está presente sob estes termos).
Eu consegui resolver o problema:
- configurar o cache web para ouvir a porta 8080 (host virtual)
- reescrever todos os pedidos no formulário http: // host: 8080 / serviço / * http:. // host / serviço / *, e soltar todos os outros padrões de URL
Ele funciona como um encanto.
Como para Axis, eu não encontrar uma maneira de configurá-lo para escutar em outra porta por si só. Acho que era razoável esperar da Axis para fornecer essa funcionalidade, pois é apenas um servlet hospedado em um servlet container, e trabalho que da do recipiente para fornecer a camada de conector / transporte.
De qualquer maneira ... obrigado por tudo que ofereceram sua ajuda, eu aprecio isso.
Outras dicas
A resposta curta, provavelmente é - sim, é possível.
Axis webservices principalmente são bastante dissociado do aplicativo principal que deve ser fácil para obtê-los em execução em uma instância de servidor web diferente Java que seria executado apenas na porta 8080 no caso se não é possível configurar o que quer webserver é você correndo para executar também na porta 8080 e para servir o serviço web apenas com essa porta.
O que você deve ser capaz set up um serviço separado usando uma porta 8080 Connector.
Efetivamente, você estaria correndo 2 "mini" -Tomcats dentro do seu exemplo.
Basicamente,
<Service> <!-- normal service -->
<Connector port="80" />
</Service>
<Service> <!-- custom service -->
<Connector port="8080" />
<Engine>
<Host />
</Engine>
</Service>
Ele se sente como esta solução poderia apresentar alguns pesadelos depuração se ele não funciona apenas para a direita e por isso poderia ser apenas mais fácil de executar um segundo servidor (talvez Jetty).