JBoss 7.4에 여러 JavaEE6 응용 프로그램 (.war)이 배포되었습니다. 이러한 응용 프로그램에는 모두 Singleton-Bean 구현을 제공하는 공통 라이브러리가 포함되어 있습니다. 이 싱글 톤 빈은 JBoss 모듈 폴더를 사용하는 각 응용 프로그램마다 다르게 구성되며 일부 응용 프로그램 관련 정보를 기록해야합니다. 이는 이미 정상적으로 작동하고 있습니다.bean 내에서 글로벌 jndi 이름 찾기
그러나 어느 로그 라인이 어떤 응용 프로그램에서 왔는지 구분하는 데 어려움이 있습니다.
서버가 각 응용 프로그램 (내-APP1, 내-APP2, ...) 나는 로그에 다음과 같은 출력 한 시작될
:INFO 10:45:54,998 (EjbJndiBindingsDeploymentUnitProcessor.java:setupJNDIBindings:183) -JNDI bindings for session bean named MyBean in deployment unit deployment "my-app1.war" are as follows:
java:global/my-app1/MyBean!my.package.MyBean
java:app/my-app1/MyBean!my.package.MyBean
java:module/MyBean!my.package.MyBean
java:global/my-app1/MyBean
java:app/my-app1/MyBean
java:module/MyBean
이 출력은 내가 필요 정확히, 그래서 에서 myBean이 내 코드에 배포 된 아래의 글로벌 JNDI 이름을 검색하고 싶습니다 :
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import org.apache.log4j.Logger;
@Singleton
@Startup
public class MyBean {
private static final Logger log = Logger.getLogger(MyBean.class);
@PostConstruct
private void postConstruct() {
String appName = ""; // .getGlobalJndiNameOfThisInstance();
log.info("MyBean available for application " + appName);
// and log further application specific info
}
}
난 단지 내가 필요하지 않은 JNDI를 통해 콩을 조회하는 방법에 대한 방대한 정보를 찾을 수이 연구. 어떻게하면
new InitialContext()
을 만들어서 앱 이름을 추출 할 수 있습니까?
다음과 같이
나는 내 EJB를 확장했다. –추가 종속성 : \t'코드 \t \t \t net.sf.extcos \t \t \t extcos \t \t \t 0.4b \t \t ' –