Glassfish- 웹 응용 프로그램이 실행중인 환경을 설명합니다.
-
18-09-2019 - |
문제
웹 애플리케이션이 환경에 대해 배우기 위해 예외가 발생할 때 다양한 세부 사항을 설명 할 수 있도록하고 싶습니다.
웹 애플리케이션 내에서 Glassfish가 실행중인 IP 주소를 어떻게 얻을 수 있습니까?
구성, JDBC 연결, JMS, JNDI 등의 스냅 샷도 가져오고 싶습니다. 이것이 가능합니까?
나는 이것이 유리 피쉬의 API와 더 관련이 있고 콩이나 mbean을 주입하는 것 같아요.
월터
해결책 3
다음을 수행합니다.
- 기계에서 모든 네트워크 인터페이스를 찾으십시오
- JVM 정보를 기록하십시오
이것은 문제가 어디에서 왔는지 결정하기에 충분한 정보를 제공합니다.
월터
다른 팁
웹 애플리케이션 내에서 Glassfish가 실행중인 IP 주소를 어떻게 얻을 수 있습니까?
그러한 정보를 얻을 수 있습니다 ServletRequest
, 예를 들어 포트.
구성, JDBC 연결, JMS, JNDI 등의 스냅 샷도 가져오고 싶습니다. 이것이 가능합니까?
연결의 메타 데이터 또는 연결 공장에 의존해야합니다. 두려움이 완전히 휴대 가능하지는 않지만 정보를 얻을 수 있어야합니다. JDBC 메타 데이터.
유리 피쉬의 JMX 콩을 연결할 수도 있습니다. 시간이 지남에 따라 할당 된 연결을 모니터링하기 위해 웹 앱에서 한 번 그렇게했습니다. JMX Beans의 이름을 찾아 보면 (예 : 데이터 소스의 이름을 알고 있다면) 정보에 대해 마차를 얻을 수 있습니다. 기본적으로 Native Glassfish 콘솔 디스플레이가있는 모든 것이 있습니다.
시작시 모든 정보를 수집 할 수 있습니다. ServletContextListener
그런 다음 예외가 발생할 경우 뱉어 내기 위해 어딘가에 보관하십시오.
권장되는 관행이 아닌 최종 사용자에게 잠재적 인 민감한 정보를 공개 할 수 있습니다.
웹 애플리케이션 내에서 Glassfish가 실행중인 IP 주소를 어떻게 얻을 수 있습니까?
사용 ServletRequest#getLocalPort()
그것을 위해 (아닙니다 ServletRequest#getServerPort()
실제로 돌아옵니다 요청이 전송 된 포트 번호, 가장 자주 80
, 라우팅/로드 밸런싱으로 인해 컨테이너가 듣고있는 포트와 다를 수 있습니다).
구성, JDBC 연결, JMS, JNDI 등의 스냅 샷도 가져오고 싶습니다. 이것이 가능합니까?
글쎄, 당신은 JNDI 트리를 탐색하여 거기에 무엇이 있는지 확인할 수 있지만 응용 프로그램은 모든 세부 사항을 알지 못해서는 안됩니다 (이해 : 최소한 모든 메타 데이터에 액세스 할 수 없다고 생각합니다. 방법).
또 다른 옵션은 연결하는 것입니다 JMX를 통해 Glassfish의 노출 된 행정 MBeans. 그러나 이것은 관리자 자격 증명이 필요합니다 (따라서 불가능할 수 있음).
더 정확한 답변을 얻으려면 필요와 제약을 명확히해야 할 수도 있습니다.