JBoss 6 迁移部署小记

2018/07/07 by Jinyang | Filed under 技术相关.

要说迁移部署,其实之前也是运行在jboss下的,不过运行的模式不同   原来只使用了jboss的tomcat  这次使用普通的jboss standalone 的运行模式。

1. 解压模式下运行项目

jboss 默认是使用war包部署运行的,带来的一个问题就是无法增量更新、无法上传图片文件 ;

1. 修改 standalone.xml 添加 auto-deploy-exploded=true 

2. 修改需要解压运行的war文件的解压后的文件夹的名称为 project.war  , 然后 touch project.war.dodeploy ,重启 standalone.sh

 

2. nginx文件夹别名

经过上述调整的解压后的文件夹为  project.war , 对应的请求网址为  域名/project ,如果想使用nginx处理图片等静态文件,因为 project.war 不是 project 文件夹,所以没办法请求到文件;

1. 增加一个  软链接  project  到 project.war

 

3. session id  sessionid 中存在空格的问题

这个版本的jboss的使用 65 个字符串来生成sessionid (SESSION_ID_ALPHABET has to be 65 characters in length) ,其实有 加号 +  减号 –  下划线 _  , 而 加号 + 在url中作为参数传递中会被错误的转化成 空格 ,项目使用sessionid作为key来存储客户信息, redis 不支持key中存在空格(redis自身使用空格 space 作为分隔符   所以不支持允许key中有空格),所以只好去除特殊符号  修改为只使用大小写数字的组合 。

原本默认的为:  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-_

调整修改为:

<property name=”-Dorg.apache.catalina.session.ManagerBase.SESSION_ID_ALPHABET” value=”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678901″/>

 

完整的配置文件参考 standalone.xml 

<?xml version=1.0 encoding=UTF-8?>
<server xmlns=urn:jboss:domain:1.3>
<extensions>
<extension module=org.jboss.as.clustering.infinispan/>
<extension module=org.jboss.as.configadmin/>
<extension module=org.jboss.as.connector/>
<extension module=org.jboss.as.deployment-scanner/>
<extension module=org.jboss.as.ee/>
<extension module=org.jboss.as.ejb3/>
<extension module=org.jboss.as.jaxrs/>
<extension module=org.jboss.as.jdr/>
<extension module=org.jboss.as.jmx/>
<extension module=org.jboss.as.jpa/>
<extension module=org.jboss.as.logging/>
<extension module=org.jboss.as.mail/>
<extension module=org.jboss.as.naming/>
<extension module=org.jboss.as.osgi/>
<extension module=org.jboss.as.pojo/>
<extension module=org.jboss.as.remoting/>
<extension module=org.jboss.as.sar/>
<extension module=org.jboss.as.security/>
<extension module=org.jboss.as.threads/>
<extension module=org.jboss.as.transactions/>
<extension module=org.jboss.as.web/>
<extension module=org.jboss.as.webservices/>
<extension module=org.jboss.as.weld/>
</extensions>
<system-properties>
<property name=org.apache.catalina.session.ManagerBase.SESSION_ID_ALPHABET value=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-_/>
</system-properties>

 

 

 

4. 修改redis支持写入key时存在空格

如果不修改上述的sessionid的生成机制,那就需要修改redis的写入读取机制,把空格转化为其他符号。

public static String SpaceReplace(String strOld){
   String[] split = strOld.split(" ");
   StringBuilder stringBuilder = new StringBuilder();
   for (int i = 0; i < split.length-1; i++) {
      stringBuilder.append(split[i]).append("%20");
   }
   stringBuilder.append(split[split.length-1]);
   String strNew = stringBuilder.toString();
   return strNew;
}

 


Tags: , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

返回顶部