mysql - Glassfish 上的 Hippo cms 和 mysql

标签 mysql glassfish hippocms

我在向 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 中的新 workspace.xml (/opt/glassfish4/glassfish/domains/domain1/applications/cms/WEB-INF/storage/workspaces/default/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 中有我可以编辑的所有这些数据。

感谢阅读。

最佳答案

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

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

Additional question. How to check what is in the database? There are no tables like "Book" "Author" "Shop". But in server Hippo have all this data which I can edit.

Jackrabbit 中的持久化有点复杂,阅读 configuration overview documentation 是有意义的和 persistence manager documentation第一的。内容和数据的持久性由处理内容节点和属性的持久性存储的内部 Jackrabbit 组件处理。属性值也存储在持久性管理器中,大二进制值除外(通常存储在数据存储中)。

关于mysql - Glassfish 上的 Hippo cms 和 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28339871/

相关文章:

mysql - 在mysql存储过程中声明变量

php - 在 PHP5 中处理 Unicode 的指南?

mysql - 在Excel中多次执行SQL查询并根据行更改变量

java - Glassfish服务器: How to get name of application deployment from inside glassfish application?

java - Glassfish 中的 NoClassDefFoundError :(

mysql - 了解 mysql.log 的输出

java - JSP/Glassfish 的 PHP .htaccess 模拟

java - BeanWriter 不工作 - java.lang.NullPointerException

maven - Tomcat VirtualWebappLoader 停止为 Java 类工作

java - 如何摆脱 Hippo CMS 13 中的/站点?