Jetspeed JetExpress Tutorial Portal笔记1 -- 定制portal安装

来源:互联网 发布:ubuntu可以安装微信吗 编辑:程序博客网 时间:2024/06/05 13:01

0. 约定

     目录分隔符使用’/'等同于’/',文中仅使用’/’

1. 资源

  • Jetspeed Tutorial地址:http://portals.apache.org/tutorials/jetspeed-2/index.html
  • Jetspeed Tutorial  Resources文件: http://portals.apache.org/tutorials/resources/jetspeed-2-resources.zip
  • Jetspeed Tutorial  Repository:http://www.bluesunrise.com/maven2/repository.zip
  • Java : 1.4+(本文使用1.5)
  • Maven : 2.0.x (本文使用2.0.7)
  • Tomcat 5.5(要求5.0或5.5):http://tomcat.apache.org/download-55.cgi

2. 工作环境配置(初始化)

  • 环境:windows XP SP2
  • 目录:Jetspeed Tutorial根目录定义为c:/JetspeedTraining,以下仅书写为/JetspeedTraining
    • 创建/JetspeedTraining目录
    • 创建/JetspeedTraining/tomcat-express目录,拷贝tomcat5.5到这个目录
    • 修改/JetspeedTraining/tomcat-express/conf/tomcat-users.xml文件如下(全部内容):
      <?xml version=”1.0″ encoding=”UTF-8″?>
      <tomcat-users>
        <user name=”tomcat” password=”tomcat” roles=”tomcat” />
        <user username=”j2deployer” password=”j2deployer” roles=”admin,manager,tomcat”/>
      </tomcat-users>
    • 创建/JetspeedTraining/maven/repository目录,解压http://www.bluesunrise.com/maven2/repository.zip在这个目录
    • 创建/JetspeedTraining/resources目录,解压http://portals.apache.org/tutorials/resources/jetspeed-2-resources.zip后的文件夹改名为resources后放在这里
    • 创建/JetspeedTraining/database目录,用于存放Derby数据库文件(简化配置,暂不使用mysql,相关配置在jetspeed的getting started文档有,很简单)
    • 创建/JetspeedTraining/workspace目录,作为工作目录
    • 配置:拷贝/JetspeedTraining/resources/maven/settings.xml.jetexpress “%USERPROFILE%/.m2/settings.xml”
      !!!未做任何修改,主要是上面的配置是按它给的配置文件配的

注1 : /JetspeedTraining/database/jetexpress目录不能预先创建,只能创建/JetspeedTraining/database目录,否则3.2步时会出现数据库无法创建的错误。

建好以后目录结构如下:
C:/JETSPEEDTRAINING
├─database
│  └─jetexpress
├─maven
│  └─repository
│      ├─ant

│      └─xml-apis
├─resources
│  ├─applications

│  └─seed-data
├─tomcat-express
│  ├─bin

│  ├─temp
│  ├─webapps
│  └─work
└─workspace

…处表示省略了若干目录

3. 开始Tutorial
3.1 创建jetexpress工程(a new custom portal named jetexpress)
cd /JetspeedTraining/workspace

mvn archetype:create -DarchetypeGroupId=org.apache.portals.jetspeed-2
                     -DarchetypeArtifactId=portal-archetype
                     -DarchetypeVersion=2.1-dev
                     -DgroupId=org.apache.portals.tutorials
                     -DartifactId=jetexpress
                     -Dversion=1.0
3.2 编译创建的portal工程 (build the portal)
cd /JetspeedTraining/workspace/jetexpress   

mvn -P tomcat,min

3.2 运行自定义Jetspeed Portal
这里本文使用的tomcat是作者另外安装的,没有原文提到的catdebug,启动方式略有不同
cd tomcat-express
cd bin
startup.bat

3.3 访问http://localhost:8080/jetexpress/portal/

