繁体   English   中英

Java Restful Web服务登录凭证失败

[英]Java Restful Web Service Login Credential Failure

因此,我建立了一个Java Web服务来连接到我正在开发的移动android应用程序。 我是Java和Android的新手,但遇到了一些困难。 我已经将Android的登录详细信息发送到Restful Web Service,但是Restful Web Service在尝试验证为用户创建的数据库表中的详细信息时会失败。 我知道这是支票凭证问题,因为当我注释掉支票凭证声明时,它将让我登录。 我无法弄清楚我的代码中的凭证验证语句出了什么问题,有人可以帮忙,那会很棒。 我的Restful服务的Login.class在下面。 我也正在运行所有的tomcat7。

private boolean checkCredentials(String uname, String pwd){

        System.out.println("Inside checkCredentials");
        boolean result = false;
        if(Utitlity.isNotNull(uname) && Utitlity.isNotNull(pwd)){
            try {
                result = DBConnection.checkLogin(uname, pwd);
               // System.out.println("Inside checkCredentials try "+result);
            } catch (Exception e) {
                // TODO Auto-generated catch block
              //  System.out.println("Inside checkCredentials catch");
                result = false;
            }
        }else{
            System.out.println("Inside checkCredentials else");
            result = false;
        }

        return result;
    }

您的代码有几个问题。 主要的问题是,您可以将处理在checkLogin()抛出的所有异常作为常规的“未检出”情况处理。

您是否真的想静默地忽略任何系统故障,并像有效的业务案例一样处理它?

我并不是说这在每种情况下都是错误的,而是要做出明确的设计决策,并且至少记录一些有关异常的信息,以便您可以看到错误之处。

更好的是,将限制条款限制为您真正希望引发的异常。 (即使那样,也请记录有关异常的信息!)

诸如DBConnection.checkLogin()类的静态方法的使用表明了更多的设计问题。 它可能会起作用,并且在某些情况下会很方便,但是从长远来看,它会咬住您。

因此,要查找您的紧迫问题:在catch子句中打印Exception的堆栈跟踪。 还要在调用之后立即在try块中记录checkLogin()调用的结果。 如果打印了该信息,则不会引发Exception,并且您的问题出在checkLogin()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM