所以我想为我的应用程序创建一个JDBCRealm,而不是使用tomcat-users.xml中的用户。用postgres驱动创建JDBCRealm
香港专业教育学院改变了我的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元素。
,但由于某种原因,我不断收到一个NullPointerException当我开始我的tomcat, 原产于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。
任何想法,为什么它不会工作?这个驱动程序的任何已知的错误?或者它是我的元素?
谢谢!
看起来像Tomcat正在向我传递'null' JDBC URL。 –