繁体   English   中英

部署WAR文件时的Tomcat 7.0.52 JNDI错误

[英]Tomcat 7.0.52 JNDI error while deploying a WAR file

该数据库是:MSSQL 2008 R2 OS = Windows Server 2008 R2

server.xml中的全局资源是:

<Resource name="data source name" auth="Container"  type="javax.sql.DataSource" username="myuser" password="abc@xyz"  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://host:1433;databaseName=test1;selectMethod=cursor"  maxWait="30000" maxActive="32" maxIdle="4" initialSize="4"  timeBetweenEvictionRunsMillis="600000" minEvictableIdleTimeMilllis="600000" />
  </GlobalNamingResources>

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

资源值是否冲突或还有其他问题? 我也尝试在“资源名称”标签中添加tomcat用户文件,但也无法正常工作。 我还在context.xml文件中定义了数据源名称。

错误日志为:

2014年3月12日,下午5:19:53 org.apache.catalina.realm.UserDatabaseRealm startInternal SEVERE:在键UserDatabase javax.naming.NameNotFoundException下查找UserDatabase时发生异常:名称[UserDatabase]在此上下文中未绑定。 找不到[UserDatabase]。 在org.apache.naming.NamingContext.lookup(NamingContext.java:819)在org.apache.naming.NamingContext.lookup(NamingContext.java:167)在org.apache.catalina.realm.UserDatabaseRealm.startInternal(UserDatabaseRealm.java) :253),位于org.apache.catalina.realm.CombinedRealm.startInternal(CombinedRealm.java:201),位于org.apache.catalina.realm.CombinedRealm.startInternal(CombinedRealm.java:201),位于org.apache.catalina.realm。 org的org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)的LockOutRealm.startInternal(LockOutRealm.java:120)org的org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1109)位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)的.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)位于org.apache.catalina.core.StandardService.startInternal(StandardService) .java:443),位于org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731),位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)。 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)位于org.apache.catalina.startup.Catalina.start(Catalina.java:689)位于sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法) org.apache.catalina.startup.Bootstrap.start()上java.lang.reflect.Method.invoke(未知源)的sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)的sun.reflect.NativeMethodAccessorImpl.invoke(未知源) Bootstrap.java:321)位于org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)

2014年3月12日,下午5:19:53 org.apache.catalina.realm.CombinedRealm startInternal SEVERE:无法启动“ org.apache.catalina.realm.UserDatabaseRealm / 1.0”领域org.apache.catalina.LifecycleException:无法启动组件org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)的组件[Realm [UserDatabaseRealm]] org.apache.org.apal.catalina.realm.CombinedRealm.startInternal(CombinedRealm.java:201)的组件[Realm [UserDatabaseRealm]]。在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)处在org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java :)处的catalina.realm.LockOutRealm.startInternal(LockOutRealm.java:120) 1109)在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)在org.apache.catalina.core.StandardService org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)处的org.apache.catalina.core.StandardServer.startIntern的.startInternal(StandardService.java:443) al(StandardServer.java:731)位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)位于org.apache.catalina.startup.Catalina.start(Catalina.java:689)位于sun.reflect .NativeMethodAccessorImpl.invoke0(本机方法)位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)在java.lang.reflect.Method.invoke(Unknown Source)处的java.lang.reflect.Method.invoke(未知源) org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)上的.catalina.startup.Bootstrap.start(Bootstrap.java:321)原因:org.apache.catalina.LifecycleException:在以下下未找到UserDatabase组件org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)处的org.apache.catalina.realm.UserDatabaseRealm.startInternal(UserDatabaseRealm.java:262)处的关键UserDatabase ...还有17个

您已经破坏了server.xml 如果您有一个指向“ UserDatabase”的<Realm> ,则需要一个名为“ UserDatabase”的<Resource> 这是默认配置:

<Resource name="UserDatabase" auth="Container"
          type="org.apache.catalina.UserDatabase"
          description="User database that can be updated and saved"
          factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />

如果要将关系数据库用于<Realm> ,则需要更改配置以指向该数据库,而需要使用DataSourceRealm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM