openfire.xml 中指定的属性“provider.user.className”与数据库中存储的不同
Posted
技术标签:
【中文标题】openfire.xml 中指定的属性“provider.user.className”与数据库中存储的不同【英文标题】:Property 'provider.user.className' as specified in openfire.xml differs from what is stored in the database 【发布时间】:2014-04-09 04:16:31 【问题描述】:我正在为自定义数据库集成配置 openfire.xml,以下是我的 openfire.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file stores bootstrap properties needed by Openfire.
Property names must be in the format: "prop.name.is.blah=value"
That will be stored as:
<prop>
<name>
<is>
<blah>value</blah>
</is>
</name>
</prop>
Most properties are stored in the Openfire database. A
property viewer and editor is included in the admin console.
-->
<!-- root element, all properties must be under this element -->
<jive>
<adminConsole>
<!-- Disable either port by setting the value to -1 -->
<port>9090</port>
<securePort>9091</securePort>
</adminConsole>
<locale>en</locale>
<!-- Network settings. By default, Openfire will bind to all network interfaces.
Alternatively, you can specify a specific network interfaces that the server
will listen on. For example, 127.0.0.1. This setting is generally only useful
on multi-homed servers. -->
<!--
<network>
<interface></interface>
</network>
-->
<connectionProvider>
<className>org.jivesoftware.database.DefaultConnectionProvider</className>
</connectionProvider>
<database>
<defaultProvider>
<driver>com.mysql.jdbc.Driver</driver>
<serverURL>jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true</serverURL>
<username>root</username>
<password>123</password>
<testSQL>select 1</testSQL>
<testBeforeUse>false</testBeforeUse>
<testAfterUse>false</testAfterUse>
<minConnections>5</minConnections>
<maxConnections>25</maxConnections>
<connectionTimeout>1.0</connectionTimeout>
</defaultProvider>
</database>
<setup>true</setup>
<jdbcProvider>
<driver>com.mysql.jdbc.Driver</driver>
<connectionString>jdbc:mysql://localhost/openfire?user=root&password=123</connectionString>
</jdbcProvider>
<provider>
<auth>
<className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>
</auth>
<user>
<className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
</user>
</provider>
<jdbcAuthProvider>
<passwordSQL>SELECT password FROM user WHERE username=?</passwordSQL>
<passwordType>sha256</passwordType>
</jdbcAuthProvider>
<jdbcUserProvider>
<loadUserSQL>SELECT name,email_address FROM user WHERE username=?</loadUserSQL>
<userCountSQL>SELECT COUNT(*) FROM user</userCountSQL>
<allUsersSQL>SELECT username FROM user</allUsersSQL>
<searchSQL>SELECT username FROM user WHERE</searchSQL>
<usernameField>username</usernameField>
<nameField>name</nameField>
<emailField>email</emailField>
</jdbcUserProvider>
</jive>
errors.log 中没有错误,但我在 warn.log 文件中看到了这一行
2014.04.09 09:24:18 org.jivesoftware.util.JiveGlobals - Property 'provider.user.className' as specified in openfire.xml differs from what is stored in the database. Please make property changes in the database instead of openfire.xml.
我正在通过查看 this 来修改 openfire.xml,但仍然是一个警告。任何人都可以告诉我我在做什么错误吗?
【问题讨论】:
你看到了吗:***.com/questions/7122019/… @xybrek 是的。我已经设置了我的数据库。接下来要做什么? @JqueryLearner 您确定该属性与您在数据库中指定的属性相同吗?当你指定属性时,再次检查所有属性与数据库。 @Krishna 我在哪里可以获得数据库属性? @JqueryLearner 表示您配置的名称和拼写相同的任何数据库?对于 ex provider.user.className 或数据库名称,请检查所有拼写。 【参考方案1】:在验证数据库时有一些错误。
See this block
属性名称约定不同的地方是 'provider.auth.className'
而不是 'provider.user.className'
试试这个,我相信这会有所帮助,其他方式是你甚至可以登录到你的 openfire 并且只是系统属性你可以添加你的手动属性。 :) 尝试一下,我相信这会有所帮助
【讨论】:
我在 smack 中遇到问题 哪个问题?你能解释一下吗? M 无法访问那里。管理员必须向我提供我提出的请求。以上是关于openfire.xml 中指定的属性“provider.user.className”与数据库中存储的不同的主要内容,如果未能解决你的问题,请参考以下文章
OData 错误:URI 中指定的查询无效。该属性不能在查询选项中使用
JavaScript 删除某个数组中指定的对象和删除对象属性