gpt4 book ai didi

postgresql - 使用 postgres 驱动程序创建 JDBCRealm

转载 作者:行者123 更新时间:2023-11-29 11:48:06 26 4
gpt4 key购买 nike

所以我正在尝试为我的应用程序创建一个 JDBCRealm,而不是使用来自 tomcat-users.xml 的用户。

我将我的 server.xml 更改为如下所示:

   <Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm.

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> -->


<Realm className="org.apache.catalina.realm.JDBCRealm"
debug="99"
driverName="org.postgresql.Driver"
connctionURL="jdbc:postgresql://localhost:5432/MyDataBase"
connectionName="xxxxxxxx"
ConnectionPassword="xxxxxxxx"
userTable="authUsers" userNameCol="name" userCredCol="password"
userRoleTable="authRole" roleNameCol="role" />
</Realm>

所以 - UserDatabaseRealm 被注释掉了,取而代之的是我放入了我的 JDBCRealm 元素。

但出于某种原因,当我启动我的 tomcat 时,我一直收到 nullPointerException,源自 postgres 驱动程序类:

org.apache.catalina.LifecycleException: Failed to start component [Realm[JDBCRealm]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.realm.CombinedRealm.startInternal(CombinedRealm.java:201)
at org.apache.catalina.realm.LockOutRealm.startInternal(LockOutRealm.java:120)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1109)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:691)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
Caused by: java.lang.NullPointerException
at org.postgresql.Driver.connect(Driver.java:232)
at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:710)
at org.apache.catalina.realm.JDBCRealm.startInternal(JDBCRealm.java:788)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 17 more

我将 tomcat 7 与 postgres 9.3 一起使用,我用于驱动程序的 jar 是 postgresql-9.3-1100.jdbc4.jar。

知道为什么它不起作用吗?这个驱动程序有任何已知的错误吗?或者这是我的元素?

谢谢!

最佳答案

答案非常简单:

connctionURL="jdbc:postgresql://localhost:5432/MyDataBase"

找出参数名称中的拼写错误。

由于您没有提供 connectionURL 参数,驱动程序无法正确初始化,因此出现异常。

关于postgresql - 使用 postgres 驱动程序创建 JDBCRealm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21166362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com