Javaservlet。捕获完整的ODataURL

Javaservlet。捕获完整的ODataURL,java,servlets,odata,Java,Servlets,Odata,我试图用WebServlet捕捉Java中的OData调用 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSer

我试图用WebServlet捕捉Java中的OData调用

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet("/someservice/UserSet")
public class UserSetServlet extends HttpServlet {

@Override
    protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws IOException {

        //some functionality
   }
}
当我简单地打电话时“http://somdomain.com/someservice/UserSet,然后我去服务,但当我打电话时http://somdomain.com/someservice/UserSet(“SOME_ID”)”,然后我收到404,该服务未找到

有人知道我如何配置Servlet来捕获整个OData请求吗


非常感谢

感谢所有的答案。解决方案-不知道。我开始迁移到Spring框架。

您不能将
一些ID
作为查询参数传递吗,例如
http://somdomain.com/someservice/UserSet?id=SOME_ID
No,这是IDS选择的标准OData过滤格式。servlet规范及其衍生产品(如JAX-RS)不支持此类URL。JAX-RS接受路径中的正则表达式,但我不知道它在多大程度上涵盖了ODataURL规范。您可以做几件事:(a)放弃OData的URL规范,使用“普通”查询/路径参数(b)编写一个servlet(或JAX-RS)过滤器,转换URI并在内部转发到使用“普通”查询/路径参数的资源(c)搜索为您执行此操作的现有框架。