前几篇文章给大家介绍了如何在本地搭建openshift环境,以及如何部署PHP程序,今天给大家介绍一下如何部署java程序,这里以开源java博客B3log-solo为例。

约定

1、已有OpenShift账户,并已经创建了Jboss7APP。

2、APP已经添加了MYSQL-5.1。

3、本地已经安装JAVA(jdk)环境。

准备

1、B3log-solo-mysql-0.5.5安装包,解压到D盘根目录。

2、通过SSH连接到openshift。

3、执行命令 ‘mysql’ (无引号)进入mysql数据库,然后使用以下命令创建名为b3log的数据库

1
2
3
4
  
CREATE DATABASE `b3log` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  

开始部署

 1、配置B3log-Solo

  修改D:b3log-solo-mysql-0.5.5WEB-INFclasses 目录中的latke.properties和local.properties

  配置域名信息D:b3log-solo-mysql-0.5.5WEB-INFclasseslatke.properties

 这是我的配置信息:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
  
serverScheme=http  
  
serverHost=islinux-who.rhcloud.com  
  
serverPort=80  
  
staticServerScheme=http  
  
staticServerHost=islinux-who.rhcloud.com  
  
staticServerPort=80

  

如果你有域名请将上面的islinux-who.rhcloud.com换成你的域名,这里默认使用Openshift提供的二级域名

配置数据库信息D:b3log-solo-mysql-0.5.5WEB-INFclasseslocal.properties

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
  
jdbc.driver=com.mysql.jdbc.Driver  
  
jdbc.URL=jdbc:mysql://127.12.32.129:3306/b3log?useUnicode=yes&characterEncoding=UTF-8   
  
jdbc.username=admin #数据库用户名  
  
jdbc.password= #数据库密码

  

 上面jdbc.URL中的IP可以使用rhc app show islinux 命令得到(将islinux换成你自己的)数据库用户名和密码可以在openshift BASH中运行 export 得到

msql host

2、将B3log-Solo打包成ROOT.war文件

    具体命令:

1
2
3
4
5
6
  
cd D:b3log-solo-mysql-0.5.5  
  
jar cvf d:ROOT.war .

  

PS:提示jar命令无效,请带jar的绝对路径,如:

1
2
3
4
  
C:Program Filesjdk1.7.0_01binjar cvf d:ROOT.war .

  

也可以将jar路径添加到系统PATH中

PS:如war包名字不为ROOT.war,需要修改D:b3log-solo-mysql-0.5.5WEB-INFclasseslatke.properties文件的contextPath项和staticPath顶,

1
2
3
4
5
6
7
8
  
#假设是XXX.war  
  
contextPath=/XXX  
  
staticPath=/XXX

  

3、上传到OpenShift

 将上面的ROOT.war 上传到OpenShift的

~/jbossas-7/runtime/repo/deployments

更新:

此目录已经改为 ~/jbossas-7/jbossas-7/standalone/deployments

可以将war包上传到Dropbox或者google code,再通过wget下载;也可以使用工具直接上传(推荐使用Xmanager套件中的Xshell,连上ssh后,可以直接使用xftp进行上传)。具体方法就不说了。

PS:我用git clone到本地再push 没有成功。只能如此办法了。

4、成功

1
2
3
4
5
6
  
[islinux-who.rhcloud.com deployments]> ls  
  
ROOT.war  ROOT.war.deployed

  

上面就表示成功了

访问

http://islinux-who.rhcloud.com/ 

http://islinux-where.rhcloud.com/

进行初始化

感谢@sdandroid.com的指导

PS:

  1. 目录已知不能显示验证码,等待B3log团队修复。已修复。

  2. 不能开启admin cache插件,不然会导致内存爆满导致app停止运行。

此博客就运行在openshift上面