使用JAX RS和可选参数调用StoredProcedure

时间:2018-10-01 08:15:53

标签: sql-server jax-rs

我有以下网址,

    var URL = "api/v1/daten/Zielstruktur/" + this.wertback + "/" + this.halle
        + "/" + this.funktionsbereich + "/" + this.schicht;

此URL调用以下JAX-RS方法:

@GET
@Path("{zielstruktur}/{ident}/{halle}/{bereich}/{schicht}")
@Produces(MediaType.APPLICATION_JSON)
public List<Zielstruktur> ziele(@PathParam("zielstruktur") String zielstruktur, @PathParam("ident") String ident,
        @PathParam("halle") String halle, @PathParam("bereich") String bereich,
        @PathParam("schicht") String schicht) {

  [...]
     cs = con.prepareCall("{call sp_Zielstruktur(?,?,?,?,?)}");
            cs.setString(1, zielstruktur);
            cs.setString(2, ident);
            cs.setString(3, halle);
            cs.setString(4, bereich);
            cs.setString(5, schicht);
    rs = cs.executeQuery();
            while (rs.next()) {
      [...]
            }

所以我的问题是,Params halle,funktionsbereich和schicht可以为空。因此,如果我尝试使用以下语法调用URL:

  

/ api / v1 / daten / Zielstruktur / 1/56 // A

我收到状态码:404未找到。

所有参数都必须设置,我得到了回应。 因此,如果我在MS SQL上执行我的SP,它看起来像这样:

 EXEC   @return_value = [dbo].[sp_Zielstruktur]
    @Auswahl = N'Zielstruktur',
    @Variante_Ident = N'163',
    @Halle = N'56',
    @Funktionsbereich_Ident = N'',
    @Schicht = N''  

在那里工作正常。所以@Funktionsbereich_Ident和@Schicht也是空的。

我必须更改或做什么?

谢谢

0 个答案:

没有答案