Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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 如何访问;findById“;“通过”创建RESTful服务的方法;getJSON";?_Java_Javascript_Jquery_Ajax_Json - Fatal编程技术网

Java 如何访问;findById“;“通过”创建RESTful服务的方法;getJSON";?

Java 如何访问;findById“;“通过”创建RESTful服务的方法;getJSON";?,java,javascript,jquery,ajax,json,Java,Javascript,Jquery,Ajax,Json,这是我的RESTful服务类的以下代码: @RequestScoped @Path("/empresas") public class EmpresaEndpoint { @Inject private EmpresaRB empresaRB; @GET @Path("/{id:[0-9][0-9]*}") @Produces("application/json") public Response findById(@PathParam("id

这是我的RESTful服务类的以下代码:

@RequestScoped
@Path("/empresas")
public class EmpresaEndpoint {

    @Inject
    private EmpresaRB empresaRB;

    @GET
    @Path("/{id:[0-9][0-9]*}")
    @Produces("application/json")
    public Response findById(@PathParam("id") final Long id) {
        //TODO: retrieve the empresas
        Empresa empresas = null;
        if (empresas == null) {
            return Response.status(Status.NOT_FOUND).build();
        }
        return Response.ok(empresas).build();
    }

    @GET
    @Produces("application/json")
    public List<Empresa> listAll(
            @QueryParam("start") final Integer startPosition,
            @QueryParam("max") final Integer maxResult) {
        //TODO: retrieve the empresa
        return empresaRB.getEmpresas();
    }

}

上面的代码将访问“listAll”方法。那么,我如何访问“findById”方法并传递必要的参数呢?

假设您有一个名为empresaId的变量来保存实体的id,这应该可以工作

$.getJSON( "rest/empresas/" + empresaId, function(data) { 
  // Whatever is required here    
}

在没有使用特定框架的情况下,它似乎映射到了基于路径的正确方法-如果路径有ID,它将使用
findById
,例如

$.getJSON("rest/empresas/100", function(data) {
  // ...
}

(这将找到ID为100的项…显然,替换您要查找的项的ID。我们不知道它来自何处,但
“rest/empresas/”+ID
可能就是您所需要的全部。)

在我的初始代码中,没有查询连接到findById()方法上的变量“empresa”

我在repository类上创建了一个查询,并将其分配给变量。问题解决了


谢谢你们借给我的时间。

这样我就可以拿到404了。我已经尝试添加Id,但没有成功。尝试通过浏览器访问json数据(向url添加一些Id)并在运行时检索结果。但是谢谢你的时间@MarcusKaefer:您是否尝试过在URL中不使用
empresas
?也许路径注释会覆盖类级注释?或者它的配置不正确,应该是
@Path(“/empresas/{id:[0-9][0-9]*}”)
。这是您的服务器代码,如果需要可以更改吗?问题是我无法通过键入“/rest/empresas/XXX”通过浏览器访问数据。当我键入“/resources/empresas”时,我可以像这样可视化JSON数据:{“cdEmpresa”:2,“nmEmpresa”:“2-MAXICON-DESENV”},{“cdEmpresa”:3,“nmEmpresa”:“3-MAXICON-DESENV”};{“cdEmpresa”:4,“nmEmpresa”:“4-MAXICON-DESENV”}@MarcusKaefer:这就是为什么我建议更改服务器上的代码-它可能配置错误。(我们不知道它使用的是哪个web框架,这没有帮助。)我将JPA与Hibernate一起使用,服务器是JBoss
$.getJSON("rest/empresas/100", function(data) {
  // ...
}