埋め込まれた桟橋で実行されているジャージー アプリケーションがあります。彗星の機能を利用するために、atmosphere-jersey を使用するように変換したいのですが、少し行き詰まっています。どんな助けでも大歓迎です。私のジャージ コードは、ResourceConfig で構成されたジャージ ServletContainer を使用して、リソース インスタンスを指定します。
ResourceConfig.registerInstances(resourceInstance);
new org.glassfish.jersey.servlet.ServletContainer(ResourceConfig);
同じセットアップを大気で動作させる方法がわかりません。AtmosphereServlet があることがわかります。それにリソースインスタンスを提供することは可能ですか?
これは、現時点でジャージ/桟橋がどのように設定されているかです...
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.glassfish.jersey.server.ResourceConfig;
public class HelloWorldJerseyJetty {
// http://localhost:8080/resources/resource
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ResourceConfig config = new ResourceConfig();
config.registerInstances(new Resource("Hello World"));
org.glassfish.jersey.servlet.ServletContainer jerseyServlet = new org.glassfish.jersey.servlet.ServletContainer(config);
ServletContextHandler handler = new ServletContextHandler();
handler.addServlet(new ServletHolder(jerseyServlet), "/resources/*");
server.setHandler(handler);
server.start();
server.join();
}
@Path("resource")
public static class Resource {
private final String message;
public Resource(String message) {
this.message = message;
}
@GET
@Produces(MediaType.TEXT_PLAIN)
public String get() {
return message;
}
}
}
jersey から AtmosphereServlet に切り替えるにはどうすればよいですか? また、インスタンスを使用するように設定するにはどうすればよいですか?
ResourceConfig config = new ResourceConfig();
config.registerInstances(new Resource("Hello World"));
AtmosphereServlet atmosphereServlet = new AtmosphereServlet();
atmosphereServlet.???
ServletContextHandler handler = new ServletContextHandler();
handler.addServlet(new ServletHolder(atmosphereServlet), "/resources/*");