2014-03-13 4 views
1

DB를은 다음과 같습니다 MSSQL 2008 R2 OS = 윈도우 서버 2008 R2 server.xml의톰캣 7.0.52 JNDI 오류 WAR 파일을 배포하는 동안

글로벌 자원이다 :

<Resource name="data source name" auth="Container" type="javax.sql.DataSource" username="myuser" password="[email protected]" 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 : 키 사용자 데이터베이스 javax.naming.NameNotFoundException에서 예외 찾는 사용자 데이터베이스 : 이름 [UserDatabase]이이 컨텍스트에 바인딩되어 있지 않습니다. [UserDatabase]을 (를) 찾을 수 없습니다. (NamingContext.java : 819) at org.apache.naming.NamingContext.lookup org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) 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:300) 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:731) at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) sun.reflect.NativeMethodAccessorImpl.invoke에서 sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법) 에서 org.apache.catalina.startup.Catalina.start (Catalina.java:689) (알 수없는 소스) 태양에서 에서 . reflection.DelegatingMethodAccessorImpl.invoke (알 수없는 소스) at java.lang.reflect.Method.invoke (알 수 없음 2014년 3월 12일, 나아가) org.apache.catalina.startup.Bootstrap.main에서 org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:321) 에서 (Bootstrap.java:455)

5:19:53 PM org.apache.catalina.realm.CombinedRealm startInternal SEVERE : "org.apache.catalina.realm.UserDatabaseRealm/1.0"영역을 시작하지 못했습니다. org.apache.catalina.LifecycleException : 구성 요소를 시작하지 못했습니다 [ 영역 [UserDatabaseRealm]] 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) 에서 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:300) at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) at org.apache.catalina.core.StandardService.startInternal (StandardService.java:443) org.apache.catalina의 .util.LifecycleBase.start (LifecycleBase.java:150) at org.apache.catalina.core.StandardServer.startInternal (StandardServer.java:731) at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java : sun.reflect.NativeMethodAccessorImpl.invoke에서 sun.reflect.NativeMethodAccessorImpl.invoke0 (원시 메소드)에 org.apache.catalina.startup.Catalina.start (Catalina.java:689) (알 소스) 150)에서 (알 수없는 소스) at org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:321) at org. apache.catalina.startup.Bootstrap.main (Bootstrap.java:455) 발생 원인 : org.apache.cata lina.LifecycleException : 주요 UserDatabase 하위에 UserDatabase 구성 요소가 없습니다. org.apache.catalina.realm.UserDatabaseRealm.startInternal (UserDatabaseRealm.java:262) at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) ... 17 더

+0

리소스 이름에 문제가있는 것 같아 한 단어 만 사용해야합니다. – ankit

+0

질문을 게시 할 때 의도적으로 대체 한 단어입니다. – user3410549

+0

context.xml을 공유 할 수 있습니까? 그리고 MSSQL을 사용하여 사용자를 인증하려면 [DataSource Database Realm] (http://tomcat.apache.org/tomcat-7.0-doc/config/realm.html#DataSource_Database_Realm_-_org.apache.catalina.realm)을 사용하십시오. .DataSourceRealm). –

답변

1

server.xml을 깨 셨습니다. <Realm>이 "UserDatabase"를 가리키는 경우 <Resource> "UserDatabase"가 있어야합니다. 여기에 기본 구성입니다 :

<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를 사용해야합니다.

+0

이 작동해야합니까? – user3410549

관련 문제