내 JNDI 조회가 실패하는 (또는 적어도 발생할 수있는) EJB 리소스의 전역 JNDI 이름에 몇 가지 문제가 있습니다. 이 프로젝트는 Netbeans에서 개발 중이며 표준 Maven 웹 응용 프로그램입니다. 이 이름입니다 보장하기 때문에JEE6 글로벌 JNDI 이름 및 Maven 배포
com.example_myapp_war_1.0-SNAPSHOT
잘 볼의 넷빈즈 지점에서 좋은 : 내 응용 프로그램이 응용 프로그램 이름을 GF3.0하도록되어있을 때 같은 설정되어 독특한뿐만 아니라 모든 EJB를이 이와 같은 글로벌 이름을 얻을 의미
자바 : 글로벌/com.example_myapp_war_1.0 스냅 샷/CustomerService를
이 물론 문제 때문에 모든 시간을 일으킬 것입니다을 버전 변경 모든 글로벌 이름 변경 (나는이 버전과 이름을 변경하여 테스트했습니다 inde 변경됨). 이름은 POM 파일에서 생성 그것은의 연결입니다되고있다 : 지금까지 난 그냥 @EJB를 사용하여 모든 자원을 주입 멀리있어 최대
<groupId>com.example</groupId>
<artifactId>myapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
하지만 지금은에서 CustomerService를의 EJB에 접근 할 필요가 응용 프로그램이 제대로 발표하고 모듈 이름이 변경 될 때 명확하게 중단됩니다
try {
Context ctx = new InitialContext();
CustomerService customerService = (CustomerService)ctx.lookup("java:global/com.example_myapp_war_1.0-SNAPSHOT/CustomerService");
return customerService.get(submittedValue);
} catch(Exception e) {
logger.error("Failed to convert customer.", e);
return null;
}
을 : JSF 변환기 그래서 나는이처럼 봐 JNDI를하고 있어요. 그래서 백만 달러의 질문 : 어떻게하면 maven에서 modal 이름을 설정할 수 있습니까? 아니면 module name을 복구하여 runtile에서 JNDI 이름을 프로그래밍 방식으로 만들 수 있습니까? 해당 링크에서 제안한대로 web.xml 파일에서 설정을 시도했지만 무시되었습니다. 나는 애플리케이션이 배치 될 때 스크류 업에 대한 스코프가 적다는 것을 의미하므로 런타임에 이름을 만들겠다고 생각한다.
많은 도움을 주신 데 대해 감사 드리며, 하루 종일 머리를 찢어 서 왔습니다.
를? 뱃짐? war-plugin을 사용합니까? – khmarbaise