java - 如何处理 CXF restful webservices 中的可选参数

标签 java web-services rest cxf

我已点击此链接构建 CXF Restful 网络服务 url link .

如果假设我的 url 如下所示:

http://localhost:8080/CxfRestService/rest/employeeservices/getemployeedetail?employeeId=1&empProfession=software

这里,“empProfession”参数对我来说是可选的。

因此,即使我省略该参数并点击以下网址,我也应该得到所需的响应。 http://localhost:8080/CxfRestService/rest/employeeservices/getemployeedetail?employeeId=1

任何人都可以帮助我了解如何在 CXF Restful 网络服务中使用可选参数。

最佳答案

选项 1 - 声明参数并检查 != null

 public Response getEmployeeDetail(@QueryParam("employeeId") String employeeId, @QueryParam("empProfession") String empProfession);

选项 2 - 声明 en 对象以接收所有已知参数

 public Response getEmployeeDetail(@QueryParam("") EmployeeFilter filter) ;

 public class EmployeeFilter {
    public void setEmployeeId(String id) {...}
    public void setEmpProfession(String p) {...}  
 }

选项 3 - 不声明参数并解析 URI。如果您可以接受非固定参数,此选项可能很有用

 public Response getEmployeeDetail( @Context UriInfo uriInfo) {
      MultivaluedMap<String, String> params = uriInfo.getQueryParameters();
      String employeeId = params.getFirst("employeeId");
      String empProfession = params.getFirst("empProfession");

关于java - 如何处理 CXF restful webservices 中的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37983546/

相关文章:

java - Apache CXF : jax-rs Client - GET Array of Objects

api - 并发环境中的幂等 PUT

java - Repaint() 后 JComponent 移动到原点

java - 从文件数据构建两个二维数组

Java Web 应用程序连接到 MYSQL 和 SQL SERVER

java - 快速修复 org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java :467)

java - 解码响应后过滤来自soap webservice的结果

java - VM 在静态方法上终止

wcf - 以 RESTful 方式从 WCF 服务返回错误的最佳方法是什么?

http - REST 的资源和操作 URI 约定