如何在我自己的Tomcat服务器上部署broadleaf演示?

时间:2016-10-16 21:50:09

标签: mysql spring hibernate tomcat broadleaf-commerce

我能够从提供的脚本adminstart.sh和startsite.sh启动Broadleaf演示应用程序。我还能够将数据库更改为MySQl。但是,我不明白如何创建可以在我的Tomcat实例上运行的战争。

我看到,与普通方法相比,阔叶窗的做法有所不同。通常我将上下文值放入文件application-context中。 web.xml中引用的xml。无需修改Tomcat context.xml。例子是

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/application-context.xml</param-value>
</context-param

在阔叶配置中有几个上下文参数

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>blAdmin.root</param-value>
</context-param>

<context-param>
    <param-name>patchConfigLocation</param-name>
    <param-value>
        classpath:/bl-open-admin-contentClient-applicationContext.xml
        classpath:/bl-open-admin-contentCreator-applicationContext.xml
        classpath:/bl-admin-applicationContext.xml
        classpath:/bl-cms-contentClient-applicationContext.xml
        classpath:/bl-cms-contentCreator-applicationContext.xml
        classpath*:/blc-config/admin/bl-*-applicationContext.xml
        classpath:/applicationContext.xml
        classpath:/applicationContext-email.xml
        /WEB-INF/applicationContext-datasource.xml
        /WEB-INF/applicationContext-admin-security.xml
        /WEB-INF/applicationContext-admin-filter.xml
        /WEB-INF/applicationContext-admin.xml
    </param-value>
</context-param>

<context-param>
    <param-name>shutdownHookMethod</param-name>
    <param-value>forceFlush</param-value>
</context-param>

另外还有web.xml:

<!-- Initialize spring mvc -->
<servlet>
    <servlet-name>admin</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:/applicationContext-servlet-open-admin.xml
            classpath:/applicationContext-servlet-admin.xml
            classpath:/applicationContext-servlet-cms-contentClient.xml
            classpath:/applicationContext-servlet-cms-contentCreator.xml
            classpath:/bl-menu-admin-applicationContext-servlet.xml
            classpath*:/blc-config/admin/bl-*-admin-applicationContext-servlet.xml
            /WEB-INF/applicationContext-servlet-admin.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

结果是Tomcat实例在conf目录中包含context.xml,它提供了数据库池配置:

在我的应用程序中使用broadleaf的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

配置

  • 将您的MySQL JDBC驱动程序放到tomcat7 / lib文件夹
  • 在DemoSite中打开网站和管理模块的web.xml
  • 在web.xml
  • 中添加以下代码
<resource-ref>
    <description>WEB</description>
    <res-ref-name>jdbc/web</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

<resource-ref>
    <description>STORAGE</description>
    <res-ref-name>jdbc/storage</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

<resource-ref>
    <description>SECURE</description>
    <res-ref-name>jdbc/secure</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
  • 打开windows的cmd提示符或linux的命令shell
  • 导航到您的JDK_directory / bin并创建用于SSL切换的密钥库
keytool -genkey -alias tomcat -keyalg RSA -storepass password
  • 打开Tomcat7 / conf / server.xml
  • 添加以下代码以启用SSL切换,就在默认连接器端口
  • 下方
<Connector 
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="8443" maxThreads="200" 
    scheme="https" secure="true" 
    SSLEnabled="true"
    keystorePass="password" 
    clientAuth="false" 
    sslProtocol="TLS" 
    />
  • 打开Tomcat7 / conf / tomcat-users.xml
  • 添加以下
<user username="tomcat" password="password" roles="manager-gui"/>
  • 使用数据库或
  • 的值填充database.properties
  • 为tomcat配置JNDI
  • 在您的管理员或站点文件夹中,有文件target / tomcat-server-config / context.xml。
  • 将此文件复制到tomcat7 / conf /
  • 打开此文件并将以下属性替换为数据库值
username="${database.user}" : Replace with your database username (eg. broadleaf)
password="${database.password}" : Replace with your database password
driverClassName="${database.driver}" : Replace with your database classname (eg. org.postgresql.Driver)
url="${database.url}" : Replace with your database URL with database path, port and name. (eg. jdbc:postgresql://localhost:5432/broadleaf)
    IDE中的
  • 启动Maven项目安装生命周期目标(整个项目或每个模块)
  • 这将为每个模块创建战争
  • 启动tomcat(在〜/ tomcat7 / bin /中运行startup.bat / startup.sh)
  • 转到应用管理器并输入您添加到tomcat-users.xml
  • 中的tomcat用户名和密钥
  • 部署管理员和网站战
  • 上下文路径是url映射(例如/ admin和/ demo-site)
  • XML配置url是目标context.xml的完整路径(例如〜/ target / tomcat-server-conf / context.xml)
  • WAR目录是目标目录中战争的完整路径

  • 不要忘记将development.properties中的 blPU.hibernate.hbm2ddl.auto 从create更改为update(独立的tomcat无法创建表 - 这是我对postreSQL的见解)< / p>