`

roller源码研究(一)-- eclipse中roller环境搭建

    博客分类:
  • Java
阅读更多

    最近一直在查找研究一些开源系统的源码,之前锁定了php的blog系统--wordpress,今天又发现的在开源博客系统中少有的java版本--roller,一个java语言编写的web blog。在自己机器上搭了一下,运行起来还不错,准备开始研究它的源代码。

    先谈一谈,我把roller作为eclipse中的项目部署的方法吧。(部分内容参考了http://www.blogjava.net/nighty/archive/2009/11/22/303255.html)

1. 做好准备工作。在机器上安装jdk、tomcat、eclipse(我用的是JavaEE版本)、mysql并从http://roller.apache.org/ 上下载roller(这里使用的是roller4.0.1)

2. 在eclipse里新建web工程, apache-roller-src-4.0.1/apps/weblogger/src/java目录下的 org整个目录的源文件复制到项目中的 src中。

3. 把apache-roller-4.0.1中的 WEB-INF/lib下面的所有 jar都复制到项目中的 lib中。

4. 删除工程src下名为xxx.pojos的包(否则会与roller-business.jar中的内容产生冲突)

5. 在工程的lib中添加mail.jar、activation.jar和数据库的驱动jar包。

6. apache-roller-4.0.1中复制除了 WEB-INF目录以外的所有文件,粘贴到我们项目中的 WebRoot下面。

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

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

9. 在我们项目的 src中新建一个名称为 roller-custom.properties的文件, roller采用这个扩展配置现覆盖系统的默认配置。

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

 10. 在mysql中创建数据库,并赋予scott权限。

create database rollerdb default charset utf8 collate utf8_general_ci;
grant all on rollerdb.* to scott@'%' identified by 'tiger'; 
grant all on rollerdb.* to scott@localhost identified by 'tiger';
 

如果一切正常的话roller就在eclipse上配置好了,可以将其通过eclipse成功部署到tomcat中。

2
0
分享到:
评论
5 楼 Javakeith 2010-10-21  
我的tomcat是6.x,开发工具是myeclipse,在启动的时候总是报:Roller Weblogger has not been bootstrapped yet不知道是什么错误!
4 楼 dennisping 2010-08-18  
刚好也遇到同样的问题。
3 楼 lectery 2009-12-11  
villain564 写道
怎么不行啊,还出org.apache.openjpa.persistence.ArgumentException: The type "class org.apache.roller.weblogger.pojos.TaskLock" has not been enhanced.

删掉源码中的pojos包,或者删除roller-business.jar中的pojos文件夹就行了。
2 楼 villain564 2009-12-10  
怎么不行啊,还出org.apache.openjpa.persistence.ArgumentException: The type "class org.apache.roller.weblogger.pojos.TaskLock" has not been enhanced.
1 楼 zybing 2009-11-25  
有以下问题:

3. 把apache-roller-4.0.1中的 WEB-INF/lib下面的所有 jar都复制到项目中的 lib中。
在apache-roller-4.0.1中的 WEB-INF/lib下面的所有 jar中,已经包括了 roller自己的4个Jar文件:
roller-business.jar
roller-core.jar
roller-planet-business.jar
roller-web.jar
有了这4个Jar文件,不用Roller源码编译,就可以运行起来。
源码编译,就是要生成以上的4个jar文件。(其实你现在情况是:如果classes目录中有,先运行classes目录中的文件,如果没有的话,也会到lib中的jar包中执行,有问题也看不出来)

4. 删除工程src下名为xxx.pojos的包(否则会与roller-business.jar中的内容产生冲突)
看到了你的提问:http://www.iteye.com/problems/30336
问题是:
org.apache.openjpa.persistence.ArgumentException: The type "class org.apache.roller.weblogger.pojos.TaskLock" has not been enhanced.
我在编译时,也遇到了同样的问题。你的解决方式是对的,但是理由是错误的。
具体的原因见:
http://old.nabble.com/Class-has-not-been-%28JPA%29-enhanced--%28was-Re%3A-Daily-report-of-Referrers-%29-td17131123s12275r0.html
As I remember things, the POJOs in Roller are JPA "enhanced" at build
time, which means that we run a special OpenJPA Ant task against the
POJO classes and it make some bytecode changes to the .class files.

If you are running against the jars in Roller's WEB-INF/lib direcory
then the POJO classes should have the enhanced bits and I'm not sure
what would cause JPA to think otherwise.

What version of Roller are you using? Are you using a custom build? 


我的解决方式就是把所有通过Eclipse编译出来的Roller class文件打包成一个jar,放在WEB-INF/lib中,就可以了(其实就是把上面的4个jar包整合在一个中间了)。
至于为什么“enhanced”了以后,就要放在jar包中执行,这个原因还在找

我最近也在安装Roller,安装的记录在:
http://www.360doc.com/UserHome/41237 中的 个人工作---》Roller中,可以交流一下

相关推荐

    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-weblogger-5.0.0-source.zip

    在本文中,我们将对"roller-weblogger-5.0.0-source.zip"中的核心概念、架构设计和技术实现进行详细的阐述,旨在帮助读者更好地理解和应用这个项目。 一、项目概述 Roller Weblogger 5.0.0 是一个基于Java技术栈的...

    roller-part2

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

    apache-roller-src-4.0.1 源代码

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

    roller-install-guide.pdf

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

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

    离线安装包,亲测可用

    博客(Blog)-Roller Weblogger ,MeEclipse下搭建

    - MyEclipse6.0: 一个集成开发环境,主要用于Java EE开发,提供对Eclipse的扩展,包括开发工具、代码模板等。 - JDK1.6.0_05: Java开发工具包,是开发Java应用程序所需的软件环境,包含了编译器、运行环境等。 - ...

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

    roller-business.jar,进入到jar里面的roller-business.jar\org\apache\roller\weblogger目录中.删除该目录中除了pojos目录的其他四个目录以及那个webloggerException类. 配置web目录中的内容. 打开官方发布的可...

    roller-user-guide.pdf

    本文档《roller-user-guide.pdf》为用户提供了一个全面的操作指南,帮助用户从安装配置到日常管理等各个方面进行博客的维护。 #### 二、版权与商标信息 文档的开头部分提到了版权和商标信息,这部分内容主要涉及...

    apache-roller-src-4.0.1.part2.rar

    apache-roller-src-4.0.1.part2.rar

    roller-weblogger.rar

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

    roller

    2. `roller-custom.properties`:这很可能是Roller的自定义配置文件。在开源软件中,通常会有一个默认的配置文件(如`roller.properties`),而`custom`前缀意味着它是用来覆盖默认配置的。用户可以通过修改这个文件...

Global site tag (gtag.js) - Google Analytics