[SPRING] javax.naming.NameNotFoundException : 이름 [comp / env]가이 Context에 바인드되어 있지 않다
SPRINGjavax.naming.NameNotFoundException : 이름 [comp / env]가이 Context에 바인드되어 있지 않다
내가 tomcat 서버 관리 연결 풀을 사용하여 봄 응용 프로그램을 개발하고있어.
나는 context.xml에서 context.xml의 tag 안에 datasource를 정의했다. (spring 2.0.7을 사용하고있다.) context.xml :
<context>
<Resource name="jdbc/irb_prod"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
username="xxx"
password="xxx"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@xxx:1521:xxx"
maxWait="1000"
removeAbandoned="true"
maxActive="5"
maxIdle="5"
removeAbandonedTimeout="60"
logAbandoned="true"/>
</context>
ApplicationContext.xml (즉 Spring 구성 파일)에서 코드는 다음과 같습니다.
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/irb_prod</value>
</property>
</bean>
<!-- Transaction manager for a single JDBC DataSource -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource"><ref local="dataSource"/></property>
</bean>
응용 프로그램이 시작되면 다음과 같은 오류가 발생합니다.
javax.naming.NameNotFoundException: Name java:/comp/env/mypool is not bound in this Context
org.apache.naming.NamingContext.lookup(NamingContext.java:803)
org.apache.naming.NamingContext.lookup(NamingContext.java:159)
org.apache.naming.SelectorContext.lookup(SelectorContext.java:158)
javax.naming.InitialContext.lookup(Unknown Source)
org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:132)
org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:88)
org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:130)
org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:155)
org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:93)
org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)
org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java :197)
org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:184)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInit ialization(AbstractApplicationContext.java:736)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractAppli cationContext.java:369)
org.springframework.context.support.ClassPathXmlApplicationContext.<init> (ClassPathXmlApplicationContext.java:123)
org.springframework.context.support.ClassPathXmlApplicationContext.<init> (ClassPathXmlApplicationContext.java:66)
MainServlet.init(MainServlet.java:21)
javax.servlet.GenericServlet.init(GenericServlet.java:160)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:383)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java :188)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
이 문제를 해결하도록 도와주세요.
해결법
-
==============================
1.내가 바람둥이와 비슷한 문제에 직면하고 그것을 해결하기 위해 일식에 다음 않았다 :
내가 바람둥이와 비슷한 문제에 직면하고 그것을 해결하기 위해 일식에 다음 않았다 :
context.xml에서 세부 사항을 유지 한 후에도 때로는 반영되지 않을 수도 있습니다. 그런 경우 3 단계를 따르고 도움이되기를 바랍니다.
-
==============================
2.web.xml을 다음 태그와 비슷한 것으로 업데이트하십시오
web.xml을 다음 태그와 비슷한 것으로 업데이트하십시오
<resource-env-ref> <description>DataSource </description> <resource-env-ref-name> dbc/irb_prod </resource-env-ref-name> <resource-env-ref-type> javax.sql.DataSource </resource-env-ref-type> </resource-env-ref>
자세한 내용은이 링크를 참조해야합니다.
-
==============================
3.웹 애플리케이션 / WEB-INF / lib에서 jsp-api.jar, servlet-api.jar, catalina.jar 등과 같은 임의의 servletcontainer 특정 JAR을 삭제했을 때 Tomcat이 발생합니다. 거기에서 모든 servletcontainer 특정 JAR을 제거해야하며 거기에 속하지 않습니다.
웹 애플리케이션 / WEB-INF / lib에서 jsp-api.jar, servlet-api.jar, catalina.jar 등과 같은 임의의 servletcontainer 특정 JAR을 삭제했을 때 Tomcat이 발생합니다. 거기에서 모든 servletcontainer 특정 JAR을 제거해야하며 거기에 속하지 않습니다.
-
==============================
4.내 경우에는 먼저 파일 탐색기 (FreeCommander XE)를 닫은 다음 일식 정리 (프로젝트 및 서버)를 수행하고, 파일이 없더라도 배포 된 파일을 처리 할 수있는 다른 프로그램을 닫아야합니다. 더 이상 그 프로그램에서 열리지 않는다.
내 경우에는 먼저 파일 탐색기 (FreeCommander XE)를 닫은 다음 일식 정리 (프로젝트 및 서버)를 수행하고, 파일이 없더라도 배포 된 파일을 처리 할 수있는 다른 프로그램을 닫아야합니다. 더 이상 그 프로그램에서 열리지 않는다.
-
==============================
5.Eclipse에서는 올바른 context.xml 파일이 있는지 확인하십시오. 이는 특히 여러 서버를 설치 한 경우에 유효합니다.
Eclipse에서는 올바른 context.xml 파일이 있는지 확인하십시오. 이는 특히 여러 서버를 설치 한 경우에 유효합니다.
서버 탭에서 배포 된 웹 모듈을 마우스 오른쪽 버튼으로 클릭하고 배포 위치 찾아보기 -> ../conf/context.xml을 선택합니다. 이 파일이 사용하고자하는 파일인지 확인하십시오.
시간 낭비로 시간을 절약 해주기를 바랍니다.
from https://stackoverflow.com/questions/21527714/javax-naming-namenotfoundexception-name-comp-env-is-not-bound-in-this-context by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 봄 MVC HTTP 상태 400 - 잘못된 요청 (0) | 2019.05.15 |
---|---|
[SPRING] Spring은 상태 비 저장 세션 관리에도 불구하고 JSESSIONID를 추가한다. (0) | 2019.05.15 |
[SPRING] json을 객체 목록으로 변환 (0) | 2019.05.15 |
[SPRING] 봄 + JPA + 최대 절전 모드 (0) | 2019.05.15 |
[SPRING] Struts2; StrutsSpringTestCase JUnit 테스트를 위해 세션 열기 (0) | 2019.05.15 |