2014-03-27 3 views
0

Glassfish에 배포 된 EmailSrvc Stateless Session Bean (EJB3)이 있습니다. bean은 /emailTemplates/someTemplate.html에 저장된 이메일 템플리트를 읽고, 템플리트를 처리하고 전자 메일을 보내야합니다. 질문 :EJB3에서 webRoot 디렉토리의 파일을 읽는 방법은 무엇입니까?

1) 전자 메일 서식 파일을 유지하기위한 적절한 위치 위에 제안 된이 웹 디렉터리입니까?

2) 파일을 어떻게 참조합니까? 서버가 클러스터 될 수 있으므로 직접 파일 시스템 경로를 피하고 싶습니다. 내가 ServletContext를 통해 webRootfolder를 얻을 수 있다고 생각했지만 bean 내에서 그것을 찾는 방법을 찾지 못했습니다.

감사

답변

0

난 그냥 WEB-INF/classes 아래의 emailTemplates 폴더를 넣어이 같은 필요로하는 파일의 inputStream을 얻을 수 있습니다 생각 :

InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("emailTemplates/someTemplate.html"); 

을 내가 클래스 폴더에있는 템플릿을 보내고 있습니다 확실하지 그러나 적절하지 않은 것으로 보입니다. 바라건대 다른 사람이 더 나은 해결책을 제안 할 수 있을까요?

관련 문제