Grails 2에서 Grails 3로 전환하고 Tomcat의 Oracle 용 Jndi 데이터 소스와 관련하여 Tomcat 7과 Tomcat 7의 차이점을 다루고 있습니다. Tomcat 8.5.Grails Oracle on Tomcat - JNDI config - InstanceAlreadyExistsException 등의 오류
간단히 말해서, Grails 3 app ... Tomcat 8.5에서 오류가 발생합니다. Grails 2 응용 프로그램을 사용하면 Tomcat 8.5에서도 오류가 발생하지 않습니다. 톰캣 7
에 이것은 내가 항상 내 Grails의 응용 프로그램에서 참조 내 오라클 DB에 연결하는 톰캣에 사용할 것 JNDI의 설정은 다음과 같습니다
<Resource name="jdbc/myGrails" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = local)))"
username="USER" password="PW"
maxActive="100" maxIdle="30" maxWait="10000"
/>
그래서 내 Grails의 3 응용 프로그램과 함께이를 사용하는 경우 Tomcat 7 ... 괜찮습니다. 문제가 없습니다. 그러나 Tomcat 8.5에서 동일한 Grails 3 응용 프로그램을 사용하면 InstanceAlreadyExistsException이 발생하고 응용 프로그램이 시작되지 않습니다. 내가 그 오류 사항이 페이지에 온 : 해당 스레드에 제안 된 솔루션의 https://github.com/grails/grails-core/issues/9424
한 것은 추가했다 :
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
를 JNDI 구성에 ... 나는 것을 시도하고 얻을 것이다 이상한 결과 : 오류/예외가 발생하지만 앱이 적어도 지금까지 테스트 한 부분은 성공적으로 실행됩니다.
java.lang.ClassNotFoundException: Unable to load class: oracle.jdbc.OracleDriver from ClassLoader:[email protected];ClassLoader:ParallelWebappClassLoader
다시, 심지어 제외하고, 응용 프로그램이 제대로 실행 않고 데이터베이스에 연결 : 이것은 내가 얻을 예외입니다. 하지만이 예외가 앱에 어떤 영향을 미칠지 걱정됩니다.
또한 설정과 같은 다른 솔루션을 제안 위에서 언급 한 링크 :
spring.jmx.enabled: false
을하지만 ... 다른 일을 다시는-계속 시도하기 전에 표준/올바른 방법 누군가에 방법으로 제안 할 수 있는가 JNDI 리소스를 설정 하시겠습니까? 예를 들어, "공장"을 추가하고 그로부터 오는 오류를 해결하려고합니까?
- 그것은하는 Grails의 3 응용 프로그램의 사용 Grails는 내가 톰캣 7 톰캣에 대한 WAR 파일을 배포 할 수 있도록하려면
- 3.2.8 : 내 응용 프로그램의 몇 가지 세부 사항을 명시합니다
- 그것은 오라클 데이터베이스 응용 프로그램의 Grails의 2 버전으로
- 를 사용하여 8.5, 내가 Grails는
- 에게 톰캣 8.5 톰캣 7도에서 응용 프로그램의 3 버전의 오류를 얻을하지 않습니다, 나는 '돈 Tomcat 7에서는 오류가 발생하지 않습니다. 그러나 Tom cat 8.5 "InstanceAlreadyExists"예외로 시작하여 오류가 발생합니다.