broadleaf commerce到mysql和tomcat的迁移

最近刚刚接触broadleaf commerce, 一个电商网站的开源模版。具体的运行和配置可以参考链接:点击打开链接

而该模版是在jetty容器下运行的,数据库是HSQL。官方网站上给出了如何将数据库迁移到mysql以及把项目工程部署在tomcat中所需要的配置,但是过程不甚详细,网上这方面的资源也不是很多,所以楼主就打算写这篇博客作为一个总结。

1.数据库的迁移(HSQL到MYSQL)

(a)打开DemoSite工程的根目录下pom.xml文件,在<dependencyManagement>区域中添加:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.26</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency> 

(b)分别在admin和site文件夹中找到pom.xml打开并在<dependencies>区域中添加:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency> 

(c)在mysql数据库中添加database名为broadleaf

(d)分别打开admin/src/main/webapp/META-INF和admin/src/main/webapp/META-INF中的context.xml,将内容替换如下(数据库相关的配置信息如用户名和密码请根据自身的环境作相应的修改):

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/web"
              auth="Container"
              type="javax.sql.DataSource"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              testWhileIdle="true"
              testOnBorrow="true"
              testOnReturn="false"
              validationQuery="SELECT 1"
              timeBetweenEvictionRunsMillis="30000"
              maxActive="15"
              maxIdle="10"
              minIdle="5"
              removeAbandonedTimeout="60"
              removeAbandoned="false"
              logAbandoned="true"
              minEvictableIdleTimeMillis="30000"
              jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
              username="root"
              password="123"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/broadleaf"/>

    <Resource name="jdbc/storage"
              auth="Container"
              type="javax.sql.DataSource"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              testWhileIdle="true"
              testOnBorrow="true"
              testOnReturn="false"
              validationQuery="SELECT 1"
              timeBetweenEvictionRunsMillis="30000"
              maxActive="15"
              maxIdle="10"
              minIdle="5"
              removeAbandonedTimeout="60"
              removeAbandoned="false"
              logAbandoned="true"
              minEvictableIdleTimeMillis="30000"
              jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
              username="root"
              password="123"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/broadleaf"/>

    <Resource name="jdbc/secure"
              auth="Container"
              type="javax.sql.DataSource"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              testWhileIdle="true"
              testOnBorrow="true"
              testOnReturn="false"
              validationQuery="SELECT 1"
              timeBetweenEvictionRunsMillis="30000"
              maxActive="15"
              maxIdle="10"
              minIdle="5"
              removeAbandonedTimeout="60"
              removeAbandoned="false"
              logAbandoned="true"
              minEvictableIdleTimeMillis="30000"
              jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
              username="root"
              password="123"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/broadleaf"/>
</Context>

(e)打开core/src/main/resources/runtime-properties/common-shared.properties文件,将以下的三条

blPU.hibernate.dialect=org.hibernate.dialect.HSQLDialect
blCMSStorage.hibernate.dialect=org.hibernate.dialect.HSQLDialect
blSecurePU.hibernate.dialect=org.hibernate.dialect.HSQLDialect

分别替换为:

blPU.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
blSecurePU.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
blCMSStorage.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

(f)打开DemoSite根目录下的build.properties,将如下内容

ant.hibernate.sql.ddl.dialect=org.hibernate.dialect.HSQLDialect

ant.blPU.url=jdbc:hsqldb:hsql://localhost/broadleaf
ant.blPU.userName=sa
ant.blPU.password=null
ant.blPU.driverClassName=org.hsqldb.jdbcDriver

ant.blSecurePU.url=jdbc:hsqldb:hsql://localhost/broadleaf
ant.blSecurePU.userName=sa
ant.blSecurePU.password=null
ant.blSecurePU.driverClassName=org.hsqldb.jdbcDriver

ant.blCMSStorage.url=jdbc:hsqldb:hsql://localhost/broadleaf
ant.blCMSStorage.userName=sa
ant.blCMSStorage.password=null
ant.blCMSStorage.driverClassName=org.hsqldb.jdbcDriver

根据自己数据库的配置修改为:

