【问题标题】:XWiki + MySQL Database: ErrorsXWiki + MySQL 数据库:错误
【发布时间】:2013-11-03 01:11:23
【问题描述】:

我(据我所知)正确地遵循了 xwiki.org 上的所有说明,并且我也在高低搜索了我的错误的答案,但不幸的是我自己无法解决它们。

我下载了两种不同格式的 XWiki。第一个是.exe 安装程序,第二个是建议的.xar 软件包,都可以在Windows 8 64 位机器上使用。

第一个在“独立”模式下完美运行,但是一旦将hibernate.cfg.xml 文件更改为预设的 MySQL 设置(与我的数据库准确无误),我就会收到一个很长的HTTP 500 错误。 (这是在我添加 MySQL Connection Java 文件并根据 xwiki.org 上的说明创建 MySQL 数据库之后)似乎主要问题是它找不到 com.mysql.jdbc.Driver 以及我收到错误的事实稍后在页面上说它无法创建数据库连接池。

与错误相关的代码如下:

<!-- DBCP Connection Pooling configuration
-->
<property name="dbcp.defaultAutoCommit">false</property>
<property name="dbcp.maxActive">50</property>
<property name="dbcp.maxIdle">5</property>
<property name="dbcp.maxWait">30000</property>
<property name="dbcp.whenExhaustedAction">1</property>
<property name="dbcp.ps.whenExhaustedAction">1</property>
<property name="dbcp.ps.maxWait">120000</property>
<property name="dbcp.ps.maxIdle">20</property>
<property name="connection.provider_class">com.xpn.xwiki.store.DBCPConnectionProvider</property>

还有这个

<!-- MySQL configuration.
Uncomment if you want to use MySQL and comment out other database configurations.
-->
<property name="connection.url">jdbc:mysql://localhost/xwiki</property>
<property name="connection.username">xwiki</property>
<property name="connection.password">xwiki</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="dbcp.ps.maxActive">20</property>
<mapping resource="xwiki.hbm.xml"/>
<mapping resource="feeds.hbm.xml"/>
<mapping resource="activitystream.hbm.xml"/>
<mapping resource="instance.hbm.xml"/>

而且错误本身是这样的:

HTTP ERROR 500 

Problem accessing /xwiki/bin/view/Main/. Reason: 

Error number 3 in 0: Could not initialize main XWiki context 

Caused by: 

com.xpn.xwiki.XWikiException: Error number 3 in 0: Could not initialize main XWiki context 
at com.xpn.xwiki.XWiki.getMainXWiki(XWiki.java:422) 
at com.xpn.xwiki.XWiki.getXWiki(XWiki.java:491) 
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:152) 
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:128) 
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) 
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) 
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) 
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) 
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448) 
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:121) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:144) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:66) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter
(SavedRequestRestorerFilter.java:208) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter
(SetCharacterEncodingFilter.java:111) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) 
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) 
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle
(ContextHandlerCollection.java:255) 
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
at org.eclipse.jetty.server.Server.handle(Server.java:368) 
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest
(AbstractHttpConnection.java:488) 
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete  
(AbstractHttpConnection.java:932) 
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete 
(AbstractHttpConnection.java:994) 
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) 
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) 
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 
at java.lang.Thread.run(Unknown Source) 
Caused by: com.xpn.xwiki.XWikiException: Error number 3202 in 3: Exception while reading  
document [xwiki:XWiki.XWikiServerClass] 
at com.xpn.xwiki.store.XWikiHibernateStore.loadXWikiDoc(XWikiHibernateStore.java:916) 
at com.xpn.xwiki.store.XWikiCacheStore.loadXWikiDoc(XWikiCacheStore.java:290) 
at com.xpn.xwiki.XWiki.getDocument(XWiki.java:1515) 
at com.xpn.xwiki.XWiki.getDocument(XWiki.java:1558) 
at com.xpn.xwiki.XWiki.initializeMandatoryClasses(XWiki.java:885) 
at com.xpn.xwiki.XWiki.initXWiki(XWiki.java:855) 
at com.xpn.xwiki.XWiki.<init>(XWiki.java:792) 
at com.xpn.xwiki.XWiki.getMainXWiki(XWiki.java:402) 
... 45 more 
Caused by: org.hibernate.HibernateException: Could not create a DBCP pool. There is an error     
in the hibernate configuration file, please review it. 
at com.xpn.xwiki.store.DBCPConnectionProvider.configure(DBCPConnectionProvider.java:215) 
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider
(ConnectionProviderFactory.java:143) 
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider  
(ConnectionProviderFactory.java:84) 
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:459) 
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:90) 
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863) 
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870) 
at com.xpn.xwiki.store.XWikiHibernateBaseStore.initHibernate(XWikiHibernateBaseStore.java:223) 
at com.xpn.xwiki.store.XWikiHibernateBaseStore.checkHibernate(XWikiHibernateBaseStore.java:640) 
at com.xpn.xwiki.store.XWikiHibernateStore.loadXWikiDoc(XWikiHibernateStore.java:789) 
... 52 more 
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver 
class 'com.mysql.jdbc.Driver' 
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429) 
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) 
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) 
at com.xpn.xwiki.store.DBCPConnectionProvider.configure(DBCPConnectionProvider.java:197) 
... 62 more 
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:430) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383) 
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420) 
... 65 more 

