jfinal

tomcat 集群 Redis MySQL 分布式消息发送 Redis锁,MySQL锁问题

大憨熊 提交于 2019-12-06 22:18:15
开发过程中,遇到消息发送功能,将要发送的消息对象先保存在Redis 队列 +内存队列(双保险),通过多个tomcat集群Quartz 轮询Job(两个集群都有)将消息存储到MySQL(5.5.51)发送表中,再通过多个tomcat集群Quartz 轮询发送Job 查询数据库,进行消息发送。其中遇到的几个问题: 1、多个实例job读取Redis,保存的发送数据重复保存。此问题使用Redis的分布式锁setnx 解决;通过java实现分布式锁RedisLock(部分代码参考网络); import java.util.Random; import org.apache.log4j.Logger; import com.vstation.sys.config.FilesConfig; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.Transaction; public class RedisLock { private static final Logger log = Logger.getLogger(RedisLock.class); //加锁标志 public static final String LOCKED = "TRUE";

JFinal 国际化 简单实现 beetl

三世轮回 提交于 2019-12-06 16:28:44
JFinal自身带有国际化类com.jfinal.i18n.I18N 文档里没有实现的方法,自己实现了一下,在这里分享给大家,哪里有改进的地方请 @eyelee 1、编写properties资源文件 yourfilename_zh_CN.properties test=您好 yourfilename_en_US.properties test=hello 2、在JFinal配置类,配置常量中 public void configConstant(Constants me) { ... //后面两个参数根据自己情况添加默认语言国家 I18N.init("youfilename", null, null); ... } 如果资源文件不在classpath下面那么需要加上包名称 ,例如 I18N.init("i18n.youfilename", null, null); 3、在页面或者类中调用 页面中调用I18N.getText("key"); 在controller建议使用Controller.getText("key"); 4、做到这里并不能实现根据用户所用的语言对应显示,这是因为还没有实现自动切换,我们可以通过配置一个拦截器实现 定义一个全局过滤器GlobalInterceptor,并在JFinal配置 /*** * * @author yinjun622 2013-05-25 *

JFinal 中使用 Dubbo —— 1 改造JFinal Demo

余生长醉 提交于 2019-12-06 15:49:45
1. Dubbo Demo概述 此Demo实际在2014年上半年就已经完成了,只是到最近才有时间和心情写完此文。同时,将JFinal升级到了1.9,并采用Maven构建项目。 另外,仔细想了想,Provider其实可以不依托Tomcat之类的Web容器启动,并验证成功。 1.1. JFinal Spring插件 有很多人认为,既然有了JFinal,为什么还要Spring。殊不知一些基于Spring的很牛X的东东集成到JFinal中能够事半功倍。比如Dubbo这个高性能优秀的服务框架,它基于Spring,于是JFinal提供的Spring插件就能更方便地将Dubbo集成进咱们的程序中,成为高大上的程序。 1.2. 基于jfinal_demo_for_maven 构建本Demo的目的只为了向读者演示如何将咱们的程序改造成基于Dubbo的应用,选择JFinal的Demo,使得JFinal读者可以快速进入状况,而且笔者也能省下开发Demo功能的时间。 1.3. 项目依赖及感谢 公司 / 组织 产品 说明 JFinal JFinal 1.9 http://www.jfinal.com/ JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。 在拥有Java语言所有优势的同时再拥有ruby

使用Freesql简单地实现多条件查询

ぃ、小莉子 提交于 2019-12-06 07:43:04
在实际应用中我们经常会遇到多条件查询的情景,以往的解决方案是在java中对各个参数值进行非空之类的判断,再进行sql及参数的拼凑。 其实还有更简单的解决方法的--用Freemarker。Freemarker可以轻松的使用if之类的进行判断,当if条件时再使用指定的sql片段。而Freesql就是在Freemarker的基础上,配合java中sql的参数设置进行的简单封装,可以简单方便的编写动态的sql。 如何使用Freesql 本文介绍如何在JFinal中使用Freesql。Freesql的jar包可以从 http://git.oschina.net/jse7en/Freesql/ 中下载。Freesql默认提供对JFinal的支持,在JFinal中可以简单的使用JFinal。 初始化Freesql 在JFinalConfig中添加Freesql插件 public class ProjectConfig extends JFinalConfig { //... @Override public void configPlugin(Plugins me) { //Freesql默认使用web根目录下的freesql作为模板存放根目录 FreesqlPlugin freesql = new FreesqlPlugin(); /

Jfinal集成Spring插件

可紊 提交于 2019-12-05 22:04:21
最近公司使用Jfinal开发项目,不知道什么原因Jfinal和其他的几个插件集成的时候,事物管理并不那么随心,所以就选择了Spring作为Jfinal的插件来管理事物.废话不多说,直接上代码. public class MyConfig extends JFinalConfig{ @Override public void configConstant(Constants me) { IocKit.processJFinalConfig(this); loadPropertyFile("db.properties"); me.setEncoding("UTF-8"); me.setDevMode(getPropertyToBoolean("devMode", true)); } @Override public void configRoute(Routes me) { System.out.println("configRoute"); me.add("/blog", BlogController.class); } @Override public void configPlugin(Plugins me) { SpringPlugin springPlugin = new SpringPlugin("classpath*:spring/applicationContext-*

对AutoTableBindPlugin的一点改造使它支持多数据源

淺唱寂寞╮ 提交于 2019-12-05 18:20:19
在使用jFinal的时候因为不想每个Model都一个个去写映射关系,因此使用了 @绝望的八皮 的AutoTableBindPlugin来自动绑定Model与表之间的映射,但是在jFinal升级到1.6后AutoTableBindPlugin不支持多数据源,因此对AutoTableBindPlugin做了小小的一点改造使它支持多数据源。 因为在使用AutoTableBindPlugin的时候它会检索到所有继承Model类的子类来进行绑定映射关系。因此在配置多个AutoTableBindPlugin的时候前面配置的AutoTableBindPlugin会加载后面配置的AutoTableBindPlugin中其他数据源的Model这个时候就报错了,提示找不到表了! 我的解决办法是添加一个包扫描的方法以及在AutoTableBindPlugin的构造方法中添加一个configName的参数 public class AutoTableBindPlugin extends ActiveRecordPlugin { protected final Logger log = Logger.getLogger(getClass()); @SuppressWarnings({"unchecked" }) private List<Class<? extends Model>>

JFinal整合CKFinder

早过忘川 提交于 2019-12-05 05:52:30
使用JFinal对之前的系统进行重构,老系统使用了CKEditor+CKFinder编辑器,发现在web.xml中配置ConnectorServlet会被JFinalFilter过滤处理,而且使用JFinal之后也不想在web.xml中增加额外的配置,所以尝试的写了JFinal整合CKFinder的Handler,由于我对CKEditor+CKFinder不熟悉,可能整合的并不完整,这里只当参考,欢迎提供更好的解决方案~~ package com.jfinal.ext.handler; import java.util.Enumeration; import java.util.Properties; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ckfinder.connector.ConnectorServlet; import com.hikvision.util.base.PropertiesKit; import com.jfinal.handler.Handler;

jfinal-3.1_demo_for_maven 导入报 NoClassDefFoundError: javax/faces/webapp/FacesServlet

六眼飞鱼酱① 提交于 2019-12-04 23:02:05
用IDEA 导入 jfinal-3.1_demo_for_maven ,运行起来竟然报错 Caused by: java.lang.NoClassDefFoundError: javax/faces/webapp/FacesServlet 继续往下看,返现有两个类不找不到,添加依赖 在阿里云的仓库找着两个jar包: http://maven.aliyun.com/nexus/#welcome <!--<dependency>--> <!--<groupId>org.wildfly.swarm</groupId>--> <!--<artifactId>jsf-api</artifactId>--> <!--<version>1.0.2.Final</version>--> <!--</dependency>--> <!--<dependency>--> <!--<groupId>javax.faces</groupId>--> <!--<artifactId>jsf-impl</artifactId>--> <!--<version>1.2-20</version>--> <!--</dependency>--> 程序能跑起来了,但是在初始化工厂还是报错 于是怀疑不是缺包的问题了,因为一个demo不会犯这么低级的错误 后来看到这里 有人说,IDE会根据自己的规则来自动修改Web

jfinal与jqgrid结合实例。

假如想象 提交于 2019-12-04 13:25:03
直接上代码: index.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <link rel="stylesheet" type="text/css" media="screen" href="css/jqGrid/jquery-ui-1.7.2.custom.css" /> <link rel="stylesheet" type="text/css" media="screen" href="css/jqGrid/ui.jqgrid.css" /> <script src="js/jqGrid/js/json2.js" type="text/javascript"></script> <script src="js/jqGrid/js/jquery-1.4.2.min.js" type="text/javascript"></script> <script src="js/jqGrid/js/jquery.layout.js" type="text/javascript"></script> <script src="js/jqGrid/js/jquery-ui

Jfinal使用Velocity视图部署到tomcat上velocity.log (Permission denied)解决

醉酒当歌 提交于 2019-12-03 17:49:11
起因: 自己在搭建一个关于 EVE Online 游戏 的网站,框架用的是Jfinal的,页面模板用的是velocity,在自己开发环境上一切正常,然后部署到线上环境后出现错误。线上的环境是Ubuntu14+Nginx+Mysql+Tomcat。 错误: Caused by: java.io.FileNotFoundException: velocity.log (Permission denied) 定位: 网上也有类似许多的问题,也有分析,我就不细说。总结起来就是: 1.使用时没有设置velocity log的任何参数,因为系统中存在Log4j的包,所以会使用Log4jChute做为Log记录的对象返回。 2.在初始化Log4jChute时,没有设置logger.name,初始化Logger时,会使用默认的velocity.log做为文件输出路径 3.File file = new File("velocity.log"),是基于当前jvm的current work,也就是user.dir属性。 而我又是将运行web跑在普通用户权限,但是安装tomcat是Root,所以权限出错。 所以第一次访问网站页面的时候当渲染页面时候,Velocity就会尝试建立日志,但是由于上面的问题无法创建。 解决方案 1.建立velocity的配置文件。(由于我也是第一次使用