程序输出了Unexpected Exception caught setting 'ticket' on 'class com.its.cas.permission.action.LoginAction:Error setting expression 'ticket' with value ['UzhTQUZxK',]
例:我发送了一个请求1为http的请求,请求1成功后会发送请求2为http请求并往请求2后面拼接一个ticket,ticket的参数是请求1成功后对方往我们请求2拼接的。都是get请求
问题:我这边要获取到ticket的参数并回调SDK接口,我debug运行,请求经过过滤器和拦截器之后来到刚到login的方法就输出Unexpected Exception caught setting 'ticket' on 'class com.its.cas.permission.action.LoginAction:Error setting expression 'ticket' with value ['UzhTQUZxK',],获取及调用步骤如下:
public class LoginAction(){
public String login(){
HttpServletRequest request = ServletActionContext.getRequest();
AuthClient authclient = new AuthClient
String ticket = request.getParametet("ticket");
String info = authClient.checkInfo(ticket );
System.out.println(info);
}
}
随后debug走到String info = authClient.checkInfo(ticket );就结束了,控制台也没有输出错误信息。当我将struts.devMode改为false,程序刚走到login的时候没有输出之前的错误信息了,但是走到String info = authClient.checkInfo(ticket );依旧结束,仍然没有错误信息。随后我将ticket写死,直接String info = authClient.checkInfo("UzhTQUZxK");程序依旧走到这里停止。最后我在本类里做了一下测试,如下,main()里就可以正常输出,请问各位这是为什么。
public class LoginAction(){
public String login(){
HttpServletRequest request = ServletActionContext.getRequest();
AuthClient authclient = new AuthClient
String ticket = request.getParametet("ticket");
String info = authClient.checkInfo(ticket );
System.out.println(info);
}
public static void main (String[] args){
String ticket = "UzhTQUZxK";
String info = authClient.checkInfo(ticket );
System.out.println(info);
}
}
看看ticket的值是不是获取错误了调试看看吧
望采纳
如果你已经确认ticket的值正确地从请求URL中获取到了,那么问题可能是出现在authClient.checkInfo(ticket)这一行上。你可以检查一下:
AuthClient是否被正确实例化了,且其checkInfo方法被正确地实现。
authClient.checkInfo(ticket)这一行上是否发生了异常,可以在这一行后面加上try-catch语句来捕获异常并打印出异常信息,以便进行调试。
如果在这一行上并没有抛出异常,但是程序却停止运行了,那么可能是因为authClient.checkInfo方法内部卡住了,你可以打一个断点进入该方法并单步调试,看看是哪一步出现了问题。