lifeary5.2.2+tomcat6.0安装经验

1.对于最新版本的lifeary5.2.2+tomcat6.0,网上说的安装方法是不对的。在tomcat\conf\localhost下边的ROOT.xml里边是没有所谓<resourse>这个标签的,没有默认的那个不能用于开发的数据库标记,更没有注释掉的各种数据库。这些内容都在tomcat\webapps\ROOT\WEB-INF\lib\portal-impl.jar里边的portal.properties里边。默认的是Hypersonic,还有mysql,oracle,db2,postgre各种都被注释掉了。但是解析的时候是先解析ROOT.xml的,如果不改的话,默认是hibersonic数据库,要改的话只能手动写<resourse>进去,加载portal.properties是在连接数据库之后。解析完配置文件就连接数据库,提示信息说要更改数据库设置的话要在portal.properties里面重新设置,尝试在里面设置失败,检测到的还是默认数据库,不能理解。
         2.直接解压捆绑包后,欢迎页面能出来,test用户是不能登陆的。不能理解是什么原因。尝试在ROOT.xml里边加上hibersonic的resource标签失败。但是在启动时确实还要加载这个文件。尽管里边没有关于数据库的配置。能检测在使用的数据库是系统默认的,并给出更换的建议。tomcat log日志没有异常信息出现,hsql日志也没有异常信息。网上基本所有资料基本都说直接能登陆,但是确实不行。
3.更改ROOT.xml,设定数据库为mysql,重启tomcat,无异常,但是检测还是用的hypersonic数据库,纠结。conference/server.xml中有如下信息:
      <!--
      <Realm  className="org.apache.catalina.realm.JDBCRealm"
             driverName="org.gjt.mm.mysql.Driver"
          connectionURL="jdbc:mysql://localhost/authority"
         connectionName="test" connectionPassword="test"
              userTable="users" userNameCol="user_name" userCredCol="user_pass"
          userRoleTable="user_roles" roleNameCol="role_name" />
      -->
尝试去掉注释,结果报打开数据库连接异常, Exception opening database connection
java.sql.SQLException: Access denied for user 'test'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:885)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3421)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1247)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2748)
at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:702)
at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:770)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1006)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
诡异的是接下来继续加载portal.properties,提示检测到在使用hibersonic,并提示要更改配置到portal.properties。
打开portal.properties发现以下信息

    # Hypersonic
    #
    jdbc.default.driverClassName=org.hsqldb.jdbcDriver
    jdbc.default.url=jdbc:hsqldb:${liferay.home}/data/hsql/lportal
    jdbc.default.username=sa
    jdbc.default.password=

    #
    # MySQL
    #
    #jdbc.default.driverClassName=com.mysql.jdbc.Driver
    #jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
    #jdbc.default.username=
    #jdbc.default.password=
    尝试注掉hipersonic 去掉mysql的注释,报跟上面同样的错,同时检测在使用hibersonic。重新注掉server.xml里边<Realm  className="org.apache.catalina.realm.JDBCRealm"
             driverName="org.gjt.mm.mysql.Driver"
          connectionURL="jdbc:mysql://localhost/authority"
         connectionName="test" connectionPassword="test"
              userTable="users" userNameCol="user_name" userCredCol="user_pass"
          userRoleTable="user_roles" roleNameCol="role_name" />,没有异常,发现在portal.properties里边对数据库做的配置不起作用。
无奈到社区发贴,人称在portal.properties中修改即可,反复验证,怀疑此人说谎。另有高人说,要在webapps\ROOT\WEB-INF\classes\portal-ext.properties中设置,打开目录,发现没有该文件。。(可自己新建)
4.下载Liferay源程序包liferay-portal-src-5.2.2.zip。现在把它解压缩到C:\Projects\liferay-5.2.2\目录下,然后把生成的目录liferay-portal-src-5.2.2重命名为portal,即Liferay的源程序目录是C:\Projects\liferay-5.2.2\portal\
5.确认自己电脑的Windows用户名。在C:\Projects\liferay-5.1.0\portal\目录中建立属性文件release.{用户名}.properties,本人的用户名是Administrator,因此要建立的文件名是release.Administrator.properties,文件内容只有一行:
lp.ext.dir=C:/projects/liferay-5.2.2/ext
然后进入DOS窗口,转入目录C:\Projects\liferay-5.2.2\portal\,执行命令:
ant clean start build-ext
若干分钟后命令执行完成,在C:\Projects\liferay-5.2.2\目录中建立了ext子目录,这是进行二次开发的扩展目录,包含了从源程序目录portal中建立并复制来的java类包、源程序、属性文件和配置文件等等。
6.打开扩展开发目录ext中的部署属性文件app.server.properties,找到单独使用Tomcat服务器的定义参数部分。在该属性文件中,缺省定义Tomcat服务器使用的是Tomcat 5.5版本,而我们使用的是Tomcat 6.0服务器(Liferay-5.1.0+Tomcat-6.0集成包),因此要把原来Tomcat 6.0属性定义的注释符号去除掉(有关Tomcat 5.5的定义还要保留),使得下列定义语句有效:
app.server.tomcat.version=6.0
app.server.tomcat.dir=${app.server.parent.dir}/tomcat-6.0.16
app.server.tomcat.classes.global.dir=${app.server.tomcat.dir}/lib
app.server.tomcat.lib.endorsed.dir=${app.server.tomcat.dir}/lib/ext
app.server.tomcat.lib.global.dir=${app.server.tomcat.dir}/lib/ext
app.server.tomcat.lib.support.dir=${app.server.tomcat.dir}/lib/ext
app.server.tomcat.support.dir=${app.server.tomcat.dir}/lib/ext
app.server.tomcat.zip.name=liferay-portal-tomcat-6.0-${downloads.version}.zip
然后在扩展开发目录ext下,建立对应于用户名的扩展部署属性文件app.server.{用户名}.properties,即app.server.Administrator.properties,其内容如下:
app.server.type=tomcat
app.server.tomcat.dir=C:/Projects/liferay-5.2.2/tomcat-6.0.18
最后,在DOS窗口中进入扩展开发目录C:\Projects\liferay-5.2.2\ext\,执行命令:
ant clean deploy
经过几分钟的处理后,当DOS窗口出现BUILD SUCCESSFULE提示时,部署成功,ext目录中的内容经过编译打包后部署到了运行环境tomcat-6.0目录下。
7.在C:\Projects\liferay5.2.2\tomcat-6.0.18\webapps\ROOT\WEB-INF\classes下面发现portal-ext.properties,打开是空的。## You can override portal.properties by specifying your own settings in this file.将portal.properties中关于mysql的配置拷过来,
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=
注意原来是jdbc.default.username=,这里添加username=root,或者另外创建的账户名即可。
8.启动tomcat,成功!!现在就可以二次开发ext了。
ps:新版本的test已经不能用来登陆了,选择用户login as即可登陆。

你可能感兴趣的:(java,tomcat,mysql,jdbc,ext)