É possível empacotar um servidor no seu aplicativo?

3 respostas
B

Olá pessoal,

Gostaria que tirassem uma dúvida minha.

Estou imaginando algumas situações de aplicações java e queria saber se é possível eu criar uma aplicação servlet mas que, ao invés de eu fazer um deploy dos meus arquivos em um servidor web, esse servidor seria um “mini” servidor controlado pelo meu aplicativo dentro do meu próprio programa.

Deu pra entender? Existe isso?

Só pra exemplificar, o usuário instalaria meu programa que, quando fosse iniciado ele daria um start no servidor web servlet e o usuário usaria meu aplicativo através do navegador. Tudo de maneira transparente pra ele.

Isso é possível? Sei que isso não seria um cliente/servidor, mas é que, para algumas idéias que eu to tendo, essa solução seria a ideal.

Desde já agradeço =)

Pilot

3 Respostas

T

É, tanto que um aplicativo que será lançado por um grande banco irá funcionar exatamente assim. (a idéia é que ele funcione local ou em rede, sem mudar nada.)

Dica: veja como encapsular o Jetty ou o Tomcat em um aplicativo. (Parece que o Jetty é bem mais fácil de encapsular que o Tomcat.)

Mauricio_Linhares

O Jetty 6 é mais rápido, mais confiável (já teve problemas de classloader com o Tomcat? eu já!), mais leve, mais fácil de configurar, tem uma integração incrível com o Maven 1 e 2 e pra fazer ele rodar no braço, olha o código:

Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8080);
server.setConnectors (new Connector[]{connector});
WebAppContext wah = new WebAppContext();
wah.setContextPath("/myspecialapp);
wah.setWar("file:///tmp/myspecialapp.war");
server.addHandler(wah);
server.start();

Será que alguém consegue fazer o Tomcat ficar simples assim? :twisted:

E antes que alguém pergunte, o Jetty 6 usa NIO pra streams, em vez de usar o IO normal do Java :stuck_out_tongue:

Mauricio_Linhares

Fiz a propaganda da coisa e esqueci do site :stuck_out_tongue:

http://jetty.mortbay.com/

Criado 6 de julho de 2006
Ultima resposta 6 de jul. de 2006
Respostas 3
Participantes 3