存档Portal

Jetspeed2的问题

当把写好的Portalet放到jetspeed/WEB-INF/deploy目录下之后,jetspeed会自动部署,不过是部署成为另外的一个应用。接下来在引用此portlet的时候会出现Failed to find Servlet context for Portlet Application的错误。其原因是这样部署需要cross context支持,按理说Tomcat 5.5支持的,不过总是出现这个错误。

暂时的解决办法是为portalet的war加上jetspeed-前缀,这样会自动部署到apps目录,这样就可以在一个应用中访问了。

留言

Jetspeed2 Step by Step

Jetspeed2是一个企业级的开源门户:http://portals.apache.org/jetspeed-2

首先需要下载Maven,Jetspeed2用的还是Maven 1.0,所以多少还是有些不太习惯。下载的地址是:http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-1.0.2.exe

Maven下载后安装即可,并把安装目录添加到Path中。自己建立一个文件夹,比如C:\home\myportal,在下面新建一个build.properties文件,其内容是:maven.repo.remote = http://www.bluesunrise.com/maven, http://www.ibiblio.org/maven, http://dist.codehaus.org, http://cvs.apache.org/repository

然后在命令行运行:maven -DartifactId=maven-jetspeed2-plugin -DgroupId=org.apache.portals.jetspeed-2 -Dversion=2.0 plugin:download

注意要和之前的属性文件在同一个目录下运行。之后Maven就开始下载所需要的插件。插件下载完成之后,运行maven j2:portal.genapp。此时可能会出现某些插件无法下载的情况,可多试几次。如果实在不行,可以用下载工具到build.properties里面列出的网站直接下载,然后拷贝到${USER_HOME}/.maven/repository下的相应目录中即可。手动下载的时候注意连同plugins, poms, jars目录也要下载,保证目录结构完全相同。

接下来配置数据库,Jetspeed默认附带的是HSQLDB,毕竟不适合产品发布。接下来在build.properties中配置数据库,我用的是MYSQL:

# ————————————————————————-
# configure MySQL Test DB (only needed when running unit tests)
# ————————————————————————-
org.apache.jetspeed.test.database.default.name=mysql
org.apache.jetspeed.test.database.url = jdbc:mysql://localhost:3306/jetspeed?useUnicode=true&characterEncoding=UTF-8
org.apache.jetspeed.test.database.driver = com.mysql.jdbc.Driver
org.apache.jetspeed.test.database.user = jetspeed
org.apache.jetspeed.test.database.password = jetspeed
# ————————————————————————-
# configure MySQL Production DB
# ————————————————————————-
org.apache.jetspeed.production.database.default.name=mysql
org.apache.jetspeed.production.database.url = jdbc:mysql://localhost:3306/jetspeed?useUnicode=true&characterEncoding=UTF-8
org.apache.jetspeed.production.database.driver = com.mysql.jdbc.Driver
org.apache.jetspeed.production.database.user = jetspeed
org.apache.jetspeed.production.database.password = jetspeed
# ————————————————————————-

# My SQL Driver Path Example, test and production
org.apache.jetspeed.test.jdbc.drivers.path = D:/thirdparty/mysql-connector-java-3.1.12-bin.jar
org.apache.jetspeed.production.jdbc.drivers.path = D:/thirdparty/mysql-connector-java-3.1.12-bin.jar

之后运行:maven j2:db.recreate,就可以在新建的数据库中构建Jetspeed所需的表。之后依次运行j2:portal.conf.jetspeed,j2:portal.conf.ojb就可以为你的Portal生成配置信息。

接着运行war:install可以把生成的war文件部属到本地仓库中以备部署。接着修改build.properties中内容,添加应用服务器的信息:

# required application server properties
org.apache.jetspeed.server.home                      = E:/Program Files/Apache Software Foundation/Tomcat 5.5
org.apache.jetspeed.server.shared                    = ${org.apache.jetspeed.server.home}/shared/lib/
org.apache.jetspeed.deploy.war.dir                   = ${org.apache.jetspeed.server.home}/webapps/
org.apache.jetspeed.services.autodeployment.user     = j2deployer
org.apache.jetspeed.services.autodeployment.password = xxxxx
org.apache.jetspeed.catalina.version.major           = 5.5

最后运行j2:portal.deploy就可以部署应用了。

 

留言