Caused by: 

com.xpn.xwiki.XWikiException: Error number 3202 in 3: Exception while reading document   
[xwiki:XWiki.XWikiServerClass] 
at com.xpn.xwiki.store.XWikiHibernateStore.loadXWikiDoc(XWikiHibernateStore.java:916) 
at com.xpn.xwiki.store.XWikiCacheStore.loadXWikiDoc(XWikiCacheStore.java:290) 
at com.xpn.xwiki.XWiki.getDocument(XWiki.java:1515) 
at com.xpn.xwiki.XWiki.getDocument(XWiki.java:1558) 
at com.xpn.xwiki.XWiki.initializeMandatoryClasses(XWiki.java:885) 
at com.xpn.xwiki.XWiki.initXWiki(XWiki.java:855) 
at com.xpn.xwiki.XWiki.<init>(XWiki.java:792) 
at com.xpn.xwiki.XWiki.getMainXWiki(XWiki.java:402) 
at com.xpn.xwiki.XWiki.getXWiki(XWiki.java:491) 
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:152) 
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:128) 
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) 
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) 
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) 
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) 
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448) 
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:121) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:144) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:66) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter
(SavedRequestRestorerFilter.java:208) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter
(SetCharacterEncodingFilter.java:111) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) 
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) 
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle
(ContextHandlerCollection.java:255) 
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
at org.eclipse.jetty.server.Server.handle(Server.java:368) 
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest
(AbstractHttpConnection.java:488) 
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete
(AbstractHttpConnection.java:932) 
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete
(AbstractHttpConnection.java:994) 
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) 
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) 
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 
at java.lang.Thread.run(Unknown Source) 
Caused by: org.hibernate.HibernateException: Could not create a DBCP pool. There is an error     
in the hibernate configuration file, please review it. 
at com.xpn.xwiki.store.DBCPConnectionProvider.configure(DBCPConnectionProvider.java:215) 
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider
(ConnectionProviderFactory.java:143) 
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider  
(ConnectionProviderFactory.java:84) 
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:459) 
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:90) 
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863) 
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870) 
at com.xpn.xwiki.store.XWikiHibernateBaseStore.initHibernate(XWikiHibernateBaseStore.java:223) 
at com.xpn.xwiki.store.XWikiHibernateBaseStore.checkHibernate
(XWikiHibernateBaseStore.java:640) 
at com.xpn.xwiki.store.XWikiHibernateStore.loadXWikiDoc(XWikiHibernateStore.java:789) 
... 52 more 
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver   
class 'com.mysql.jdbc.Driver' 
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory   
(BasicDataSource.java:1429) 
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) 
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) 
at com.xpn.xwiki.store.DBCPConnectionProvider.configure(DBCPConnectionProvider.java:197) 
... 62 more 
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:430) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383) 
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory 
(BasicDataSource.java:1420) 
... 65 more 

