Hello!
I want to write a simple P2P test app which uses HTTP as
underlying protocol.
The app has to decide on demand, if it should
act as a HTTP server, or as a HTTP client.
The classic way which I am aware of, would be to deploy the app on some existing HTTP server. But this is the wrong way for my intention. It has to be the other way: the server is started by the app (and only if it decides to).
Is there a way to execute the HTTP server part on demand (without deploying the app itself on a server)?
Can I do it by linking Glassfish or Tomcat libraries and call some "main" method?
Edit: IT WORKS!!!
I now tried Jetty along with JAX-RS (Jersey) successfully!
Thank you all.
(the REST class is trivial and left out)
package 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();
}
}