AModule.java
import com.hk.entitys.hegui.Answer;
import org.nutz.lang.util.NutMap;
import org.nutz.log.Log;
import org.nutz.log.Logs;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import javax.servlet.http.HttpServletRequest;
import java.sql.SQLException;
@At("/a")
public class AModule extends BaseModule {
private static final Log log = Logs.get();
@Ok("json")
@At("/test")
public Object testA(HttpServletRequest request) throws SQLException {
NutMap re = new NutMap().setv("ok", false);
Integer questionId = 72;
BModule bModule = new BModule();
Answer answer = bModule.queryAnswers(questionId).get(0);
return re.setv("ok", true).setv("data", answer).setv("msg", "查询成功");
}
}
BModule.java
import com.hefupb.hegui.entitys.hegui.Answer;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.log.Log;
import org.nutz.log.Logs;
import org.nutz.mvc.annotation.At;
import java.sql.SQLException;
import java.util.List;
@At("/b")
public class BModule extends BaseModule {
private static final Log log = Logs.get();
public List<Answer> queryAnswers(Integer questionId) throws SQLException {
log.debug("questionId: " + questionId);
Sql sql = Sqls.create("SELECT * FROM t_answer WHERE id = @questionId");
sql.params().set("questionId", questionId);
sql.setCallback(Sqls.callback.entities());
log.debug("sql: "+sql);
sql.setEntity(dao.getEntity(Answer.class));
dao.execute(sql);
return sql.getList(Answer.class);
}
}
错误信息:
2018-01-22 12:52:35,169 [http-nio-8081-exec-4] DEBUG org.nutz.mvc.impl.UrlMappingImpl - Found mapping for [GET] path=/a/test : AModule.testA(AModule.java:22)
2018-01-22 12:52:35,177 [http-nio-8081-exec-4] DEBUG org.nutz.ioc.impl.NutIoc - Get 'aModule'<class com.hefupb.hegui.modules.AModule>
2018-01-22 12:52:35,178 [http-nio-8081-exec-4] DEBUG org.nutz.ioc.impl.NutIoc - >> Load definition name=aModule
2018-01-22 12:52:35,178 [http-nio-8081-exec-4] DEBUG org.nutz.ioc.loader.combo.ComboIocLoader - Found IocObject(aModule) in AnnotationIocLoader(packages=[com.hefupb.hegui.modules])
2018-01-22 12:52:35,178 [http-nio-8081-exec-4] DEBUG org.nutz.ioc.impl.NutIoc - >> Make...'aModule'<class com.hefupb.hegui.modules.AModule>
2018-01-22 12:52:35,179 [http-nio-8081-exec-4] DEBUG org.nutz.ioc.impl.ScopeContext - Save object 'aModule' to [app]
2018-01-22 12:52:35,179 [http-nio-8081-exec-4] DEBUG org.nutz.ioc.aop.impl.DefaultMirrorFactory - Load class com.hefupb.hegui.modules.AModule without AOP
2018-01-22 12:52:35,184 [http-nio-8081-exec-4] DEBUG org.nutz.ioc.impl.NutIoc - Get 'dao'<>
2018-01-22 12:52:35,184 [http-nio-8081-exec-4] DEBUG com.hefupb.hegui.modules.BModule - questionId: 72
2018-01-22 12:52:35,248 [http-nio-8081-exec-4] DEBUG com.hefupb.hegui.modules.BModule - sql: SELECT * FROM t_answer WHERE id = 72
2018-01-22 12:52:35,250 [http-nio-8081-exec-4] WARN org.nutz.mvc.impl.processor.FailProcessor - Error@/a/test :
java.lang.NullPointerException
at com.hefupb.hegui.modules.BModule.queryAnswers(BModule.java:20)
at com.hefupb.hegui.modules.AModule.testA(AModule.java:25)
at com.hefupb.hegui.modules.AModule$FM$testA$cdaa9d49c1fdb69706b49b81bfece3a4.invoke(AModule.java)
at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:30)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:67)
at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)