4 操作过程中遇到的问题及解决办法(FAQ:常见问题列表)
4.1. Jetspeed Tutorial文中提到的目录到哪里找
见本文第2节
4.2. Tomcat需要如何配置
修改”%USERPROFILE%/.m2/settings.xml中的tomcat目录到指定目录,或拷贝tomcat

到/JetspeedTraining/tomcat-express目录,
修改/JetspeedTraining/tomcat-express/conf/tomcat-users.xml文件如下(全部内容):
<?xml version=”1.0″ encoding=”UTF-8″?>
<tomcat-users>
  <user name=”tomcat” password=”tomcat” roles=”tomcat” />
  <user username=”j2deployer” password=”j2deployer” roles=”admin,manager,tomcat”/>
</tomcat-users>

4.3. 使用默认数据库配置,似乎编译过程都正常,启动tomcat后,访问时报以下异常
org.apache.jetspeed.pipeline.PipelineException: Falied to create capabilitied:  We were

unable to build a capability map for the agent, Mozilla/4.0.  This might be an indiciation

that the capability database has not been correctly initialized.
看异常信息,知道是数据库初始化失败,但是由于对Derby数据库不熟,无法查找具体原因,只能选择换

到mysql上,步骤如下:
4.3.1 安装mysql数据库
创建用户jetexpress,密码jetexpress
创建数据库jetexpress
create database jetexpress;
4.3.2 准备mysql驱动
放到c:/JetspeedTraining/mysql-connector-java-5.0.3-bin.jar
这里作者用的是5.0.3版本的驱动,路径与下面的配置文件统一即可,无特殊要求

拷贝到C:/JetspeedTraining/tomcat-express/shared/lib下面一份
这里maven -P tomcat,min的时候不会拷贝这个驱动文件,所以需要手动加,加在
具体项目的lib下面也可以,这里放在tomcat下面,防止clean时删掉

4.3.3 修改”%USERPROFILE%/.m2/settings.xml”数据库部分
  <org.apache.jetspeed.production.jdbc.drivers.path>c:/JetspeedTraining/mysql-connector-

java-5.0.3-bin.jar</org.apache.jetspeed.production.jdbc.drivers.path>
               

<org.apache.jetspeed.production.database.default.name>mysql</org.apache.jetspeed.production.

database.default.name>

               

<org.apache.jetspeed.production.database.url>jdbc:mysql://localhost:3306/jetexpress</org.apa

che.jetspeed.production.database.url>
               

<org.apache.jetspeed.production.database.driver>com.mysql.jdbc.Driver</org.apache.jetspeed.p

roduction.database.driver>
               

<org.apache.jetspeed.production.database.user>jetexpress</org.apache.jetspeed.production.dat

abase.user>
               

<org.apache.jetspeed.production.database.password>jetexpress</org.apache.jetspeed.production

.database.password>

4.3.4 清理一下
删除tomcat/webapps目录下的所有目录及文件
删除tomcat/work目录下的所有目录及文件
mvn clean

4.3.5 重新编译,启动tomcat
mvn -P tomcat,min
startup.bat
终于看到可以的jetspeed portal了!

5. 总结

第4部分遇到的问题在Google搜索答案的时候,基本上每个问题都有人在问,但是都没有准确答案,所以都是作者自己摸索出来的,尤其是最后一个,回答该问题的是Jetspeed Tutorial 的作者,只是提醒发问的人注意错误信息是“数据库初始化错误(Looks like the database isn’t initialized. )”,不过这个提醒还是比较有价值的,我的反应就是直接换了Mysql数据库。Tutorial 作者在回答另外一个询问关于tomcat目录问题时如是说:

this is just a tutorial and the least amount of parameters during  
training the less mistakes trainees can make…. “ 

Again as I stated on other threads on this list, I am rewriting the  
tutorial to make it easier to install and learn with

所以现在这份Tutorial ,有好多处看不明白前因后果,也就忍了吧,呵呵,另外,自己研究得到答案的过程其实是最好的学习过程。