Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @泽西岛的路径和@queryparam_Java_Web Services_Rest_Jersey - Fatal编程技术网

Java @泽西岛的路径和@queryparam

Java @泽西岛的路径和@queryparam,java,web-services,rest,jersey,Java,Web Services,Rest,Jersey,我正在开发一个简单的restful Web服务,我是这方面的新手。因此,我参考了基本教程并成功地执行了它们 下面是我为继续编写而编写的示例代码 import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; @Pa

我正在开发一个简单的restful Web服务,我是这方面的新手。因此,我参考了基本教程并成功地执行了它们

下面是我为继续编写而编写的示例代码

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

@Path("/text/{sso}")

public class Do {


      @GET
      @Produces(MediaType.TEXT_PLAIN)
      public String simple(@PathParam("ss") @QueryParam("d") String params) {
        return "Hello Jersey"+params;
      }

      @GET
      @Produces(MediaType.TEXT_PLAIN)
      public String advanced(@PathParam("as") @QueryParam("d") String params) {
        return "Hello Jersey-----"+params;
      }
}
我基本上需要的是在同一个类中公开两个不同的方法,并根据url访问相应的方法

执行上述操作时,它抛出以下错误-com.sun.jersey.spi.inject.Errors$ErrorMessagesException 如果我在正确的轨道上,有人能指引我吗?如果是,请告诉我我错过了什么。如果不是,那么这种情况下的正确方法是什么?

如果要匹配两个
QueryParam
s,则方法必须有两个参数

public String simple(@PathParam("ss") String paramSs,
                     @PathParam("d") String paramD) {
  // ...
}

@PathParam
是一个方法参数的注释。

代码中有两个问题

  • @PathParam
    注释需要应用于方法的参数
  • @PathParam
    注释的值需要与路径段匹配
  • 类中唯一的路径段由以下内容定义:

    @Path("/text/{sso}")
    
    并且具有值“sso”。因此,您的代码应该更像这样:

    @Path("/text/{sso}")
    public class Do {
    
        @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String simple(@PathParam("sso") String sso,
                @QueryParam("d") String params) {
            return "Hello Jersey" + params;
        }
    
        @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String advanced(@PathParam("sso") String sso,
                @QueryParam("d") String params) {
            return "Hello Jersey-----" + params;
        }
    }