`
zybing
  • 浏览: 456076 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

第一次访问Roller --- 创建数据库所需环境

阅读更多

环境: 在tomcat中,

 

第一次访问Roller,要进行一些配置:

 

在$CATALINA_HOME中的 common/classes 目录中,新建一下客户环境化的配置文件: roller-custom.properties,

其实只要放在classpath中的任何一个目录中即可。

 

        installation.type=auto 


        database.configurationType=jdbc 
        database.jdbc.driverClass=com.mysql.jdbc.Driver 
        database.jdbc.connectionURL=jdbc:mysql://localhost:3306/rollerdb 
        database.jdbc.username=scott 
        database.jdbc.password=tiger 
        mail.configurationType=properties 
        mail.hostName=smtp-server.example.com 
        mail.username=scott 
        mail.password=tiger 

 

 最主要的是 installation.type=auto,表示我们第一次要创建数据库结构

 其他的配置:以database开始的是数据库连接的配置

                   以mail开始的是mail provider的配置

 

 根据实际环境配置好后,可以启动tomcat,访问roller了

 

 由于第一次访问配置的是 installation.type=auto, 在访问的时候被Filter : BootstrapFilter截获,

url被转向到 /roller-ui/install/install.rol

 

在Roller中,struts的请求后最被修改成 rol 了

这个在 struts.properties 中定义的 (Roller有一个struts.properties, 还有一个 struts.xml, 2个混用,不过一般只和struts相关的配置,都配置在 properties文件中,和应用相关的配置在xml文件中)

struts.action.extension=rol

 

 

 

在struts中的配置为:

    <!-- Weblogger install/bootstrap actions -->
    <package name="weblogger-install" namespace="/roller-ui/install" extends="weblogger">
    
        <action name="install"
                class="org.apache.roller.weblogger.ui.struts2.core.Install">
            <result name="database_error" type="tiles">.DatabaseError</result>
            <result name="create_database" type="tiles">.CreateDatabase</result>
            <result name="upgrade_database" type="tiles">.UpgradeDatabase</result>
            <result name="bootstrap" type="tiles">.Bootstrap</result>
            <result name="success" type="chain">home</result>
        </action>
            
    </package>
 

安装是通过 org.apache.roller.weblogger.ui.struts2.core.Install 来完成的。

 

install类继承 UIAction

  UIAction 继承 ActionSupport  : 这个就不用解释了,UIAction在ActionSupport基础上增加了对error和状态的控制;

               实现 UIActionPreparable            

                      UISecurityEnforced

 

UIActionPreparable:的解释:

/**
 * A Roller specific version of the struts2 Preparable interface.
 *
 * We only have this because we don't want to use the struts2 Preparable IF due
 * to the fact that it is meant to be called much earlier in the interceptor
 * stack, namely before our custom interceptors have been processed.  While
 * that may make sense in some cases, typically we want to prepare things based
 * on the user or weblog that we are working on, so it's often of more use for
 * us to prepare *after* our custom interceptors have been processed.
 *
 * So, this duplicate of the struts2 Preparable interface is here so that we
 * can leave the default struts2 prepare() logic in place for any actions we
 * may define that want to use that, but also provide a prepare option that is
 * executed at the very end of our interceptor stack, just before the action
 * method is executed.  This way our custom prepare method can make use of 
 * anything our custom interceptors provide.
   只是在Action执行之前的最后一步执行的工作
 */
public interface UIActionPreparable {
    
    public void myPrepare();
    
}
 

 

UISecurityEnforced: 是有关权限的,但是需要Action进行实现

/**
 * Implemented by struts2 actions which want to enforce some level of security
 * protection on their action.
 * 
 * Available enforcements are ...
 *   - require a logged in user
 *   - reguire a valid weblog to work on
 *   - require a specific user role, such as "admin"
 *   - require a specific weblog permission
 *
 */
 

--------------------

install根据在系统初始化的时候的不同状态,返回不同的页面:

 

都是通过WebloggerStartup来获取状态的;

 

如果状态是需要创建数据库的,到:

<result name="create_database" type="tiles">.CreateDatabase</result>

 

---------------------

在Roller,页面采用tiles,看一下安装页面的配置:.CreateDatabase

    <definition name=".CreateDatabase" extends=".tiles-installpage" >
        <put-attribute name="content" value="/WEB-INF/jsps/core/CreateDatabase.jsp" />
        <put-attribute name="footer" value="/WEB-INF/jsps/tiles/empty.jsp" />
        <put-attribute name="banner" value="/WEB-INF/jsps/tiles/bannerInstallation.jsp" />
    </definition>
 

每个页面,一开始都是加载:<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>

这个里面包含了Response编码定义、所有的标签引用定义:

<% response.setContentType("text/html; charset=UTF-8"); %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%@ taglib uri="http://jakarta.apache.org/taglibs/string-1.0.1" prefix="str" %>
 

 

在安装的页面中,主要关心:

/WEB-INF/jsps/core/CreateDatabase.jsp

这个是实际操作的页面。

 

创建数据库,调用的是

    <s:form action="install!create">
        <s:submit key="installer.yesCreateTables" />
    </s:form>
 

install的create方法,实际调用WebloggerStartup的createDatabase方法。

调用 DatabaseInstaller的createbase

 

创建的时候,根据数据库连接获取提供厂商的名字: con.getMetaData().getDatabaseProductName

根据厂商的名字,到各自目录中,获取 createdb.sql 文件--- 具体的在 /dbscripts/厂商/createdb.sql 文件中,创建数据库脚本,

 

至此,数据库创建完成。

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    roller-install-guide.pdf

    - **配置文件**:需要编辑相关的配置文件,例如 `roller-custom.properties` 和 `security.xml`,以适应不同的环境需求。 #### 七、部署 Apache Roller - **配置类路径**:确保将 `roller-custom.properties` 文件...

    apache-roller-src

    apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src

    roller-part01

    apache-roller-srapaapache-roller-srcche-roller-srccapache-rolaapache-roller-srcpache-roller-srcler-srcapapache-roller-srcache-roller-srcapache-roller-src

    roller-part2

    apache-rollapachapache-roller-srce-roller-srcer-srcapache-rolleapacapache-roller-srche-roller-srcr-srcapache-roapache-roller-srcller-srcapache-roller-src

    file-roller-nautilus-3.28.1-2.el7.x86_64.rpm

    离线安装包,亲测可用

    apache-roller-4.0.1

    这个压缩包"apache-roller-4.0.1"包含了Apache Roller的第4.0.1版本,这是一个基于Java技术构建的Web应用程序。接下来,我们将深入探讨Apache Roller的核心功能、特性以及与Java相关的技术细节。 1. **Apache ...

    roller-weblogger-5.0.0-source.zip

    通过对"roller-weblogger-5.0.0-source.zip"的深入分析,我们可以了解到Roller Weblogger的完整开发流程和设计思想,这对于Java Web开发者来说,不仅是一份学习资料,也是提升技能、实践项目的好机会。通过学习和...

    roller-weblogger.rar

    weblogging 设计比较精巧,是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。 最主要是其开源

    roller-user-guide.pdf

    综上所述,《roller-user-guide.pdf》为用户提供了一套全面的使用指南,覆盖了从安装到日常管理等各个环节,旨在帮助用户充分利用Apache Roller的强大功能。无论是个人博主还是企业用户,都可以从中获得有价值的信息...

    apache-roller-src-4.0.1 源代码

    源代码包"apache-roller-src-4.0.1"是Roller项目的4.0.1版本的源码,对开发者来说,这是一个深入了解Roller工作原理和学习Java Web开发的宝贵资源。 1. **Java技术栈**: Apache Roller的源代码基于Java语言编写,...

    apache-roller-src-4.0.1.part2.rar

    apache-roller-src-4.0.1.part2.rar

    roller-template-guide.pdf

    开发者可以通过这些模型和对象来访问所需的数据,并在模板中进行展示。 ##### 4.1.1 访问对象属性 每个对象都有一组预定义的属性,可以通过简单的语法来访问这些属性。例如,获取一篇文章的标题,只需要使用相应的...

    Roller4.0的另外一套cas简单解决方案

    打开官方发布的可直接发布的部署包apache-roller-4.0\apache-roller-4.0\webapp\roller的目录,将该目录下面除了web-inf目录的其他所有文件复制到自建项目的/WebRoot目录下面 自建项目目录结构: (myeclipse建立的...

    dice-roller-001:用CodeSandbox创建

    标题中的“dice-roller-001:用CodeSandbox创建”表明我们将探讨一个基于Web的骰子投掷模拟器项目,该项目使用CodeSandbox作为开发环境。CodeSandbox是一个在线代码编辑器,专为创建和共享前端项目而设计,支持诸如...

Global site tag (gtag.js) - Google Analytics