【发布时间】:2016-04-19 21:58:43
【问题描述】:
我正在尝试对 Spring Boot 应用程序进行原型设计。我来自 Guice JAX-RS 应用程序,所以我更喜欢标准的 JAX-RS 注释而不是 Spring MVC。我已经启动并服务了 Jetty:
@Configuration
@Import({ResteasyBootstrap.class, SpringBeanProcessorServletAware.class, HttpServletDispatcher.class})
public class EmbeddedJetty {
@Bean
@Singleton
public EmbeddedServletContainerFactory servletContainer() {
JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory();
factory.setPort(9000);
factory.setSessionTimeout(10, TimeUnit.MINUTES);
return factory;
}
}
但是,我就是不知道如何正确连接 RESTEasy。有了上面的SpringBeanProcessorServletAware,它就退出了,似乎ServletContext 在最终被使用之前没有通过ServletContextAware 注入:
java.lang.NullPointerException: null
at org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware.getRegistry(SpringBeanProcessorServletAware.java:30)
at org.jboss.resteasy.plugins.spring.SpringBeanProcessor.postProcessBeanFactory(SpringBeanProcessor.java:247)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:284)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:174)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:680)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:522)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
我也尝试使用 SpringContextLoaderListener,但这似乎与 spring-boot AnnotationConfigEmbeddedWebApplicationContext 类冲突。
我正在使用 spring-boot 1.3.3 和 spring-framework 4.3.0.rc1
【问题讨论】:
-
查看this project。它是由引导开发人员之一
标签: spring spring-boot jax-rs resteasy