双击startup.bat,启动不了tomcat
在cmd中运行提示CATALINA_HOME没有配置好,就配置了CATALINA_HOME和CATALINA_BASE,配置之后又出现JAVA_HOME environment variable is not defined correctly
============================我是一条华丽丽的分割线=============================
解决方法如下:
1、JAVA_HOME中的路径不能使用分号结尾,如
E:\Java\jdk1.6.0_10;
这样写就会出现提示CATALINA_HOME或是JAVA_HOME没有配置好的错误,,还有就是JAVA_HOME的路径一定不要写成了JRE的路径
2、CATALINA_BASE,CATALINA_HOME,TOMCAT_HOME中的路径不能以"\"结尾,如
E:\Java\apache-tomcat-6.0.29\
这样写就会出现java.util.logging.ErrorManager的错误,屏幕一闪而过
正确的写法:
JAVA_HOME E:\Java\jdk1.6.0_10
CATALINA_BASE E:\Java\apache-tomcat-6.0.29
CATALINA_HOME E:\Java\apache-tomcat-6.0.29
TOMCAT_HOME E:\Java\apache-tomcat-6.0.29
注意这里路径的标点符号,不能写多了,也不能写少了
公司想把图片从阿里云的服务器上迁移到自己的服务器,顺便建立一套新的图片存储系统。
开始打算使用FastDFS,但是FastDFS有自己的文件名生成规则,我们网站已经有了很多图片,如果每个图片都重新生成的话,工作量比较大。由于时间原因,临时采用了nginx来实现。
采用了3台服务器,每台服务器上都安装了nginx。用户访问相应图片时,根据自己定义的nginx location的hash规则,2012年的图片映射到一台机器上,2013年的映射到另一台机器上。
由于nginx已经支持了web缓存,考虑到图片可能会被临时替换,所以需要一个可以清除缓存的组件ngx_cache_puge。
#现在并解压 wget http://labs.frickle.com/files/ngx_cache_purge-2.0.tar.gz tar zxvf ngx_cache_purge-2.0.tar.gz #在安装nginx的时候 增加其组件 ./configure --add-module=../ngx_cache-2.0 --prefix=/usr/local/nginx make make install
我开始装的是purge-1.0在make的时候报错,后来考虑是nginx版本不兼容的问题,换成了2.0之后就不报错了。
废话不多说,直接上nginx的配置文件。
入口nginx配置 负责分发到两天机器上
#配置缓存目录 两个目录必须在同一分区
proxy_temp_path /home/data0/proxy_temp_path;
proxy_cache_path /home/data0/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
#两天图片服务器上面都通过nginx部署了web服务
upstream pic1{
server 192.168.2.6:8080;
}
upstream pic2{
server 192.168.2.2:8080;
}
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#这个要放在前面,以免被提前拦截了,用来清除缓存的
location ~ /purge(/.*){
#allow 127.0.0.1;
#allow 192.168.2.6;
#deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
location ~ /{
proxy_cache cache_one;
proxy_cache_valid 200 304 12h;
proxy_cache_valid 301 302 1m;
proxy_cache_valid any 1m;
#如果是图片路径总包含/2013/ 则映射到pic1
proxy_cache_key $host$uri$is_args$args;
if ( $request_uri ~* "\w*\/2013\/\w*\.(ico|gif|bmp|jpg|jpeg|png|swf)$"){
proxy_pass http://pic1;
}
if ( $request_uri ~* "\w*\/2012\/\w*\.(ico|gif|bmp|jpg|jpeg|png|swf)$"){
proxy_pass http://pic2;
}
proxy_pass http://pic2;
}
}
图片服务器nginx配置,这个类似fastdfs中的storage节点,会映射到服务器的/home/www路径
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /home/www;
index index.html index.htm;
}
}
这样,通过路径就能访问到图片服务器上的图片。并且会对图片做12小时的缓存。当你需要清除缓存的时候,只要在图片的路径前面加一个/purge,再执行下即可。如图片路径http://img.naomi.cn/pic/2012/100.jpg 那么清除缓存的路径就是http://img.naomi.cn/purge/pic/2012/100.jpg。
已有 0 人发表留言,猛击->>这里<<-参与讨论
ITeye推荐
- —软件人才免语言低担保 赴美带薪读研!—
今天遇到一个问题,在Webwork 2.2里面给一个Action的result传多个参数:
原先配置如下
<result name="success" type="redirect">/some.action?field1=${field1}&field2=${field2}</result>
</action>
运行时候出现如下提示:
The reference to entity "field2" must end with the ';' delimiter.
我本以为是OGNL的问题,四处搜寻,不得其解……看了DTD也没有发现问题。
后来修改过程中突然发现原来是SAX解析器出错,我这才想到可能是XML的问题。
经过再三查询得到解决方案:
使用"&"代替"&",原理和HTML中的转义相同,我居然忘记了XML的语法规范,惭愧。
配置如下:
<result name="success" type="redirect">/some.action?field1=${field1}&field2=${field2}</result>
下边是另外一个人的:
今天在用struts2在做项目时候,从一个action我想跳转到另一个action,并且呢得带上值。说说我的做法吧,首先你得在你的第一个action中这个id必须要有set、get方法。
跳转时你的struts.xml:
(方法一):
<result name="topic" type="redirect">/topicAction!findTopics.do?topicId=${topicId}</result>
(方法二):
<result name="topic" type="redirect-action">
<param name="actionName">findTopics</param>
<param name="topicId">${topicId}</param>
</result>
如果是多个参数的话,继续再加几个<param>就行了,对于(方法一)如果是多个参数的怎么办? <result name="topic" type="redirect">/topicAction!findTopics.do?topicId=${topicId}&elementId=${elementId}</result>
这不就行了。