是否必须使用.xar 安装版本才能正确连接到数据库?我也尝试过这种方式,使用 Xampp 和 Tomcat。 Tomcat 安装良好,我可以通过localhost:(port) 轻松访问它。但是,当我尝试访问我的 xwiki 时,我收到一个 HTTP 404 错误,提示找不到引用,这很奇怪,因为它与 Tomcat 中包含的部署列表中的其他文件一起显示,并且显示了 Tomcat 示例文件那里(位于同一目录中)工作正常...

我有点担心,即使我可以通过 Tomcat 让 XWiki 正常工作,我仍然会遇到我稍后在尝试连接 MySQL 数据库时提到的第一个错误。

旁注:我怀疑在 XWiki 中发现的文件与在 Tomcat 中发现的文件之间可能存在 Java 文件冲突,这是我在玩弄并试图使事情正常工作时看到的其他错误......但我可以错了,因为我目前对 Java 知之甚少。我已经看到了几个 servlet 错误并且找不到类/文件错误,根据我发现的论坛,这是属于 jasper.jarjsp-api.jar 的常见错误,两者都在 Tomcat 中找到。

无论如何,我愿意尝试涉及或不涉及 Tomcat 的安装选项。如果有人在 Windows 上安装了带有 MySQL 数据库的 XWiki,我们将不胜感激!

【问题讨论】:

    标签: mysql http xampp tomcat7 xwiki


    【解决方案1】:

    这个问题几个月前就解决了。我在设置中遗漏了一些重要信息,但现在可以正常使用。

    【讨论】:

    • 嘿,你能补充一下你是如何解决的吗?对于未来几年将在 Google 上找到此内容的所有人? =)
    • 一些关于你如何解决它的信息对于那些面临类似问题的人来说会很好。
    【解决方案2】:

    首先关于与 Tomcat 的潜在冲突,我可以向您保证这是不可能的,因为 XWiki 团队一直在生产中使用 Tomcat。

    现在对于 MySQL,错误非常明显,如果您确实放置了 MySQL 连接器,那么您没有将其放置在正确的位置。你放的是哪个版本的,在#xwiki folder#/WEB-INF/lib/中?

    XAR 包不是安装 XWiki 的另一种方式,它是一个包含 wiki 页面的包,可以在 XWiki 运行时将其导入。也许您是指 WAR 包?

    【讨论】:

    • 您好,感谢您的发帖。我确实有 JAR 驱动程序:mysql-connector-java-5.1.6.Jar,我的意思是 WAR 文件——抱歉造成混淆。我也相信Tomcat应该是要走的路。我不再有上面列出的错误,我的 Xwiki 出现在我的数据库和我的本地服务器上,就像它应该的那样。我现在只有 1 个错误,而且似乎是 Java 中常见的“内存不足”错误。
    • 我相信我没有将 Xwiki 作为服务运行,但我已经尝试过 Tomcat 小程序以及更改内存限额的方法。什么都没有工作......我只是不知道去哪里找了。我继承的代码中是否有可能存在预设?
    • 我的意思是错误是这样的:xwiki java.lang.OutOfMemoryError: PermGen space,不好意思这几天没看。
    • 我知道解决方案是增加内存限额,但我尝试了各种方法,例如将 Catalina_Options 和 Java 选项更改为以下数字:(1024、1024、512),但我仍然有同样的错误。问题是这个数字没有被正确地影响,因为在 Tomcat Manager 中它仍然是 82。这显然是不够的。我不确定“堆大小”的字面意思。该错误来自 PermGen,我相信它在 Tomcat 中被列为非 RAM 内存。我目前的设置是 Xammp/Tomcat/Xwiki,我真的觉得我只有一步之遥......
    【解决方案3】:

    看起来您缺少 mysql 驱动程序。由于您将默认发行版转换为使用 mysql,因此您需要下载 mysql driver jar 并将其部署到您的 'webapps\xwiki\WEB-INF\lib' 目录。

    关于第二个问题,数据库驱动错误,xar和tomcat 404之间可能没有联系。xar只是用于导入或导出内容和功能的页面集合,但通常不处理低级别的东西,例如数据库连接。 Tomcat 中的 404 可能是由于您访问了无效的 url。可能需要关于那个的更多细节。

    【讨论】:

    • 请看下面我的cmets。 :)
    猜你喜欢
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多