3

我在向 Glassfish 添加 mysql 数据库时遇到了一个大问题。我完成了位于http://www.onehippo.org/library/deployment/configuring/configuring-hippo-7-for-mysql.html的所有步骤。

当我使用

$ mvn clean install
$ mvn -P cargo.run

看起来不错,因为在我的 workspace.xml 中我有:

<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
  <param name="url" value="java:comp/env/jdbc/repositoryDS"/>
  <param name="driver" value="javax.naming.InitialContext"/>
  <param name="schemaObjectPrefix" value="${wsp.name}_"/>
  <param name="schema" value="mysql"/>
</FileSystem>

接下来我用

$ mvn clean install
$ mvn -P dist

并将创建的 cms.war 和 site.war 部署到 glassfish 服务器(以前,我复制了所有库并且一切正常。受https://blogs.oracle.com/geertjan/entry/hippo_tip_deploying_hippo_to的启发)。所有项目工作正常。

问题是数据库。在 glassfish (/opt/glassfish4/glassfish/domains/domain1/applications/cms/WEB-INF/storage/workspaces/default/workspace.xml) 的新 workspace.xml 中,我有:

<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
  <param name="path" value="${wsp.home}"/>
</FileSystem>

<PersistenceManager   class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
  <param name="url" value="jdbc:h2:file:${wsp.home}/db"/>
  <param name="schemaObjectPrefix" value="${wsp.name}_"/>
  <param name="minBlobSize" value="4194304"/>
</PersistenceManager>

并且服务器在 storage/workspace/default 中创建了 db.h2.db 文件,但我需要在 mysql 中有一个基础。我能做错什么?

附加问题。如何检查数据库中的内容?在 mysql hippo 中创建了这样的东西:

+--------------------+
| Tables_in_hippo    |
+--------------------+
| DATASTORE          |
| DEFAULT_BINVAL     |
| DEFAULT_BUNDLE     |
| DEFAULT_FSENTRY    |
| DEFAULT_NAMES      |
| DEFAULT_REFS       |
| REPOSITORY_FSENTRY |
| VERSION_BINVAL     |
| VERSION_BUNDLE     |    
| VERSION_FSENTRY    |
| VERSION_NAMES      |
| VERSION_REFS       |
+--------------------+

没有像“Book”“Author”“Shop”这样的表。但是在服务器 Hippo 中有我可以编辑的所有这些数据。

谢谢阅读。

4

1 回答 1

1

您的 MySQL 配置似乎很好。您必须记住,最重要的是所有配置都需要在repository.xml文件中正确。一旦存储库第一次初始化, workspace.xml就会从 repository.xml 文件中生成/提取。因此,如果您在对 MySQL 进行正确设置之前部署了 Hippo,那么您的目录中可能有一个旧的 workspace.xml,这会导致使用 H2 db。

您链接到的第一篇文章包含一个名为“使存储库使用此配置文件”的部分。如果您想使用自己的配置而不是利用 H2 数据库的内置配置,这一点非常重要。如果您不提供此系统属性,则将使用内置配置。

附加问题。如何检查数据库中的内容?没有像“Book”“Author”“Shop”这样的表。但是在服务器 Hippo 中有我可以编辑的所有这些数据。

Jackrabbit 中的持久性有点复杂,首先阅读配置概述文档持久性管理器文档是有意义的。内容和数据的持久性由处理内容节点和属性的持久存储的内部Jackrabbit 组件处理。属性值也存储在持久性管理器中,除了大的二进制值(通常存储在数据存储中)。

于 2015-02-05T14:21:31.697 回答