[SPRING] java : comp / env / do는 무엇입니까?
SPRINGjava : comp / env / do는 무엇입니까?
JNDI factory bean을 연결할 때 약간의 오류를 알아 내려고 너무 많은 시간을 보냈습니다. 문제는 그 대신에 이렇게 밝혀졌다.
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/loc"/>
</bean>
나는 이것을 실제로 작성했다 ...
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/loc"/>
</bean>
나는 java : comp / env /가 어떤 환경 변수를 참조하고 그것을 궁극적으로 나의 컨텍스트 파일을 보도록 만든다고 추론한다. 유일한 차이점은 java : comp / env /입니다. 전문가의 입에서, 그것은 무엇을합니까?
값에 java : comp / env 접두어가 없으면 "이름 jdbc가이 컨텍스트에서 바인드되지 않았습니다."라는 오류가 발생합니다.
해결법
-
==============================
1.인용 https://web.archive.org/web/20140227201242/http://v1.dione.zcu.cz/java/docs/jndi-1.2/tutorial/beyond/misc/policy.html
인용 https://web.archive.org/web/20140227201242/http://v1.dione.zcu.cz/java/docs/jndi-1.2/tutorial/beyond/misc/policy.html
예를 들어 봄철 또는 Tomcat 컨텍스트 설명자에서 바인딩 한 내용은 기본적으로 java : comp / env /
예를 들어 구성이 다음과 같은 경우 :
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="foo"/> </bean>
그러면 다음을 사용하여 직접 액세스 할 수 있습니다.
Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/foo");
또는 중간 단계를 수행하여 검색하는 모든 자원에 대해 "java : comp / env"를 지정할 필요가 없습니다.
Context ctx = new InitialContext(); Context envCtx = (Context)ctx.lookup("java:comp/env"); DataSource ds = (DataSource)envCtx.lookup("foo");
-
==============================
2.또한 true로 설정된 경우 JndiObjectFactoryBean의 속성 resourceRef가 있으며 java : comp / env / 문자열 앞에 자동으로 추가됩니다.
또한 true로 설정된 경우 JndiObjectFactoryBean의 속성 resourceRef가 있으며 java : comp / env / 문자열 앞에 자동으로 추가됩니다.
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="jdbc/loc"/> <property name="resourceRef" value="true"/> </bean>
-
==============================
3.여러 번 시도한 후 Tomcat의 소스 코드를 자세히 살펴보면 간단한 속성 useNaming = "false"가 트릭을 수행한다는 것을 알게되었습니다 !! 이제 Tomcat은 java : / env / liferay 대신 java : / liferay라는 이름을 결정합니다.
여러 번 시도한 후 Tomcat의 소스 코드를 자세히 살펴보면 간단한 속성 useNaming = "false"가 트릭을 수행한다는 것을 알게되었습니다 !! 이제 Tomcat은 java : / env / liferay 대신 java : / liferay라는 이름을 결정합니다.
from https://stackoverflow.com/questions/4099095/what-does-javacomp-env-do by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 시로 대 스프링 시큐리티 [닫힌] (0) | 2018.12.16 |
---|---|
[SPRING] 스프링 프레임 워크는 정확히 무엇입니까? [닫은] (0) | 2018.12.16 |
[SPRING] 스프링 MVC 컨트롤러에서 동적 url / prj / noticeOpen / 2를 매핑하는 방법 (0) | 2018.12.16 |
[SPRING] spring-data-cassandra를 사용한 사용자 정의 유형 (0) | 2018.12.16 |
[SPRING] HttpRequest 및 HttpResponse를 파일에 기록하는 방법? (0) | 2018.12.16 |