当前位置: 首页 > 工具软件 > Jetspeed > 使用案例 >

使用Maven3从源代码构建和部署Jetspeed 2.3

欧阳德运
2023-12-01
名词解释
Portal门户,提供包括内容聚合、单点登陆、个性化定制和安全管理等服务的基础Web平台。
PortletPortlet是基于web的Java组件。它由Portlet容器管理,能够处理请求,产生动态内容。Portlet被Portal用作为可插拔的用户接口组件,为信息系统提供展现。由Portlet动态产生的内容也被叫做fragment。fragment是遵循某种规则的标记(例如:HTML, XHTML,WML),可与其他的fragment一起建立一个完整的文档。一般一个Portlet产生的内容和其他的Portlet产生的内容聚集在一起形成Portal网页。
Portlet ContainerPortlet在Portlet容器中运行,Portlet容器为Portlet提供必需的运行环境。Portlet容器包含Portlet(组件)并且管理它们的生命周期,它也为Portlet的参数设置提供持久化的存储。Portlet 容器不是一个类似于 servlet 容器的独立容器。它是在 servlet 容器上通过扩展方式实现的,并重用 servlet容器提供的功能。从Portal的角度来看,Portlet Container是Portal平台所提供的众多服务之一。
JSR168,JSR286由于越来越多的公司开发了各自的Portal组件和基于其的Portal产品(如Bea, IBM, Oracle, Sun, Sybase, Novell, SAP, Jetspeed, Vignette 等.这种互不兼容的接口实现不断带给程序提供商各种问题和麻烦, 为了解决这种问题, JCP发布了JSR168 (Java Specification Request), Portlet Specification, 用以提供不同Portal和Portlets之间的互用性。JSR 286是168规范的延伸,是目前最新标准规范,目前仍处在draft状态。
SSO SingleSign-On,即单点登陆。当一个大系统中存在多个子系统时,用户只需要正确登陆其中任何一个子系统,就可以在各个子系统中来回自由切换和使用授予该用户权限的各种资源。一般可以分为两种类型:Web应用之间的单点登陆和门户Web应用和它所连接的后台系统之间的单点登陆。SSO是任何一个门户产品必须解决的问题,必须提供的服务。
WSRPWSRP是OASIS组织的一个规范,它定义了远程门户网站的Web服务。通过Web Service将远程内容抓取到本地,最后通过本地内容聚合引擎展示出来。
  • 从源代码构建和部署Jetspeed-2具有以下先决条件:

    • Java Development Kit 1.7
    • Apache Maven 3.3.1+
    • Apache Tomcat 7.0+
    • org.apache.portals.jetspeed2设置插件组的配置,请参阅概览页面上的:前提条件:配置Maven设置插件组
    • 下载的版本(Jetspeed 2 - How to Download Jetspeed-2)或使用SVN客户端工具直接从ASF Subversion源响应中签出。您可以从中签出源代码http://svn.apache.org/repos/asf/portals/jetspeed-2/portal/trunk/

  • 配置生成环境:

    构建期间以及jetspeed演示门户部署所需的所有设置都需要在项目根文件夹中的单个文件中定义:jetspeed-mvn-settings.xml。

    注意:未提供此文件,但需要先手动创建。

    然而,为了方便起见,提供了一个示例文件jetspeed-mvn-settings-sample.xml,它可以简单地复制到jetspeed-mvn-settings.xml

        数据库配置:

        jetspeed-mvn-settings-sample.xml提供了使用embbeded Derby数据库的默认配置,如果这适合您,可能只需要更改Derby数据库的位置和部署目标目录(org.apache.jetspeed.server.home):

<properties>
    ...
    <!-- Your Tomcat Installation Path -->
    <org.apache.jetspeed.server.home>/home/demo/tomcat-7</org.apache.jetspeed.server.home>
    <org.apache.jetspeed.catalina.version.major>7</org.apache.jetspeed.catalina.version.major>
                        
    <!-- Production jdbc driver artifact properties -->
    <org.apache.jetspeed.production.jdbc.driver.groupId>org.apache.derby</org.apache.jetspeed.production.jdbc.driver.groupId>
    <org.apache.jetspeed.production.jdbc.driver.artifactId>derby</org.apache.jetspeed.production.jdbc.driver.artifactId>
    <org.apache.jetspeed.production.jdbc.driver.version>10.3.2.1</org.apache.jetspeed.production.jdbc.driver.version>
    
    <!-- Production database name, JDBC url, JDBC driver name and connection information -->
    <org.apache.jetspeed.production.database.default.name>derby</org.apache.jetspeed.production.database.default.name>
    <org.apache.jetspeed.production.database.url>jdbc:derby:/tmp/derby/productiondb;create=true</org.apache.jetspeed.production.database.url>
    <org.apache.jetspeed.production.database.driver>org.apache.derby.jdbc.EmbeddedDriver</org.apache.jetspeed.production.database.driver>
    <org.apache.jetspeed.production.database.user></org.apache.jetspeed.production.database.user>
    <org.apache.jetspeed.production.database.password></org.apache.jetspeed.production.database.password>
    
    ...
    
    <!-- You can also configure test database properties below if you want to run unit tests. -->
    
    <!-- Test jdbc driver artifact properties -->
    <org.apache.jetspeed.test.jdbc.driver.groupId>org.apache.derby</org.apache.jetspeed.test.jdbc.driver.groupId>
    <org.apache.jetspeed.test.jdbc.driver.artifactId>derby</org.apache.jetspeed.test.jdbc.driver.artifactId>
    <org.apache.jetspeed.test.jdbc.driver.version>10.3.2.1</org.apache.jetspeed.test.jdbc.driver.version>
    
    <!-- Test database name, JDBC url, JDBC driver name and connection information -->
    <org.apache.jetspeed.test.database.default.name>derby</org.apache.jetspeed.test.database.default.name>
    <org.apache.jetspeed.test.database.url>jdbc:derby:/tmp/derby/testdb;create=true</org.apache.jetspeed.test.database.url>
    <org.apache.jetspeed.test.database.driver>org.apache.derby.jdbc.EmbeddedDriver</org.apache.jetspeed.test.database.driver>
    <org.apache.jetspeed.test.database.user></org.apache.jetspeed.test.database.user>
    <org.apache.jetspeed.test.database.password></org.apache.jetspeed.test.database.password>
    ...
</properties>

注意:根据您的数据库平台,org.apache.jetspeed.production.database.default.name属性的值可以是以下值之一,具体取决于自己的数据库平台:

  • db2
  • db2v8
  • derby
  • mssql
  • mysql
  • mysql5
  • oracle9
  • oracle10
  • postgresql
  • sapdb

有关支持的数据库的详细信息,请参阅ApacheDB项目- DdlUtils主页(Welcome to DdlUtils)

以下jetspeed-mvn-settings.xml提供了使用PostgreSQL数据库的示例配置:

<properties>
    ...
    <!-- Your Tomcat Installation Path -->
    <org.apache.jetspeed.server.home>/home/demo/tomcat-7</org.apache.jetspeed.server.home>
    <org.apache.jetspeed.catalina.version.major>7</org.apache.jetspeed.catalina.version.major>

    <!-- Production jdbc driver artifact properties -->
    <org.apache.jetspeed.production.jdbc.driver.groupId>postgresql</org.apache.jetspeed.production.jdbc.driver.groupId>
    <org.apache.jetspeed.production.jdbc.driver.artifactId>postgresql</org.apache.jetspeed.production.jdbc.driver.artifactId>
    <org.apache.jetspeed.production.jdbc.driver.version>8.3-603.jdbc3</org.apache.jetspeed.production.jdbc.driver.version>
    
    <!-- Production database name, JDBC url, JDBC driver name and connection information -->
    <org.apache.jetspeed.production.database.default.name>postgresql</org.apache.jetspeed.production.database.default.name>
    <org.apache.jetspeed.production.database.url>jdbc:postgresql://localhost/j2</org.apache.jetspeed.production.database.url>
    <org.apache.jetspeed.production.database.driver>org.postgresql.Driver</org.apache.jetspeed.production.database.driver>
    <org.apache.jetspeed.production.database.user>j2</org.apache.jetspeed.production.database.user>
    <org.apache.jetspeed.production.database.password>j2</org.apache.jetspeed.production.database.password>
    
    ...
    
    <!-- You can also configure test database properties below if you want to run unit tests. -->
    
    <!-- Test jdbc driver artifact properties -->
    <org.apache.jetspeed.test.jdbc.driver.groupId>postgresql</org.apache.jetspeed.test.jdbc.driver.groupId>
    <org.apache.jetspeed.test.jdbc.driver.artifactId>postgresql</org.apache.jetspeed.test.jdbc.driver.artifactId>
    <org.apache.jetspeed.test.jdbc.driver.version>8.3-603.jdbc3</org.apache.jetspeed.test.jdbc.driver.version>
    
    <!-- Test database name, JDBC url, JDBC driver name and connection information -->
    <org.apache.jetspeed.test.database.default.name>postgresql</org.apache.jetspeed.test.database.default.name>
    <org.apache.jetspeed.test.database.url>jdbc:postgresql://localhost/j2test</org.apache.jetspeed.test.database.url>
    <org.apache.jetspeed.test.database.driver>org.postgresql.Driver</org.apache.jetspeed.test.database.driver>
    <org.apache.jetspeed.test.database.user>j2test</org.apache.jetspeed.test.database.user>
    <org.apache.jetspeed.test.database.password>j2test</org.apache.jetspeed.test.database.password>
    ...
</properties>

 下面提供了使用MySQL数据库的示例配置:

<properties>
    ...
    <!-- Your Tomcat Installation Path -->
    <org.apache.jetspeed.server.home>/home/demo/tomcat-7</org.apache.jetspeed.server.home>
    <org.apache.jetspeed.catalina.version.major>7</org.apache.jetspeed.catalina.version.major>
    
    <!-- Production jdbc driver artifact properties -->
    <org.apache.jetspeed.production.jdbc.driver.groupId>mysql</org.apache.jetspeed.production.jdbc.driver.groupId>
    <org.apache.jetspeed.production.jdbc.driver.artifactId>mysql-connector-java</org.apache.jetspeed.production.jdbc.driver.artifactId>
    <org.apache.jetspeed.production.jdbc.driver.version>5.1.6</org.apache.jetspeed.production.jdbc.driver.version>
    
    <!-- Production database name, JDBC url, JDBC driver name and connection information -->
    <org.apache.jetspeed.production.database.default.name>mysql5</org.apache.jetspeed.production.database.default.name>
    <org.apache.jetspeed.production.database.url>jdbc:mysql://localhost:3306/j2</org.apache.jetspeed.production.database.url>
    <org.apache.jetspeed.production.database.driver>com.mysql.jdbc.Driver</org.apache.jetspeed.production.database.driver>
    <org.apache.jetspeed.production.database.user>j2</org.apache.jetspeed.production.database.user>
    <org.apache.jetspeed.production.database.password>j2</org.apache.jetspeed.production.database.password>
    
    ...
    
    <!-- You can also configure test database properties below if you want to run unit tests. -->
    
    <!-- Test jdbc driver artifact properties -->
    <org.apache.jetspeed.test.jdbc.driver.groupId>mysql</org.apache.jetspeed.test.jdbc.driver.groupId>
    <org.apache.jetspeed.test.jdbc.driver.artifactId>mysql-connector-java</org.apache.jetspeed.test.jdbc.driver.artifactId>
    <org.apache.jetspeed.test.jdbc.driver.version>5.1.6</org.apache.jetspeed.test.jdbc.driver.version>
    
    <!-- Test database name, JDBC url, JDBC driver name and connection information -->
    <org.apache.jetspeed.test.database.default.name>mysql5</org.apache.jetspeed.test.database.default.name>
    <org.apache.jetspeed.test.database.url>jdbc:mysql://localhost:3306/j2test</org.apache.jetspeed.test.database.url>
    <org.apache.jetspeed.test.database.driver>com.mysql.jdbc.Driver</org.apache.jetspeed.test.database.driver>
    <org.apache.jetspeed.test.database.user>j2test</org.apache.jetspeed.test.database.user>
    <org.apache.jetspeed.test.database.password>j2test</org.apache.jetspeed.test.database.password>
    ...
</properties>

注意:要使用MySQL数据库正确运行单元测试,应该启用InnoDB存储引擎并使用InnoDB表。InnoDB是MySQL数据库的事务安全(符合ACID)存储引擎。有关详细信息,请参阅MySQL文档。

配置Tomcat

        需要对Tomcat的默认配置进行一些更改和添加,以支持适当的Portlet API会话管理需求和Jetspeed Portlet应用程序管理集成:

  • <TOMCAT_HOME>/conf/server.xml:
通过添加以下属性和值来修改连接器元素(端口8080上的默认值)
emptySessionPath="true"

  • <TOMCAT_HOME>/conf/context.xml:
取消注释以下内容以禁用Tomcat重启期间的会话持久性:
<Manager pathname=""/>
  •  可选: <TOMCAT_HOME>/conf/tomcat-users.xml:
选择或添加至少具有角色管理器脚本的特定Tomcat用户,Jetspeed将使用该脚本与Tomcat manager应用程序通信:
<user username="j2deployer" password="&lt;<em>strong</em> password&lt;" roles="manager-script"/>

然后,在门户在运行时读取的jetspeed.properties文件中定义此用户名及其密码,但可以在override.properties中指定overriding和更多秘钥值

 类似资料: