下面列出了javax.servlet.ServletRegistration.Dynamic#setAsyncSupported ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public Dynamic inject(ServletContext servletContext, String urlPattern) {
String[] urlPatterns = splitUrlPattern(urlPattern);
if (urlPatterns.length == 0) {
LOGGER.warn("urlPattern is empty, ignore register {}.", SERVLET_NAME);
return null;
}
String listenAddress = ServletConfig.getLocalServerAddress();
if (!ServletUtils.canPublishEndpoint(listenAddress)) {
LOGGER.warn("ignore register {}.", SERVLET_NAME);
return null;
}
// dynamic deploy a servlet to handle serviceComb RESTful request
Dynamic dynamic = servletContext.addServlet(SERVLET_NAME, RestServlet.class);
dynamic.setAsyncSupported(true);
dynamic.addMapping(urlPatterns);
dynamic.setLoadOnStartup(0);
LOGGER.info("RESTful servlet url pattern: {}.", Arrays.toString(urlPatterns));
return dynamic;
}
@Override
public void onStartup(ServletContext context) {
Bootstrap.start();
Dynamic dynamic = context
.addServlet(DispatcherServlet.class.getSimpleName(), DispatcherServlet.class);
dynamic.setLoadOnStartup(0);
dynamic.addMapping(Strings.SLASH);
dynamic.setAsyncSupported(true);
}
/**
* Test getAsync.
*
* @throws Exception
*/
@Test
public void testGetAsync() throws Exception {
DefaultWebApplicationRequestMapper webAppRequestMapper = new DefaultWebApplicationRequestMapper();
DefaultWebApplication webApp = new DefaultWebApplication();
webApp.setWebApplicationRequestMapper(webAppRequestMapper);
Dynamic registration = webApp.addServlet("Chat", TestChat1Servlet.class);
registration.setAsyncSupported(true);
webApp.addServletMapping("Chat", "/chat");
webApp.initialize();
webApp.start();
TestWebApplicationRequest request = new TestWebApplicationRequest();
request.setWebApplication(webApp);
request.setServletPath("/chat");
TestWebApplicationResponse response = new TestWebApplicationResponse();
webApp.service(request, response);
assertNotNull(response.getResponseBytes());
request = new TestWebApplicationRequest();
request.setWebApplication(webApp);
request.setAsyncSupported(true);
request.setServletPath("/chat");
request.setMethod("POST");
request.setParameter("action", new String[]{"login"});
request.setParameter("name", new String[]{"username"});
response = new TestWebApplicationResponse();
webApp.service(request, response);
assertNotNull(response.getResponseBytes());
request = new TestWebApplicationRequest();
request.setWebApplication(webApp);
request.setServletPath("/chat");
request.setMethod("POST");
request.setParameter("action", new String[]{"post"});
request.setParameter("name", new String[]{"username"});
request.setParameter("message", new String[]{new Date().toString()});
response = new TestWebApplicationResponse();
webApp.service(request, response);
assertNotNull(response.getResponseBytes());
}
/**
* Test getAsync.
*
* @throws Exception
*/
@Test
public void testGetAsync2() throws Exception {
DefaultWebApplicationRequestMapper webAppRequestMapper = new DefaultWebApplicationRequestMapper();
DefaultWebApplication webApp = new DefaultWebApplication();
webApp.setWebApplicationRequestMapper(webAppRequestMapper);
Dynamic registration = webApp.addServlet("Chat", TestChat2Servlet.class);
registration.setAsyncSupported(true);
webApp.addServletMapping("Chat", "/chat");
webApp.initialize();
webApp.start();
TestWebApplicationRequest request = new TestWebApplicationRequest();
request.setWebApplication(webApp);
request.setServletPath("/chat");
TestWebApplicationResponse response = new TestWebApplicationResponse();
webApp.service(request, response);
assertNotNull(response.getResponseBytes());
request = new TestWebApplicationRequest();
request.setWebApplication(webApp);
request.setServletPath("/chat");
request.setMethod("POST");
request.setParameter("action", new String[]{"login"});
request.setParameter("name", new String[]{"username"});
response = new TestWebApplicationResponse();
webApp.service(request, response);
assertNotNull(response.getResponseBytes());
request = new TestWebApplicationRequest();
request.setWebApplication(webApp);
request.setServletPath("/chat");
request.setMethod("POST");
request.setParameter("action", new String[]{"post"});
request.setParameter("name", new String[]{"username"});
request.setParameter("message", new String[]{new Date().toString()});
response = new TestWebApplicationResponse();
webApp.service(request, response);
assertNotNull(response.getResponseBytes());
}
@Override
public void onStartup(ServletContext servletContext)
throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(MyMvcConfig.class);
ctx.setServletContext(servletContext); // ②
Dynamic servlet = servletContext.addServlet("dispatcher",new DispatcherServlet(ctx)); // 3
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
servlet.setAsyncSupported(true);//①
}
@Override
public void onStartup(ServletContext servletContext)
throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(MyMvcConfig.class);
ctx.setServletContext(servletContext); // ②
Dynamic servlet = servletContext.addServlet("dispatcher",new DispatcherServlet(ctx)); // 3
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
servlet.setAsyncSupported(true);//①
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.setConfigLocation("org.synchronoss.cloud.nio.multipart.example.config");
context.setServletContext(servletContext);
Dynamic dynamic = servletContext.addServlet("dispatcher", new DispatcherServlet(context));
dynamic.setAsyncSupported(true);
dynamic.addMapping("/");
dynamic.setLoadOnStartup(1);
}
@Override
protected void customizeRegistration(Dynamic registration) {
registration.setAsyncSupported(true);
}
@Override
protected void customizeRegistration(Dynamic registration) {
registration.setAsyncSupported(true);
}
@Override
protected void customizeRegistration(Dynamic registration) {
registration.setAsyncSupported(true);
}
@Override
protected void customizeRegistration(Dynamic registration) {
registration.setAsyncSupported(true);
}