Q: Property 'provider.user.className' as specified in openfire.xml differs from what is stored in the database I am configuring openfire.xml for custom database integration and following is my 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&amp;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>

there are no errors in errors.log but I see this line in warn.log file
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.

I am modifying the openfire.xml by looking this but still a warning.Can any body please tell me what mistake I am doing?

A: Well there is Some Mistake While authenticating Database. 
See this block
where the properties name convention is differ its  'provider.auth.className'  and not 'provider.user.className'
try that and i am sure that will help and other way is even u can login to your openfire and just system properties u can add your manual properties. :) try that i am sure that will help
