3

我正在尝试在 OpenShift 主机(Tomcat 6 (JBoss EWS 1.0))上配置 xWiki 服务器。我以前从未配置过 Java 服务器,但我遇到了一个问题:

我在我当地的 Ubuntu 上遵循了THIS tuto 并开始工作。但是复制 OpenShift 服务器中的步骤我找不到hibernate.cfg.xml。使用休眠在目录树中查找文件我找到了包含文件jbossews-1.0/jbossews-1.0/work/Catalina/localhost/xwiki/WEB-INF/lib/的文件夹:

hibernate-c3p0-3.6.9.Final.jar
hibernate-core-3.6.9.Final.jar
hibernate-validator-4.3.0.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-commons-annotations-3.2.0.Final.jar

但没有类似于 hibernate.cfg.xml 的东西。我该如何解决?

4

3 回答 3

3

hibernate.cfg.xml 是你的 Hibernate 配置文件,在这里你可以指定数据库的方言、连接驱动、url、用户名、密码等。

例子:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>

  <session-factory>

    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://host/database</property>
    <property name="connection.username">username</property>
    <property name="connection.password">password</property>

    <property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>

    <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    <property name="current_session_context_class">thread</property>
    <property name="hibernate.show_sql">false</property>
  </session-factory>

</hibernate-configuration>

将此文件放在 Java 资源类路径中。有关详细信息,请查看Oracle 的 hibernate.cfg.xmlmkyong 的示例

于 2013-04-27T12:15:59.893 回答
1

这是(无论如何应该是)xWiki 安装问题。如果您使用的是WAR文件,那么当您将WAR放入tomcat webapps目录时,Tomcat通常会将WAR展开到同名目录中。在该目录中,在 WEB-INF 目录中,应该是 hibernate.cfg.xml 文件。通常,这里:

/var/lib/tomcat5.5/webapps/xwiki/WEB-INF/hibernate.cfg.xml

如果您已将 Tomcat 配置为运行 WAR 而不扩展它,那么该文件将位于 WAR 中:

WEB-INF/hibernate.cfg.xml

但在这种情况下,您必须编辑 XML 文件并将其放回 WAR 中以配置应用程序。

于 2013-04-28T17:20:55.177 回答
0

我遇到了同样的问题,通过跟踪 tomcat,我看到它查看了以下位置,其中较长的位置位于我的 openstack 设备的 git 存储库中:

  • /var/lib/openshift/518f381fe0b8cd1de2000181/git/tomcat.git/hibernate.cfg.xml
  • /usr/share/java/tomcat7/hibernate.cfg.xml

我看不到这些位置与命令行或 catalina.properties 中给出的类路径之间有任何关联。git仓库是tomcat的cwd。现在将 hibernate.cfg.xml 放在那里确实有效。但我相信,一旦 openstack 的人意识到将 cwd 放在那里有多乱,他们就会把它移走。

于 2013-05-13T07:39:12.953 回答