TongWeb典型应用场景版本变更说明
本手册的更新是累积的。因此,最新的手册版本包含对以前版本所做的所有更改。
本手册版本适用于TongWeb7.0版本。
Tongweb 7.0 支持liferay portal要点
应用场景: tongweb: 7.0.4.5M2 liferay portal: 6.2.5 GA6 社区版 jdk:jdk1.8.0_221 64-Bit hsqldb-2.6.1 操作系统:window10 64位 系统内存:8GB
本配置都在E:下进行,目录结构如下:
TongWeb7.0:应用服务器的安装目录
portal:应用程序部署目录
适配过程
把从官网下载的liferay的data目录拷贝到E:\portal下
在E:\portal下新建文件夹webapps,并把liferay的主工程ROOT和应用程序管理插件marketplace-portlet拷贝到webapps下
进入E:\portal\webapps\ROOT\WEB-INF,新建文件tongweb-web.xml,并录入以下内容后保存: /
进入E:\portal\webapps\ROOT\WEB-INF\classes,新建文件portal-ext.properties,并录入以下内容后保存:
#通过liferay应用程序管理器上传后地址 auto.deploy.dest.dir=${liferay.home}/webapps #是否开启jsp动态重载功能。默认情况下,此功能处于启用状态。 direct.servlet.context.reload=false #数据库地址 jdbc.default.driverClassName=org.hsqldb.jdbcDriver jdbc.default.password=123456 jdbc.default.url=jdbc:hsqldb:mem:mydb
进入E:\TongWeb7.0\bin,新建文件portal-setup-wizard.properties,并录入以下内容后保存: admin.email.from.address=test@liferay.com admin.email.from.name=Test Test liferay.home=E:/portal setup.wizard.enabled=false
进入E:\TongWeb7.0\bin,修改external.vmoptions,红色为修改的内容:
#jvm_options -Xms8192m -Xmx8192m -XX:CICompilerCount=6 -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -server -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -Djava.io.tmpdir=${TongWeb_Base}/temp -Duser.dir=${TongWeb_Base}/bin -Djava.security.egd=file:/dev/./urandom -XX:LogFile=${TongWeb_Base}/logs/jvm.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=TongWeb_Base/logs/heap TongWeb_Base/logs/heap{sysdate}.bin -Djava.security.policy=${TongWeb_Base}/conf/tongweb.policy -Djava.endorsed.dirs=${JAVA_ENDORSED_DIRS} -Djava.rmi.server.RMIClassLoaderSpi=com.tongweb.server.TongWebRMIClassLoader -Djava.util.logging.manager=com.tongweb.log.TongwebLogManager -javaagent:${TongWeb_Home}/lib/ejb-agent.jar -Djava.awt.headless=true -Dibm.stream.nio=true -Djava.net.preferIPv4Stack=true -Dcatalina.base=${TongWeb_Base} -Dcom.tongweb.jasper.compiler.Parser.STRICT_WHITESPACE=false -Dfile.encoding=UTF8 -Duser.timezone=GMT+8 -Dcom.sun.media.jai.disableMediaLib=true
进入E:\TongWeb7.0\conf,修改tongweb.xml
修改auto-deploy标签的dir,改为:E:\liferay\cn\portal\webapps
修改 java -jar jetspeedinstaller-2.3.1.jar
2.2本次测试采用的是ORACLE数据库,测试要采用ORACLE12c版本,不能用ORACLE11G,请注意这个提示
1.装好TongWeb7.0.4.5后把tomcat8.5.57/lib下的公用类,放在TongWeb的lib下。
4、 参考conf\Catalina\localhost下jetspeed.xml建数据源jdbc/jetspeed.
把webapps\jetspeed\WEB-INF\lib下jetspeed-security-2.3.0.jar中的lonin.conf删了。否则TongWeb6部上此应用后无法登录TongWeb控制台,因为把LoginModule给覆盖了。
并在TongWeb的conf\security\login.config中加上:
Jetspeed { org.apache.jetspeed.security.impl.DefaultLoginModule required; };
5. 部署webapps下的jetspeed即可。
6. 还要部署demo, j2-admin, webcontent2 这三个应用,并增加参数
-DSharedSessionEnabled=true -DSharedSessionContext=true,
跨上下文的访问
7. 还得把webapps\jetspeed\WEB-INF\lib下的jetspeed-security-2.3.0.jar, db-ojb-1.0.3.jar, slf4j的jar也放在TongWeb的lib下一份。要不那个JAAS配置报找不到类。
8、创建jetspeed安全域和安全用户。
9.最后启动,出现此页面,用户名/密码(jetspeed/jetspeed)登录应当成功。
三、通过CGI支持PHP的方法
安装PHP程序。
TongWeb通过CGI调用PHP,配置参数与tomcat相同,其原理跟tomcat相同,都是通过tomcat的CGI程序调用PHP,具体细节可以查看tomcat说明。
(1)WINDOWS配置方法如下:
启动PHP的CGI程序---php-cgi.exe
(2)LINUX配置方法如下:
前提是要先安装好PHP运行环境,这一步是必须的,请从下载编译安装合适的PHP版本。如果是国产平台,请确保已安装PHP程序,TongWeb不带PHP运行程序。
PHP编译安装大致步骤如下,具体参数依不同版本而不同:
1)解压 bzip2 -d php-7.4.11.tar.bz2
2)解压tar xvf php-7.4.11.tar
3)安装过程中操作系统可能缺少依赖包,需下载安装以下依赖包:
yum -y install libxml2-devel openssl-devel sqlite-devel libcurl-devel libicu-devel gcc-c++ oniguruma oniguruma-devel libxslt-devel libpng-devel libjpeg-devel freetype-devel
4)./configure --prefix=/home/php --enable-fpm --with-fpm-user=tong --with-fpm-group=tong
5)通过fpm方式支持PHP,安装时加--enable-fpm, 另外尽量不要用root用户安装
\6) make
\7) make install7.查看PHP安装版本。
./php -v
PHP 7.4.11 (cli) (built: Oct 28 2020 10:22:44) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
8)配置 php-fpm.conf主文件,进入/home/php/etc目录将php-fpm.conf.defaultf复制一份名为php-fpm.conf。编辑该文件将 pid = run/php-fpm.pid 前的 ; 去掉。
9)修改www.conf文件,进入/home/php/etc/php-fpm.d目录,将www.conf.default复制一份名为www.conf。设置用户组、端口。
#配置用户和组。user = tong group = tong
#在这里配php-fpm的端口 listen = 127.0.0.1:9090
10)修改完成后,执行/home/php/sbin下的php-fpm命令启动, 若启动不报错,且有9090端口监听则启动正常。
更多配置请参考PHP资料: https://www.php.net/manual/zh/
在PHP包里建个WEB-INF目录,建个web.xml中加入:
cgi com.tongweb.web.thor.servlets.CGIServlet com.tongweb.catalina.servlets.CGIServlet cgiPathPrefix WEB-INF/cgi executable *.php css text/css
4、php.ini中配置如下:
; On windows: extension_dir = "ext" cgi.force_redirect = 0 cgi.redirect_status_env ="yes";
- TongWeb7.0应用在jrules场景下
问题1:部署应用tw会自动掉
在部署核心应用claim时部署到一半tw就自动挂掉了,在tw中jvm启动参数加上防退出参数-Djava.security.manager=com.tongweb.checkcode.CheckSystemExitSecurityManager 还是不管用,原因是因为jdk本身存在的bug,更换了jdk环境变量就可以了目前是java version "1.8.0_251"。
Bug说明:https://blog.csdn.net/weixin_39581652/article/details/110617927
问题2:部署应用tw会自动掉
都已部署成功却没有交互成功,报错信息如图所示:
原因是因为没有配置映射JCA的连接池eis/XUConnectionFactory,配置好与rar资源适配器建立连接重启tw交互成功。
问题3:测试应用功能报jsp页面编译错误500
报错信息如图所示:
在tw下的conf中default-web.xml加配置:
在tw下的bin中external.vmoptions加参数:
配置完成重启tw配置生效没有再出现,只有几个别的jsp页面还是报一样的错,如图所示:
单独把UIRepairChannel.jsp拿出来,打开看到有几处的参数没有值,都删掉以后可以正常访问。
问题4:部署ear应用访问不了
报错如图所示:
1.原因是因为myfaces实现,需要将myfaces相关jar里的tld文件放入应用的WEB-INF,否则无法识别这些TLD。
2.通过tw去实现jsf,进入tw下的conf中编辑tongweb.xml,把改成true。
3.应用web.xml中的listener注释打开。
4.前三步都配置生效后访问没有再有500报错,而是访问404没有找到网页,把里面的war包单独拿出来部署可以正常访问功能正常。
原因是在使用jsf时,加载资源文件的问题,把tw中的补丁替换一下:
\lib\tongweb.jar\com\tongweb\tomee\catalina\
重启tw部署的ear应用访问res正常。