【发布时间】:2016-11-28 07:28:53
【问题描述】:
我正在使用 Spring boot 的 ServletRegistrationBean 注册一个辅助 servlet
@Configuration
public class CxfServletRegister {
@Bean
public ServletRegistrationBean getODataServletRegistrationBean() {
ServletRegistrationBean odataServletRegistrationBean = new ServletRegistrationBean(new CXFNonSpringJaxrsServlet(), "/odata.svc/*");
Map<String, String> initParameters = new HashMap<String, String>();
initParameters.put("javax.ws.rs.Application", "org.apache.olingo.odata2.core.rest.app.ODataApplication");
initParameters.put("org.apache.olingo.odata2.service.factory", "com.cce.utils.JPAServiceFactory");
odataServletRegistrationBean.setInitParameters(initParameters);
return odataServletRegistrationBean;
}
}
我正在使用 Apache Olingo 构建 OData 应用程序。我希望为我的服务启用 CORS。 如何为此 servlet 启用 CORS?
PS 我已经尝试过 Spring 中的 WebConfigurer bean:入门指南
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/greeting-javaconfig").allowedOrigins("*");
}
};
}
这不起作用,可能是因为这是配置spring web的默认调度器servlet,而不是使用ServletRegistrationBean配置的附加servlet
【问题讨论】: