2018-04-26 13:35
@walking_ 非常感谢你,不过我遇到了新的问题,就是在保存session的时候,在页面怎么也取不到;对于jfinal 的 me.add(new SessionInViewInterceptor()); 这句代码应该怎么使用呢?
2018-04-03 10:45
@JFinal 感谢波总提示;我的问题解决了;
2018-03-22 09:02
@JFinal 在BaseConfig里面配置好了的,正常的从浏览器请求过去经过路由然后到controller操作数据库是可以正常使用增删改查的;但是MQ接受到消息进行数据库操作就报数据操作config为null;
一下是我的配置文件代码:
/**
* 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法 详见 JFinal 俱乐部:
* http://jfinal.com/club
*
* API引导式配置
*/
public class BaseConfig extends JFinalConfig {
/**
* 配置常量
*/
public void configConstant(Constants me) {
// 加载少量必要配置,随后可用PropKit.get(...)获取值
PropKit.use("config.txt");
}
/**
* 配置路由
*/
public void configRoute(Routes me) {
// me.setBaseViewPath("/views");
me.add("/", IndexController.class);
}
public void configEngine(Engine me) {// 定义通用的模板
}
public static DruidPlugin createDruidPlugin() {
DruidPlugin dp = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());
WallFilter wall = new WallFilter();
wall.setDbType("mysql");
dp.addFilter(wall);
return dp;
}
/**
* 配置插件
*/
public void configPlugin(Plugins me) {
// 配置C3p0数据库连接池插件
DruidPlugin druidPlugin = createDruidPlugin();
me.add(druidPlugin);
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
// 所有映射在 MappingKit 中自动化搞定
_MappingKit.mapping(arp);
arp.setShowSql(true);// 控制台显示sql
me.add(arp);
}
/**
* 配置全局拦截器
*/
public void configInterceptor(Interceptors me) {
me.add(new SessionInViewInterceptor());
// 事务控制器
me.add(new TxByActionKeyRegex("(.*save.*|.*update.*|.*del.*|.*add.*)", true));
me.add(new TxByMethodRegex("(.*save.*|.*update.*)"));
me.add(new TxByMethods("save", "update"));
me.add(new TxByActionKeys("/tx/save", "/tx/update"));
}
/**
* 配置处理器
*/
public void configHandler(Handlers me) {
me.add(new ContextPathHandler("contextPath"));
}
}
2018-03-08 13:52
@lyh061619 因为业务层中的public static final XXServer me = new XXServer(); 这个me对象是一开始就new在了内存中的,意味着所有的调用都是在使用同一个对象,而并不会再去new一个新对象啊!
2018-03-08 10:35
@lyh061619 你这样也会出现问题吧?因为全局变量,static关键字也修饰了的;在服务启动的时候就是先初始化这些全局变量字段的;如果你在其他地方统一调用的话就出现多线程同时调用一个对象的问题吧?
2018-01-02 10:34
@JFinal 感谢波总的解答,但是我用了上面的方法后,出现了一个问题,就是在iockit里面的beanMap报空指针,我想问一下,这个beanMap怎么初始化?下面是错误代码2018-01-02 10:12:32
[ERROR]-[Thread: qtp294184992-19]-[com.jfinal.core.ActionHandler.handle()]: /
java.lang.NullPointerException
at com.zhougao.demo.consumer.controllerFactory.ioc.IocKit.getBean(IocKit.java:32)
at com.zhougao.demo.consumer.controllerFactory.ioc.InjectUtils.inject(InjectUtils.java:50)
at com.zhougao.demo.consumer.controllerFactory.ioc.InjectUtils.inject(InjectUtils.java:23)
at com.zhougao.demo.consumer.controllerFactory.IocControllerFactory.getController(IocControllerFactory.java:41)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:78)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:73)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Unknown Source)
2017-12-29 16:17
@无涯 我是怀疑自身的fastjson的jar包和jfinal里面的冲突了;具体的我也没去排查;需要自行测试排查了;不过直接能用fastjson就可以了;反正他里面也是直接用的;