gpt4 book ai didi

java - 如何在 main() 中使用 Atmosphere 指定 Spring Servlet

转载 作者:行者123 更新时间:2023-11-30 09:24:29 25 4
gpt4 key购买 nike

目前我正在像这样在我的 main() 方法中实现 Atmosphere

public static void main(String[] args) throws IOException {
final HttpServer server = HttpServer.createSimpleServer(".", 8181);

WebappContext ctx = new WebappContext("Socket", "/");

//allow spring to do all of it's stuff
ctx.addListener("org.springframework.web.context.ContextLoaderListener");

//enable web socket support
final WebSocketAddOn addon = new WebSocketAddOn();
for (NetworkListener listener : server.getListeners()) {
listener.registerAddOn(addon);

//if false, local files (html, etc.) can be modified without restarting the server
//@todo experiment with this setting in production vs development
listener.getFileCache().setEnabled(false);
}

//add jersey servlet support
ServletRegistration jerseyServletRegistration = ctx.addServlet("JerseyServlet", new ServletContainer());
//jerseyServletRegistration.setInitParameter("com.sun.jersey.config.property.packages", "come.fettergroup.production.queue.resources");
jerseyServletRegistration.setLoadOnStartup(1);
jerseyServletRegistration.addMapping("/api/*");

//add atmosphere servlet support
ServletRegistration atmosphereServletRegistration = ctx.addServlet("AtmosphereServlet", new AtmosphereServlet());
atmosphereServletRegistration.setInitParameter("org.atmosphere.websocket.messageContentType", "application/json");
atmosphereServletRegistration.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");
atmosphereServletRegistration.setLoadOnStartup(1);

我怎样才能使用这个 XML 文件并在上面的代码中完成同样的事情?

<atmosphere-handlers>
<atmosphere-handler context-root="/api" class-name="org.atmosphere.handler.ReflectorServletProcessor">
<property name="servletClassName"
value="com.sun.jersey.spi.spring.container.servlet.SpringServlet" />
</atmosphere-handler>
</atmosphere-handlers>

我研究过将处理程序分配给 Atmosphere,但它需要一个我无法获得的 AtmosphereFramework 实例。

最佳答案

您可以通过以下方式添加您的 AtmosphereHandler:

AtmosphereServlet s = new AtmosphereServlet();
AtmosphereFramework f = s.framework();

ReflectorServletProcessor r = new ReflectorServletProcessor();
r.setServletClassName("com.sun.jersey.spi.spring.container.servlet.SpringServlet");

f.addAtmosphereHandler("/api/*", r);

ServletRegistration atmosphereServletRegistration = ctx.addServlet("AtmosphereServlet", s);

感谢您补充问题 BTW,将改进 FAQ

--让弗朗索瓦

关于java - 如何在 main() 中使用 Atmosphere 指定 Spring Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15691442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com