|
2017-09-04 16:50:45 DataUtils.getConnection:java:comp/env/x5,jdbc:mysql://127.0.0.1:3306/x5, UserName=root@localhost, MySQL Connector Java
{"DEPTNO":"12","PWD":":e0d34b5ab5e5f0831ac99a9be6072f8e","ROLEID":"1","UID":"admin","UNAME":"管理员"}
java.lang.NullPointerException
at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)
九月 04, 2017 4:50:45 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet WeX5_Baas_Servlet threw exception
这个请求报500错误,但是我把请求复制到浏览器,可以返回数据,返回的在图第三个是截图,请问是什么原因,为什么会这样呢?,一开始登录的时候
我执行了这个方法
public static JSONObject isLoginSuccess(JSONObject params, ActionContext context) throws SQLException, NamingException {
String loginName=params.getString("username");
String loginPassword=params.getString("password");
String userType=params.getString("userType");
Connection conn = context.getConnection(DATASOURCE);
JSONObject result = new JSONObject();
String tableName = "inside_user";
HttpServletRequest request = (HttpServletRequest)context.get(ActionContext.REQUEST);
try{
/*if(StringUtils.isNotBlank(userType)){
if(userType.equals("1")){
tableName = "inside_user";
}else if(userType.equals("2")){
tableName = "outside_user";
}
}
if(StringUtils.isNotBlank(tableName)){*/
String sql = "SELECT ord.* " + " FROM "+tableName+" ord WHERE ord.UID =? and ord.PWD = ?";
List<Object> obj=new ArrayList<Object>();
obj.add(loginName);
obj.add(loginPassword);
Table table= DataUtils.queryData(conn, sql, obj, null, null, null);
Collection<String> names = table.getColumnNames();
List<Row> rows = table.getRows();
for (Row row : rows){
JSONObject person = new JSONObject();
for (String name : names){
person.put(name, row.getValue(name));
}
result.put("p", JSON.toJSON(person));
request.getSession().setAttribute("user", JSON.toJSON(person));
}
if (rows.size() == 1){
result.put("flag",true);
}else{
result.put("flag",false);
result.put("message","用户名密码错误");
}
/*}else{
result.put("flag",false);
result.put("message","用户类型不能为空!");
}*/
System.out.println(request.getSession().getAttribute("user"));
return result;
}catch(Exception e){
e.printStackTrace();
result.put("flag",false);
result.put("message","网络错误,请联系管理员");
}
finally {
conn.close();
}
return result;
}
方法设置了session,然后我在在登录之后,调用
justep.Baas.sendRequest({
"url" : "/author/userService",
"action" : "test",
"async" : false,
"params" : null,
"success" : function(r) {
if(!!r){
user = r.user;
alert(user);
}
}
});
test方法的代码是
public static JSONObject test(JSONObject params, ActionContext context) {
JSONObject ret = new JSONObject();
Object obj = null;
try {
HttpServletRequest request = (HttpServletRequest)context.get(ActionContext.REQUEST);
obj = request.getSession().getAttribute("user");
if(obj != null){
ret.put("user", obj);
}else{
ret.put("user",null);
}
} catch (Exception e) {
ret.put("user",null);
}
return ret;
}
然后就报截图中的错误,但是我编译了好多次并重启了,直接访问在浏览器是没有错的,就是第三个截图中的返回了数据
|
|