Pergunta

Eu quero escrever um P2P simples aplicativo de teste que usa HTTP como subjacente protocolo.
O aplicativo tem a decidir sobre a demanda , se deveria agir como um Servidor HTTP , ou como um cliente HTTP .

A maneira clássica que eu conheço, seria para implantar o aplicativo no alguns existente HTTP servidor. Mas este é o caminho errado para a minha intenção. Tem que ser o contrário: o servidor é iniciado pelo aplicativo (e somente se decidir).

Existe uma maneira de executar a parte do servidor HTTP na demanda (Sem implantar o próprio aplicativo em um servidor)?

Posso fazê-lo ligando bibliotecas GlassFish ou Tomcat e chamar algum método "main"?

Editar: FUNCIONA !!!
Agora eu tentei Jetty , juntamente com JAX-RS (Jersey) com sucesso!
Obrigado a todos.

(a classe REST é trivial e deixado de fora)

pacote my.p2p;

import com.sun.jersey.spi.container.servlet.*;
import org.mortbay.jetty.*;
import org.mortbay.jetty.servlet.*;

public class Main {
  public static void main(String[] args)
      throws Exception {

    ServletHolder holder = new ServletHolder(ServletContainer.class);

    holder.setInitParameter("com.sun.jersey.config.property.resourceConfigClass",
      "com.sun.jersey.api.core.PackagesResourceConfig");
    holder.setInitParameter("com.sun.jersey.config.property.packages", "my.p2p.rest");

    Server server = new Server(8000);

    Context context = new Context(server, "/", Context.SESSIONS);
    context.addServlet(holder, "/*");
    server.start();
  }
}
Foi útil?

Solução

Você pode usar Jetty ou algum outro servidor HTTP embutido. Do site da Jetty:

Jetty é um projeto open-source fornecer um servidor HTTP, HTTP cliente e recipiente javax.servlet. Estes componentes java 100% são full-featured, baseados em padrões, impressão pé pequeno, embutido, escalável assíncrona e da empresa. Jetty é dupla licenciado sob a licença Apache 2.0 e / ou Eclipse Public License 1.0. Jetty é livre para uso comercial e distribuição, nos termos de qualquer dessas licenças.

Outras dicas

Ao lado das outras respostas há também NanoHTTPD . É muito pequena, em apenas uma classe e talvez a coisa certa se yout não mais precisa ou quer apenas para manter as coisas mínimas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top