我正在运行Undertow作为一个简单的Servlet容器。我部署了Resteasy servlet:
ResteasyDeployment restEasyDeployment = new ResteasyDeployment();
Reflections reflections = new Reflections("");
Set<Class<?>> resourceClassSet = reflections.getTypesAnnotatedWith(Path.class);
restEasyDeployment.getActualResourceClasses().addAll(resourceClassSet);
ServletInfo servletInfo = Servlets.servlet("RestEasyServlet", HttpServlet30Dispatcher.class);
servletInfo.setAsyncSupported(true)
.setLoadOnStartup(1)
.addMapping("/*");
DeploymentInfo deploymentInfo = new DeploymentInfo();
deploymentInfo.setContextPath(path)
.addServletContextAttribute(ResteasyDeployment.class.getName(), restEasyDeployment)
.addServlet(servletInfo)
.setDeploymentName("api")
.setClassLoader(ClassLoader.getSystemClassLoader());
DeploymentManager deploymentManager = Servlets.defaultContainer().addDeployment(deploymentInfo);
deploymentManager.deploy();
此代码基于this tutorial和this code。
如何为Resteasy内部部署的资源提供任何构造参数?
我看到使用静态字段的教程但我想保持依赖性反转以便于测试。在Servlet世界中,正确的做法是将所有内容放在上下文中。