Apache Roller部署到MyEclipse

 

1.  准备环境

MyEclipse  6.0

JDK       1.6.0_05

Tomcat     5.5.27 (建议用 5.5以上版本)

Roller      4.0.1

2.  下载 Roller

Roller的主页 http://roller.apache.org/ 下载最新的 roller版本,目前是 4.0.1,同时下载源代码包和官笔发布程序包的 zip,分别为 apache-roller-src-4.0.1.zip apache-roller-4.0.1.zip

下载发布程序的原因是源源代码包里有一些内容和发布包不一致,导致源代码在 Eclipse中编译后在运行时会报错,因为对源代码不熟悉,所以还无法定位到错误的原因所在。另外一些配置文件只有在它官方的发布包中才有,一会要用到它。

3.  搭建项目环境

MyEclipse中新建一个 Web项目,命名为 roller J2EE环境选择 1.4

解压缩 roller的二个包,为了说明的方便,我们把 apache-roller-src-4.0.1.zip的解压缩后目录叫做 roller-src,把 apache-roller-4.0.1.zip的解压缩后目录叫做 roller-bin

roller-src/apps/weblogger/src/java目录下的 org整个目录的源文件复制到项目中的 src里面;

lib中添加 jar文件。二种方法,可以从 roller-src中的 tools目录中逐个目录地把所有的 jar文件拷贝出来,为了简单起见,还是从它的发布程序中直接拿更方便,从 roller-bin中的 WEB-INF/lib下面的所有 jar都复制出来,放到我们的项目中的 lib中去;

roller默认是使用 MySQL数据库,但是 lib里面缺少 MySQL JDBC驱动,所以还要自己从网上下载驱动的 jar,添加到 WEB-INF/lib中,如果你是使用的其它数据库,同样需要手动下载它对应的驱动程序;

roller-bin中复制除了 WEB-INF目录以外的所有文件,粘贴到我们项目中的 WebRoot下面,这些是页面文件和一些资源文件;

复制 roller-bin中的 WEB-INF目录下除了 classes外的所有文件到我们项目中的 WEB-INF目录下,覆盖掉默认的 web.xml,你还可以发现它的一些 jsp文件是放在 WEB-INF下面的,起到很好的保护作用, roller是基于 struts2开发的;

roller-bin中的 WEB-INF/classes目录中,复制除了 org目录外的所有文件,到我们项目中的 src里面,这些是系统的配置文件,包括了国际化资源、 struts配置、 log配置、数据库脚本等等。

roller还用到了邮件功能,需要把 activation.jar mail.jar二个 j2ee jar复制到 tomcat common/lib目录下,如果没有这一步,可能启动初始化会失败!导致应用无法正常运行。

到这里,所有的文件就已经全部搬到 MyEclipse上面了,接下来要修改一些内容使用我们的项目能正常部署。

4.  修改部分内容

在我们项目的 src中新建一个名称为 roller-custom.properties的文件, roller采用这个扩展配置现覆盖系统的默认配置。网上有些说要把这个文件放到 tomcat common/classes中,其实不用的,只要放在 classpath中能找到就行了,所以我们把它放在我们的 src目录下面,方便修改,在该文件中添加如下内容:

installation.type=auto
database.configurationType=jdbc
database.jdbc.driverClass=com.mysql.jdbc.Driver
database.jdbc.connectionURL=jdbc:mysql://localhost:3306/rollerdb?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8
database.jdbc.username=scott
database.jdbc.password=tiger
mail.configurationType=properties
mail.hostname=smtp-server.example.com
mail.username=scott
mail.password=tiger

注意 database.jdbc.connectionURL这个配置后面需要带上上面编码的参数,不然安装的过程可能会出现一些乱码。修改 url username password这些,如果你有能正常使用的邮箱服务器,也填上。

创建 MySQL数据库,名称为 rollerdb,并指定编码为 UTF-8。如果你使用的是 root用户,则不用授权,如果不是,则需要为用户授权,下面是一个示例:

    

启动 roller的时候它会查询数据库是否已经初始完成,如果没有,它会自动进入安装页面,引导用户进行安装,做得非常人性化。

修改部分源代码。 org.apache.roller.weblogger包里面的 pojos包是有问题的!刚开始的时候老是无法启动,报错提示的是 JPA的一个异常,根本不知道如何解决,后来在 CSDN上找到一篇文章,说是 pojos这个包的源码有问题,可能跟发布包中的版本不一致,所以需要用变态一点的处理办法。

    

在我们的项目 WEB-INF/lib中,找到 roller-business.jar roller-web.jar(如上图所示),这二个 jar其实就是我们 src中的所有 java文件的编译打包,为了不重复,先把 roller-web.jar删除掉,然后用 winrar打开 roller-business.jar,删除 pojos以外的其它四个包和那个 WebloggerException.class。这样,其它代码可以正常编译!

下面是最终的基本结构截图 (仅参考 )

WeRoot目录截图
    

Src目录截图:

    

5.  其它补充说明

按照上面的步骤,项目结构就基本上正常搭建了,真是费心费力! NetBeans下面没有试过,兴许会比这个简单许多!反正都习惯 Eclipse了,就都移过,后面再花些时间研读一下它的源代码,网上说是非常好的学习例子。

        Roller的系统全局配置文件是放在 org.apache.roller.weblogger. org.apache.roller.weblogger.config包中的 roller.properties中的。在这里能找到各项系统的配置,我们自己手动创建的 roller-custom.properties是用来覆盖一些常用属性的。

        src下面的 dbscripts是所有数据库的 SQL脚本, apache-roller-src-4.0.1.zip中提供的脚本是不完整的!所以需要使用正式发布包的脚本,它带了数据库的初始脚本,由系统自动引导创建,还有许多版本升级的补充脚本。

        默认的 log配置是用文件形式,保存在 tomcat的的 logs目录中,名称为 roller.log的,如果你启动的过程遇到问题,请到这里去查看启动日志,分析一下异常的原因。

        roller-custom.properties中配置的邮箱主机和用户名密码等,如果无法正常连接,它初始化时会报错,但是不会影响正常启动,前提是你必须把 activation.jar mail.jar这二个文件放到 tomcat里面。

        在调试的过程中发现 org.apache.roller.weblogger.business.WebloggerImpl类的创建方法中有加载 roller-verion.properties,但是在我们的 src中没有找到这个文件,原来是在 roller-business.jar中包含了。好像另一个类也包含这一句启动的初始代码,如果找不到这个类,会抛出空指针 Exception,同样导致整个应用启动失败。所以刚开始的时候生硬地在 WebloggerImpl类中 115行加载了一段异常处理代码如下:
    

        当然,如果你已经包含了 roller-version.properties文件,这个异常是不会存在的 !

        Roller的文档非常齐全,图文并茂,多多阅读,就可以了解它的使用方法。 IBM 开发者论坛就是基于它进行开发的,的确非常强大,想了解 struts2 JPA Spring Acegi Velocity等主流技术的都可以从这里找到示例,不过要多花些时间,从其它方面,比如结构划分、代码规范、 theme切换等,都可以学习到很多东西。

        Roller Architecture (摘自网络)

Roller Web Web and UI Layer

     Editor UI via Struts and JSP blog and feed rendering via Velocity

     Feed parsing via ROME, Blogger API via Apache XML-RPC

Roller Beans Business and Persistence Layer

     Hibernate/JPA for DBMS Lucene for search



多多学习,愿和大家共同分享! ^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值