openfire用户整合遇到UnsupportedOperationException异常及解决方法
来源:互联网 发布:单片机是嵌入式的吗? 编辑:程序博客网 时间:2024/05/10 11:14
我通过在数据库表OFPRORERTY里设置各种属性进行openfire用户整合时,遇到了以下异常:
- Exception:
- java.lang.UnsupportedOperationException
- at org.jivesoftware.openfire.user.JDBCUserProvider.createUser(JDBCUserProvider.java:170)
- at org.jivesoftware.openfire.auth.JDBCAuthProvider.createUser(JDBCAuthProvider.java:404)
- at org.jivesoftware.openfire.auth.JDBCAuthProvider.authenticate(JDBCAuthProvider.java:133)
1 jdbcUserProvider.loadUserSQL的值设置的不正确。
这种情况下,一般是SQL写错了,将jdbcUserProvider.loadUserSQL的SQL在DB浏览工具(我用的是DBVisualizer)中执行,测试一下有没有写错。
2 jdbcProvider.connectionString和jdbcProvider.driver设置错误,或者没有设置
这种情况下,也是通过DB浏览工具,使用jdbcProvider.connectionString和jdbcProvider.driver的设置配置数据库连接,检测
是否能正确连接数据库。
3 jdbcUserProvider.useConnectionProvider未设置为true
前面两步都设置好了,忙了半天,网上的资料有些就没有提到jdbcUserProvider.useConnectionProvider的设置,
导致我们前面两项设置没有起到任何的作用。
一定要将jdbcUserProvider.useConnectionProvider设置为true,我们的设置才有效。
以此类推,在定义认证及群组时,也要将相关的配置设置为true,以启用我们自己的配置。
---------------网上的各种用户整合资料很多,就不在多说,下面把我的配置贴出来以做参考---------------
---------------我的OF_PERSON_TEST表不在SYSTEM下,在自己创建的ASSET下,所以在表名前加上ASSET.---
passwordKey 6g7Ut3fGLi42wWu
xmpp.socket.ssl.active true
xmpp.domain test-pc
provider.admin.className org.jivesoftware.openfire.admin.DefaultAdminProvider
provider.lockout.className org.jivesoftware.openfire.lockout.DefaultLockOutProvider
jdbcUserProvider.useConnectionProvider true
provider.auth.className org.jivesoftware.openfire.auth.JDBCAuthProvider
xmpp.auth.anonymous true
provider.group.className org.jivesoftware.openfire.group.DefaultGroupProvider
provider.vcard.className org.jivesoftware.openfire.vcard.DefaultVCardProvider
provider.securityAudit.className org.jivesoftware.openfire.security.DefaultSecurityAuditProvider
xmpp.session.conflict-limit 0
update.lastCheck 1405315189084
jdbcAuthProvider.passwordSQL SELECT VC_PWD FROM ASSET.OF_PERSON_TEST WHERE VC_ID=?
jdbcAuthProvider.passwordType plain
jdbcAuthProvider.passwordType plain
jdbcProvider.connectionString jdbc:oracle:thin:@193.160.16.86:1521/orcl.com
jdbcProvider.driver oracle.jdbc.driver.OracleDriver
admin.authorizedJIDs test@test-PC
jdbcAuthProvider.useConnectionProvider true
provider.user.className org.jivesoftware.openfire.user.JDBCUserProvider
jdbcUserProvider.allUsersSQL SELECT VC_NAME FROM ASSET.OF_PERSON_TEST
jdbcUserProvider.userCountSQL SELECT count(*) FROM ASSET.OF_PERSON_TEST
jdbcUserProvider.usernameField VC_NAME <---从源代码来看,没有实际用途,随便配置上就行
jdbcUserProvider.nameField name<---<---从源代码来看,没有实际用途,随便配置上就行
jdbcUserProvider.emailField email<---<---从源代码来看,没有实际用途,随便配置上就行
jdbcUserProvider.loadUserSQL SELECT VC_USERNAME,VC_EMAIL,VC_OTHER FROM ASSET.OF_PERSON_TEST WHERE VC_ID=? <---从源代码来看,检索出来的结果至少要有两列,第一列做为用户名称,第二列做为email地址,多出来的列不处理。
xmpp.socket.ssl.active true
xmpp.domain test-pc
provider.admin.className org.jivesoftware.openfire.admin.DefaultAdminProvider
provider.lockout.className org.jivesoftware.openfire.lockout.DefaultLockOutProvider
jdbcUserProvider.useConnectionProvider true
provider.auth.className org.jivesoftware.openfire.auth.JDBCAuthProvider
xmpp.auth.anonymous true
provider.group.className org.jivesoftware.openfire.group.DefaultGroupProvider
provider.vcard.className org.jivesoftware.openfire.vcard.DefaultVCardProvider
provider.securityAudit.className org.jivesoftware.openfire.security.DefaultSecurityAuditProvider
xmpp.session.conflict-limit 0
update.lastCheck 1405315189084
jdbcAuthProvider.passwordSQL SELECT VC_PWD FROM ASSET.OF_PERSON_TEST WHERE VC_ID=?
jdbcAuthProvider.passwordType plain
jdbcAuthProvider.passwordType plain
jdbcProvider.connectionString jdbc:oracle:thin:@193.160.16.86:1521/orcl.com
jdbcProvider.driver oracle.jdbc.driver.OracleDriver
admin.authorizedJIDs test@test-PC
jdbcAuthProvider.useConnectionProvider true
provider.user.className org.jivesoftware.openfire.user.JDBCUserProvider
jdbcUserProvider.allUsersSQL SELECT VC_NAME FROM ASSET.OF_PERSON_TEST
jdbcUserProvider.userCountSQL SELECT count(*) FROM ASSET.OF_PERSON_TEST
jdbcUserProvider.usernameField VC_NAME <---从源代码来看,没有实际用途,随便配置上就行
jdbcUserProvider.nameField name<---<---从源代码来看,没有实际用途,随便配置上就行
jdbcUserProvider.emailField email<---<---从源代码来看,没有实际用途,随便配置上就行
jdbcUserProvider.loadUserSQL SELECT VC_USERNAME,VC_EMAIL,VC_OTHER FROM ASSET.OF_PERSON_TEST WHERE VC_ID=? <---从源代码来看,检索出来的结果至少要有两列,第一列做为用户名称,第二列做为email地址,多出来的列不处理。
0 0
- openfire用户整合遇到UnsupportedOperationException异常及解决方法
- java中关于遇到UnsupportedOperationException异常
- SSH项目整合碰到异常及解决方法
- openfire整合现有系统用户
- openfire整合现有系统用户
- openfire整合现有系统用户
- Openfire 整合自有用户系统
- openfire整合现有系统用户
- openfire整合现有用户系统
- 使用JFace遇到的异常及解决方法
- 学习hibernate遇到的异常及解决方法
- Android 遇到异常含义及解决方法整理
- 在整合spring-flex时遇到问题及解决方法
- openfire整合已有用户数据库 分享
- XMPP 之Openfire的用户数据库整合
- openfire如何整合不同的用户系统
- Android开发过程遇到异常含义及解决方法整理
- Android开发过程遇到异常含义及解决方法整理(转)
- Linux ALSA声卡驱动之二:声卡的创建
- js判断是否为空
- Ubuntu下配置android环境
- Android 编程下 Touch 事件的分发和消费机制
- Java transient关键字
- openfire用户整合遇到UnsupportedOperationException异常及解决方法
- jsp 连接 mysql 数据库测试
- centos6.5+Django+mysql+nginx+uwsgi
- Spring源代码分析之依赖注入
- SZ斐波拉契数列
- 《追寻生命的意义》摘抄
- IntentFilter 的说明[转载]
- 编译oRTP ok6410移植ortp20
- mysql-cluster 7.3.5-linux 安装