Liferay Portal 6.x与WildFly AS 10的集成过程详解
来源:互联网 发布:大陆没有言论自由 知乎 编辑:程序博客网 时间:2024/05/21 05:40
WildFly AS是继JBoss AS之后,社区版应用服务器的首选,目前的最新版本是WildFly AS 10。
Portal容器之一,JBoss AS曾经的亲密伙伴JBoss Portal,首先结合eXo升级到GateIn Portal,继而不断更新直至2014.5发布了与JBoss AS 7集成的GateIn Portal3.8.1.Final,此后近2年时间里已经没有更新。
基于WildFly AS的“内核+扩展”模式,GateIn Portal是以JBoss AS的扩展的方式被集成到JBoss AS中的,两者有紧密的耦合。因而要升级JBoss AS到WildFly AS并完成GateIn Portal的集成,必须熟悉GateIn Portal本身,并且需要熟悉WildFly AS的扩展机制,最后还要了解WildFly AS中作为Web服务器,Tomcat的替代者Undertow,难度可想而知。
退而求其次,笔者选择了Liferay Portal。
相对于GateIn Portal与JBoss AS的紧密集成, Liferay Portal就显得比较中性,其本身支持与多种应用服务器的绑定,包括发布包中对Tomcat、JBoss AS、Glassfish、Jetty和Resin服务器。此外,为了便于与商业服务器的集成,Liferay Portal还提供了Liferay web应用和依赖包,以便于直接部署到商业服务器提供Portal容器。
另外,Liferay Portal还提供了丰富而详尽的文档,虽然文档与软件的发布相比有一定的滞后性,但是仍然具有重要的参考价值。
要实现Liferay Portal 6.x与WildFly AS 10的集成,笔者重点参考了"INSTALLING LIFERAY ON JBOSS 7.1"文档,具体步骤如下:
- 下载并解压缩WildFly AS 10,设置环境变量JBOSS_HOME指向其解压缩的根目录;
- 下载Liferay web应用和依赖包;
- 添加liferay module:
将Liferay 的依赖包解压缩的jars复制到上述目录,默认包括
- portal-service.jar
- portlet.jar
- hsql.jar
在上述目录中创建module.xml文件如下
<?xml version="1.0"?><module xmlns="urn:jboss:module:1.0" name="com.liferay.portal"> <resources> <!--resource-root path="mysql-connector-java-[version]-bin.jar" /--> <resource-root path="hsql.jar" /> <resource-root path="portal-service.jar" /> <resource-root path="portlet.jar" /> </resources> <dependencies> <module name="javax.api" /> <module name="javax.mail.api" /> <module name="javax.servlet.api" /> <module name="javax.servlet.jsp.api" /> <module name="javax.transaction.api" /> </dependencies></module>
WildFly AS的启动模式有多种,主要是独立模式standalone和域模式domain。由于域模式的限制,这里采用独立模式进行配置,修改standalone.xml(或standalone-full.xml)文件如下:
在</extensions>元素后面添加如下内容:
<system-properties> <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8" /> <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true" /> </system-properties>
在<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">元素中,为其子元素deployment-scanner设置deployment-timeout属性如下:
<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" deployment-timeout="240" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/> </subsystem>在<subsystem xmlns="urn:jboss:domain:security:1.2">元素的<security-domains>元素中,添加新的安全域的认证方式如下:
<security-domain name="PortalRealm"> <authentication> <login-module code="com.liferay.portal.security.jaas.PortalLoginModule" flag="required"/> </authentication> </security-domain>
由于采用默认的HSQL,这里就不再设置数据源。
必要的情况下,设置WildFly AS的启动参数,修改$JBOSS_HOME/bin/standalone.conf(Windows平台下是$JBOSS_HOME/bin/standalone.conf.bat文件)如下:
Windows平台
set "JAVA_OPTS=-Xms256M -Xmx1024M"...rem # install liferay portalset "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 -Djava.security.policy=$JBOSS_HOME/bin/server.policy -Djboss.home.dir=$JBOSS_HOME -Duser.timezone=GMT+8"
Linux平台
JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx1024m"
注意:-XX:MaxPermSize参数已经在JDK 1.8中过时
<path name="com/sun/crypto" /> <path name="com/sun/crypto/provider" /> <path name="com/sun/image/codec/jpeg" /> <path name="com/sun/org/apache/xml/internal/resolver" /> <path name="com/sun/org/apache/xml/internal/resolver/tools" />
最后是安全性设置,创建$JBOSS_HOME/bin/server.policy文件如下:
grant { permission java.security.AllPermission;};
至此,为部署Liferay Portal的准备工作就绪,下面开始部署Liferay Portal。下载的Liferay web应用就是个war文件,具体部署过程如下:
- 在$JBOSS_HOME/standalone/deployments目录下创建ROOT.war子目录;
- 将下载的war文件解压缩到ROOT.war子目录中;
- 删除$JBOSS_HOME/standalone/deployments/ROOT.war/WEB-INF/lib/eclipselink.jar文件
- 修改ROOT.war/WEB-INF/jboss-deployment-structure.xml文件
<?xml version="1.0"?><jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1"><deployment><exclusions><module name="org.apache.log4j" /><module name="org.hibernate" /></exclusions><dependencies><module meta-inf="export" name="com.liferay.portal"><imports><include path="META-INF" /></imports></module><module name="javax.mail.api" /><module name="org.apache.xerces" /><module name="org.jboss.modules" /></dependencies></deployment></jboss-deployment-structure>
重启WildFly AS,正常情况下就可以看到ROOT.war被成功部署。
打开浏览器访问http://127.0.0.1:8080/即可看到Liferay Portal的主页如下图所示。
- Liferay Portal 6.x与WildFly AS 10的集成过程详解
- JOSSO入门指南及其与WildFly AS 10的集成
- 为WildFly AS 10中的Liferay Portal 6.2配置JOSSO Agent
- 定制JOSSO 1.8.10 Gateway登录页面及与WildFly AS 10的集成
- Liferay 的 portal 渲染过程
- LifeRay Portal 6学习笔记9:Liferay与MYSQL的集成
- WildFly AS提供的WildFly Maven Plugin插件详解
- WildFly AS提供的WildFly Maven Plugin插件详解
- 深入浅出Liferay Portal (10)
- 深入浅出Liferay Portal (10)
- 搭建Liferay Portal 开发环境(Ext Environment)的详细过程
- 搭建Liferay Portal 开发环境(Ext Environment)的详细过程
- WildFly AS 10中基于PicketLink的SAML SSO实现
- Liferay Portal简单的demo
- Liferay Portal 集成CAS单点登陆(SSO)完成对项目的访问控制 (六)
- liferay portal
- Liferay Portal 6.2 CAS 使用与配置
- 部署在WildFly上的EJB客户端,调用另一个WildFly上的EJB服务的过程详解
- linux Zookeeper集群搭建
- SpringMVC入门总结
- Java命名规范
- C++11学习笔记
- mysql优化-innodb表
- Liferay Portal 6.x与WildFly AS 10的集成过程详解
- HLS科普2 URI:URI与URL的区别
- 14、泛型与其他API
- Android 错误:IllegalStateException: Can not perform this action after onSaveInstanceState
- 用matplotlib作图步骤
- 如何查看现有项目的struts和hibernate和spring版本
- 通过metadata认识元数据
- json web token登录
- 2016.1.18个人总结