代码之家  ›  专栏  ›  技术社区  ›  Ives Rodriguez

计算器restful错误部署

  •  0
  • Ives Rodriguez  · 技术社区  · 8 年前

    “uts.dae.model.rest.Calculadora”类的源

     package uts.dae.model.rest;
    
     import javax.ejb.Stateless;
     import javax.ws.rs.GET;
     import javax.ws.rs.Path;
     import javax.ws.rs.QueryParam;
    
      /**
      *
      * @author x2010s
      */
    
      @Stateless
    
      @Path("/calculadora")
    
    
      public class Calculadora {
    
    
      @GET 
      public String Suma(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
      return Double.toString($Suma(num1,num2));
     }
      @Path("calculadora/suma")
        double $Suma(double num1,double num2) {
        double resultado;
        resultado = num1 + num2;
        return resultado; 
     }
    
    @GET 
    public String Resta(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
    return Double.toString($Resta(num1,num2));
     }
     @Path("calculadora/resta")
        double $Resta(@QueryParam("num1") double num1,@QueryParam("num2") double num2) {
        double resultado;
        resultado = num1 - num2;
        return resultado;
    
     }
    
     @GET    
     public String Multiplicacion(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
     return Double.toString($Multiplicacion(num1,num2));
      } 
     @Path("calculadora/multiplicacion")
       double $Multiplicacion(double num1,double num2) {
        double resultado;
        resultado = num1 * num2;
        return resultado;
    
    }  
    
    
    
     @GET 
     public String Division(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
     return Double.toString($Division(num1,num2));
     }
     @Path("calculadora/Division")
      double $Division(double num1,double num2) {
        double resultado;
        resultado = num1 / num2;
        return resultado;
    
    }
    
    
    @GET 
    public String Modulo(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
     return Double.toString($Modulo(num1,num2));
     }
    @Path("calculadora/Modulo")
    double $Modulo(@QueryParam("num1") double num1,@QueryParam("num2") double num2) {
        double resultado;
        resultado = num1 % num2;
        return resultado;
    
    }
    }
    

    部署时,如果它们具有不同的url,则会发生以下错误:

    [[警告]子资源模型,双uts。dae。模型休息加尔各答多拉$Suma(double,double)必须是公共作用域,否则将忽略该方法;source='classUTS。dae。模型休息Calculadora,[警告]子资源模型,双uts。dae。模型休息加尔各答多拉$multiplication(double,double)必须是公共作用域,否则将忽略该方法;source='classUTS。dae。模型休息Calculadora,[警告]子资源模型,双uts。dae。模型休息加尔各答多拉$Resta(double,double)必须是公共作用域,否则将忽略该方法;source='classUTS。dae。模型休息Calculadora,[警告]子资源模型,双uts。dae。模型休息加尔各答多拉$模(double,double),必须是公共作用域,否则将忽略该方法;source='classUTS。dae。模型休息Calculadora,[警告]子资源模型,双uts。dae。模型休息加尔各答多拉$除法(double,double)必须是公共作用域,否则将忽略该方法;source='classUTS。dae。模型休息Calculadora,[致命]一个资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。Suma(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。Resta(double,double)位于匹配的正则表达式/计算器。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f“,[致命]资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。Suma(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。匹配正则表达式/计算器的乘法(double,double)。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f“,[致命]资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。Suma(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。匹配正则表达式/计算器处的除法(double,double)。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f“,[致命]资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。Suma(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。匹配正则表达式/计算器处的模(double,double)。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f“,[致命]资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。Resta(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。匹配正则表达式/计算器的乘法(double,double)。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f“,[致命]资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。Resta(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。匹配正则表达式/计算器处的除法(double,double)。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f“,[致命]资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。Resta(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。匹配正则表达式/计算器处的模(double,double)。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f“,[致命]资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。乘法(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。匹配正则表达式/计算器处的除法(double,double)。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f“,[致命]资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。乘法(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。匹配正则表达式/计算器处的模(double,double)。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f“,[致命]资源模型的HTTP方法GET和input mime类型具有不明确的(子)资源方法,如Java methods public Java中的“@Consumes”和“@Products”注释所定义。lang.字符串uts。dae。模型休息加尔各答多拉。除法(double,double)和公共java。lang.字符串uts。dae。模型休息加尔各答多拉。匹配正则表达式/计算器处的模(double,double)。这两个方法产生和使用完全相同的mime类型,因此它们作为资源方法的调用总是会失败。;source='org。玻璃鱼。运动衫服务器模型RuntimeResource@1f7972f']

    1 回复  |  直到 8 年前
        1
  •  0
  •   ali4j    8 年前

    将所有@路径注释从以“$”为前缀的方法移动到这些公共方法,如下所示:

    @GET
    @Path("calculadora/Modulo")
    public String Modulo(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
        return Double.toString($Modulo(num1,num2));
    }
    
    double $Modulo(@QueryParam("num1") double num1,@QueryParam("num2") double num2) {
        double resultado;
        resultado = num1 % num2;
        return resultado;
    }
    

    还可以看看 this 所以发布。

    问题是,由于所有公共方法都是带有@GET注释的资源方法,因此如果发送http GET,它们没有@Path注释,并且它们的参数列表是相同的 请求“/calculadora”url应该调用哪一个方法是不明确的,因此将@路径注释移动到公共方法将解决这个问题。

    推荐文章