为了账号安全,请及时绑定邮箱和手机立即绑定

多个 odata servlet 和端点 - 可能吗?

多个 odata servlet 和端点 - 可能吗?

守候你守候我 2024-01-05 10:44:25
我正在为我的 Web 应用程序使用 oData servlet,并希望为其添加其他端点。例如:/odata/* 还有:/pathVariable/{pathVariable}/odata/*而“pathVariable”为我提供传递附加数据和变量的服务。我尝试复制 servlet 方法并将其定向到新的 URL 映射,但未成功。这是我当前的代码:@Beanpublic ServletRegistrationBean odataServlet() {    ServletRegistrationBean<CXFNonSpringJaxrsServlet> odataServlet = new ServletRegistrationBean<>(new CXFNonSpringJaxrsServlet(), "/odata/*");    Map<String, String> initParameters = new HashMap<>();    initParameters.put("javax.ws.rs.Application", "org.apache.olingo.odata2.core.rest.app.ODataApplication");    initParameters.put("org.apache.olingo.odata2.service.factory", "com.context.JPAServiceFactory");    odataServlet.setInitParameters(initParameters);    return odataServlet;}我的预期结果是多个端点可供 oData 使用:/一次/路径名称/数据/odata/*
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

您是否尝试创建 2 个不同的 servlet 作为 2 个不同且不同的 OData 服务?


如果是这样,您可以尝试使用 javax 的 @WebServlet 注释来定义 OData servlet 及其端点,并让 Spring 扫描它们。


例如,第一个服务:


@WebServlet(urlPatterns = {"/odata/*"}, initParams = {

        @WebInitParam(name = "javax.ws.rs.Application", value = "org.apache.olingo.odata2.core.rest.app.ODataApplication"),

        @WebInitParam(name = "org.apache.olingo.odata2.service.factory", value = "com.context.JPAServiceFactory")

})

public class MyODataServlet extends ODataServlet {


}

第二项服务:


@WebServlet(urlPatterns = {"/another-odata/*"}, initParams = {

        @WebInitParam(name = "javax.ws.rs.Application", value = "org.apache.olingo.odata2.core.rest.app.ODataApplication"),

        @WebInitParam(name = "org.apache.olingo.odata2.service.factory", value = "com.context.JPAServiceFactory")

})

public class AnotherODataServlet extends ODataServlet {


}

只是不要忘记使用以下命令扫描它们:


@Configuration

@ComponentScan(basePackages = {

        <packages of JPAServiceFactory and other requires beans>

})

@ServletComponentScan(basePackages = <the web servlets package>)

public class ODataConfig {


}


查看完整回答
反对 回复 2024-01-05
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信