归档

tomcat启动不报错但是服务也没有启动成功

之前遇到了一次tomcat启动时没有报任何错误,但是服务也没有启动成功,访问不了,后来同事帮忙在网上找到这样一篇文章,这里记录下
DEBUGGING THE DREADED “SEVERE: ERROR LISTENERSTART” AND “SEVERE: ERROR FILTERSTART” TOMCAT ERROR MESSAGES

具体操作:

  1. 中web application下的WEB-INF/classes路径中创建logging.properties文件,其内容为:

    1
    org.apache.catalina.core.ContainerBase.[Catalina].level = INFO //INFO级别可以更改
    org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler
  2. 启动服务,这个时候错误就会打印到控制台(catalina.out)

Jmesa使用总结-自定义Toolbar

web.xml引入jmesa

1
2
3
4
5
6
7
8
<context-param>
<param-name>jmesaMessagesLocation</param-name>
<param-value>messages</param-value>
</context-param>
<context-param>
<param-name>jmesaPreferencesLocation</param-name>
<param-value>jmesa.properties</param-value>
</context-param>

Maven多模块中关于final static常量的一个坑

【背景】

多个独立的web项目合并到同一个Maven多模块项目中,目的是抽取公共模块,减少维护成本。
各个web项目的客户编码有不同的前缀,所以中各个web项目中都定义了一个常量,但是各个站点的值是不同的,中合并到一个Maven多模块项目后,抽取公共部分时由于中公共部分代码中需要用到这个常量,所以就随便将其中一个项目的该常量拿到了公共模块中,而各个站点的该常量保留,可是项目真正启动后,当使用该常量时发现其值一直是公共模块定义的,导致各个站点的客户编码使用了同样的前缀,从而出现了问题。

【结论】

如果公共模块中一个常量是各个站点都需要使用的,但是中各个单点的值又不一致,那么千万不要将该常量定义成final的。

【解决方法】

  • 去除final定义即可
  • 将该常量定义到各个项目的配置文件中

【举例】

Mysql递归查询

1
--创建表
 
DROP TABLE IF EXISTS `t_areainfo`;
CREATE TABLE `t_areainfo` (
 `id` int(11) NOT '0' AUTO_INCREMENT,
 `level` int(11) DEFAULT '0',
 `name` varchar(255) DEFAULT '0',
 `parentId` int(11) DEFAULT '0',
 `status` int(11) DEFAULT '0',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8;

Node.js常用模块和工具

工具:
nvm和n
cloud9

全局模块:
express
koa
meteor
hexo:静态博客框架,支持Markdown

项目模块:
Pomelo:网易开源基于 Node.js 的游戏服务端框架
bluebird/q/then/when/async/eventproxy:异步库, promise
coffee-script
colors:unix终端下显示颜色的库,利于调试和一些特殊场景
mkdirp:一次性建立目标文件夹,而不是mkdir…cd…mkdir…cd…mkdir这样的模式

Drools中常用但易混淆的概念

KIE/Drools/jBPM

官方的一句话解释了比较到位:
The process of researching an integration knowledge solution for Drools and jBPM has simply used the “droolsjbpm” group name. This name permeates GitHub accounts and Maven POMs. As scopes broadened and new projects were spun KIE, an acronym for Knowledge Is Everything, was chosen as the new group name. The KIE name is also used for the shared aspects of the system; such as the unified build, deploy and utilization.
kie

KieServices/KieRepository/KieProject/KieContainer/KieModule/KieBase/KieSession区别,部分转自Drools入门系列(六)——KIE之基础API详解

使用Maven模板创建项目

列出Maven模板列表(1000+),并选择模板创建项目

mvn archetype:generate

导出Maven模板列表到txt

mvn archetype:generate > templates.txt

导入Eclipse

mvn eclipse:eclipse

根据常用模板创建项目

maven-archetype-quickstart (Java Project)

1
$ mvn archetype:generate -DgroupId=com.yiibai.core -DartifactId=ProjectName -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

maven-archetype-webapp (Java Web Project)

1
$ mvn archetype:generate -DgroupId=com.yiibai.web -DartifactId=ProjectName -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false