ant.hibernate.sql.ddl.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

ant.blPU.url=jdbc:mysql://localhost:3306/broadleaf
ant.blPU.userName=root
ant.blPU.password=123
ant.blPU.driverClassName=com.mysql.jdbc.Driver

ant.blSecurePU.url=jdbc:mysql://localhost:3306/broadleaf
ant.blSecurePU.userName=root
ant.blSecurePU.password=123
ant.blSecurePU.driverClassName=com.mysql.jdbc.Driver

ant.blCMSStorage.url=jdbc:mysql://localhost:3306/broadleaf
ant.blCMSStorage.userName=root
ant.blCMSStorage.password=123
ant.blCMSStorage.driverClassName=com.mysql.jdbc.Driver

这样数据库的迁移就完成了。

2.服务器的迁移(从jetty到tomcat7)

(a)在site和admin目录下的pom.xml文件的中<plugins>区域中分别添加:

                         <plugin>
                                <groupId>org.apache.tomcat.maven</groupId>
                                <artifactId>tomcat7-maven-plugin</artifactId>
                                <version>2.0</version>
                                <configuration>
                                        <warSourceDirectory>${webappDirectory}</warSourceDirectory>
                                        <path>/</path>
                                        <port>${httpPort}</port>
                                        <httpsPort>${httpsPort}</httpsPort>
                                        <keystoreFile>${webappDirectory}/WEB-INF/blc-example.keystore</keystoreFile>
                                        <keystorePass>broadleaf</keystorePass>
                                        <password>broadleaf</password>
                                </configuration>
                        </plugin>

(b)在eclipse中右键DemoSite工程,先后运行Run As里面的Maven clean和Maven install,成功后就会在DemoSite中的admin和site的target文件夹中有相应的war包生成,楼主生成的两个war包名为admin.war和zk.war。

(c)楼主的环境是ubuntu,tomcat服务器中webapps的路径为/var/lib/tomcat7/webapps,将admin和zk.war拷贝到该目录下,然后重启tomcat服务器:

sudo /etc/init.d/tomcat7 restart

看到/var/log/tomcat7/catalina.out文件报错如下:

Caused by: java.lang.OutOfMemoryError: Java heap space
        at org.apache.tomcat.util.bcel.classfile.ClassParser.readMethods(ClassParser.java:268)
        at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:128)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2105)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1981)
        at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1947)
        at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1932)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1326)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5179)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1673)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        ... 4 more

百度了以后得知是内存溢出的问题,具体的解决方案如下:

ubuntu中修改catalina.sh文件(楼主该文件的路径是/usr/share/tomcat7/bin/catalina.sh),在文件首行添加如下内容:

JAVA_OPTS=‘-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M‘ #注意:单引号不能省略

windows中修改catalina.bat文件,在第一行添加如下内容:

set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M #注意:无单引号

(d)按照(c)中修改完成后再重启tomcat服务器:

sudo /etc/init.d/tomcat7 restart

就可以在浏览器中正常打开电商页面:localhost:8080/zk和后台管理页面:localhost:8080/admin了,往tomcat服务器的迁移也大功告成啦。

broadleaf commerce到mysql和tomcat的迁移

时间: 2024-10-05 09:30:21

broadleaf commerce到mysql和tomcat的迁移的相关文章

cenOS系统,chkconfig设置程序开机自启--mysql、tomcat、redis、fastdfs--nginx/fdfs_trackerd/fdfs_storaged

设置程序开机启动就是将程序的启动脚本添加到/etc/init.d目录下,或者将启动路径写入/etc/rc.d/rc.local文件里面. 设置mysql开机启动 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig --add mysql chkconfig mysql on 设置fdfs_tracker开机启动 cp /usr/local/src/FastDFS/init.d/fdfs_tracke

ubuntu-12.04.2-desktop-amd64 安装整合 nginx + php + mysql + phpmyadmin + tomcat

