broadleaf commerce到mysql和tomcat的迁移_MySQL
Tomcat
最近刚刚接触broadleaf commerce, 一个电商网站的开源模版。具体的运行和配置可以参考链接:点击打开链接
而该模版是在jetty容器下运行的,数据库是HSQL。官方网站上给出了如何将数据库迁移到mysql以及把项目工程部署在tomcat中所需要的配置,但是过程不甚详细,网上这方面的资源也不是很多,所以楼主就打算写这篇博客作为一个总结。
1.数据库的迁移(HSQL到MYSQL)
(a)打开DemoSite工程的根目录下pom.xml文件,在<dependencymanagement>区域中添加:</dependencymanagement>
<dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.26</version> <type>jar</type> <scope>compile</scope></dependency>
<dependencies></dependencies>
区域中添加:<dependency><groupid>mysql</groupid><artifactid>mysql-connector-java</artifactid></dependency>
(d)分别打开admin/src/main/webapp/META-INF和<code>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><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><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"></resource></context>
(e)打开core/src/main/resources/runtime-properties/common-shared.properties
文件,将以下的三条
blPU.hibernate.dialect=org.hibernate.dialect.HSQLDialectblCMSStorage.hibernate.dialect=org.hibernate.dialect.HSQLDialectblSecurePU.hibernate.dialect=org.hibernate.dialect.HSQLDialect
分别替换为:
blPU.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialectblSecurePU.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialectblCMSStorage.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
(f)打开DemoSite根目录下的build.properties,将如下内容
ant.hibernate.sql.ddl.dialect=org.hibernate.dialect.HSQLDialectant.blPU.url=jdbc:hsqldb:hsql://localhost/broadleafant.blPU.userName=saant.blPU.password=nullant.blPU.driverClassName=org.hsqldb.jdbcDriverant.blSecurePU.url=jdbc:hsqldb:hsql://localhost/broadleafant.blSecurePU.userName=saant.blSecurePU.password=nullant.blSecurePU.driverClassName=org.hsqldb.jdbcDriverant.blCMSStorage.url=jdbc:hsqldb:hsql://localhost/broadleafant.blCMSStorage.userName=saant.blCMSStorage.password=nullant.blCMSStorage.driverClassName=org.hsqldb.jdbcDriver
根据自己数据库的配置修改为:
ant.hibernate.sql.ddl.dialect=org.hibernate.dialect.MySQL5InnoDBDialectant.blPU.url=jdbc:mysql://localhost:3306/broadleafant.blPU.userName=rootant.blPU.password=123ant.blPU.driverClassName=com.mysql.jdbc.Driverant.blSecurePU.url=jdbc:mysql://localhost:3306/broadleafant.blSecurePU.userName=rootant.blSecurePU.password=123ant.blSecurePU.driverClassName=com.mysql.jdbc.Driverant.blCMSStorage.url=jdbc:mysql://localhost:3306/broadleafant.blCMSStorage.userName=rootant.blCMSStorage.password=123ant.blCMSStorage.driverClassName=com.mysql.jdbc.Driver
sudo /etc/init.d/tomcat7 restart
这样数据库的迁移就完成了。
2.服务器的迁移(从jetty到tomcat7)
(a)在site和admin目录下的pom.xml文件的中<plugins>区域中分别添加:</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>
<code>(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' #注意:单引号不能省略
set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M #注意:无单引号
sudo /etc/init.d/tomcat7 restart

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Apache menyambung ke pangkalan data memerlukan langkah -langkah berikut: Pasang pemacu pangkalan data. Konfigurasikan fail web.xml untuk membuat kolam sambungan. Buat sumber data JDBC dan tentukan tetapan sambungan. Gunakan API JDBC untuk mengakses pangkalan data dari kod Java, termasuk mendapatkan sambungan, membuat kenyataan, parameter mengikat, melaksanakan pertanyaan atau kemas kini, dan hasil pemprosesan.

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

Memasang MySQL pada CentOS melibatkan langkah -langkah berikut: Menambah sumber MySQL YUM yang sesuai. Jalankan YUM Pasang Perintah MySQL-Server untuk memasang pelayan MySQL. Gunakan perintah mysql_secure_installation untuk membuat tetapan keselamatan, seperti menetapkan kata laluan pengguna root. Sesuaikan fail konfigurasi MySQL seperti yang diperlukan. Tune parameter MySQL dan mengoptimumkan pangkalan data untuk prestasi.

Phpmyadmin bukan sekadar alat pengurusan pangkalan data, ia dapat memberi anda pemahaman yang mendalam tentang MySQL dan meningkatkan kemahiran pengaturcaraan. Fungsi teras termasuk pelaksanaan CRUD dan SQL Query, dan penting untuk memahami prinsip -prinsip penyataan SQL. Petua lanjutan termasuk mengeksport/mengimport data dan pengurusan kebenaran, yang memerlukan pemahaman keselamatan yang mendalam. Isu -isu yang berpotensi termasuk suntikan SQL, dan penyelesaiannya adalah pertanyaan parameter dan sandaran. Pengoptimuman prestasi melibatkan pengoptimuman penyataan SQL dan penggunaan indeks. Amalan terbaik menekankan spesifikasi kod, amalan keselamatan, dan sandaran biasa.