最近需要做jsp项目,部署在ubuntu 下,周末抽时间配置了nginx + php + mysql + phpmyadmin + tomcat 环境,从windows 的C# 转过来, 多少有些不适应, 估计要走全栈的方向了. 顺便整理了一下入门的配置方法, 完全在控制台下完成. 1.1  Common Start Terminal Ctrl+Alt+T 使用root用户 sudo –sH 查看进程 linux命令ps aux|grep xxx 软连接 ln -s 源地址  目的地址 比如把l

configure JDBCRealm JAAS for mysql and tomcat 7 with form based authentication--reference

Hello all, In this tutorial we are going to configure JDBCRealm JAAS for tomcat 7 and mysql database server. Let us first understand what exactly these terminologies mean. JAAS : Java Authentication and Authorization Service is used for user authenti

【转载】Mysql binlog relaylog 日志迁移

背景: 默认情况下,mysql的数据.binlog.relaylog都是保存在同一个磁盘上,路径根据每个人的设置不一. 当mysql数据库中数据或日志增长很快时,磁盘可能面临空间不够或者IO性能跟不上,所以把日志迁移到其他磁盘是首先想到的工作. 但日志迁移的文档并不多,本文根据实践记录,希望对大家有点参考作用. 假设迁移前的路径如下: binlog:    /data/mysql_data/mysql数据: /data/mysql_data/mysql relay log :/data/mysq

Apache+PHP+Mysql+jdk+tomcat的安裝

使用 Yum管理安裝Apache+PHP+Mysql+jdk+tomcat的安裝,務求簡潔快速,另外還針對Mysql加強一些安全性,此外請注意防火牆已經打開相關的port,否則外面是永遠都連不進來的.強調一下,這是在centos6上已經成功的安裝步驟.1. 安裝Apahce, PHP, Mysql, 以及php連接mysql庫組件.yum -y install httpd php mysql mysql-server php-mysql2. 配置開機啟動服務  設置apache服務器httpd服

linux安装mysql、tomcat和jdk1.7、Android Studio

linux安装mysql.tomcat和jdk. 一.安装mysql $ sudo apt-get install mysql-server 安装mysql 二.安装JDK 下载jdk 到达/usr/local $ sudo mkdir java 建立一个java文件夹 (注:sudo 请求root权限 ) $ sudo mv jdk1.7.0_67 /usr/local/java 将解压的文件移到刚刚建好的文件夹 $ sudo vim /etc/profile 可能vim编辑器没有安装 因此执

JDBC连接mysql,TOMCAT错误: Cannot convert value &#39;0000-00-00 00:00:00&#39; from column 10 to TIMESTAMP

解决思路依据如下URL: http://blog.csdn.net/stail111/article/details/5640109 问题:MySQL数据库,如果数据库中日期字段为空为值为'0000-00-00 00:00:00"时,查询的时候回报:Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP 解决办法: 更改连接数据库方式 在连接:jdbc:mysql://127.0.0.1:3306/test 后

MySQL数据库从windows迁移到linux

前几天搭建了lamp环境,想把之前写的小东西迁到linux上运行,涉及到把mysql数据库的文件迁移到linux上,直接用fileZilla传过去应该不行,我试了下,反正没成功.下面是我采用的方法: (一)用mysqldump命令导出数据库文件: 在windows下cd到Mysql的bin目录: c:/data.txt这个目录和导出的文本名可以自己随便取,-B 后面的是表名,我要导出的表明叫user.输入密码之后,就可以去保存的目录下看看有没有数据文件了,有的话就成功了,感觉可能失败的地方就是没

Redis学习(1)--环境配置,安装JDK,MySQL,tomcat

Linux上安装jdk,mysql,tomcat安装 rpm命令: 相当于Windows的安装/卸载程序.可以进行程序的安装,更新,卸载,查看. 本地程序安装:rpm -ivh 程序名 本地程序查看:rpm -qa 本地程序卸载:rpm -e    --nodeps 程序名 yum命令: 相当于可以联网的rpm命令 相当于先联网下载程序安装包,程序更新包 自动执行rpm命令. 例如以下是联网安装环境的一些命令: 依次执行下面命令安装环境必须的程序: 安装的程序: Linux上安装JDK 查看安装