설치에 대한 특정 정보를 얻기 위해 파일에 액세스해야하는 JavaEE 애플리케이션이 있습니다.EJB의 전역 액세스 가능한 속성
이 액세스는 읽기 전용, 나는 내가 "파일을"필요하지 않습니다 즉, 응용 프로그램 내에서 해당 파일을 변경할 필요가 없습니다 직접, 그냥 콘텐츠 (바이트 배열)입니다.
파일 시스템을 사용하는 EJB에는 제한이 있습니다. 나는 그것과 관련된 문제를 이해하지만 이것에 대한 대안 해결책을 이해할 수는 없다.
파일의 경로는 사용자가 구성 할 수 있어야하지만 파일의 내용에 변경 사항을 추적 할 필요가 없습니다. 로드 된 후에는 사용자가 다른 파일을 선택하지 않으면 그대로 유지됩니다. 따라서 응용 프로그램 아카이브 내에 패키지 할 수 없습니다.
이 파일 기반 접근법은 오래 전에 우리가 보유한 일부 레거시 시스템에 의한 결정입니다. 현재 변경할 수있는 방법이 없습니다. 즉, JavaEE 애플리케이션에서 파일을 적어도 한 번 사용하여 콘텐츠를로드해야합니다.
또 다른 제한 사항은이 파일을 데이터베이스에 보존 할 수 없다는 것입니다.
파일 시스템 액세스의 EJB 제한을 위반하지 않고 어떻게해야합니까?
나는 사용자가 서버에이 정보를 지속 한 다음 서버에 파일을 업로드하고 생각. 하지만 어떻게해야합니까? 이 정보는 서버의 여러 인스턴스 (예 : 클러스터 아키텍처)를 포함하여 전역으로 액세스 할 수 있어야합니다.사용자는 한 번이 파일을 구성해야합니다 (반드시 기본 응용 프로그램 내에서, 그냥이를 구성하는 다른 응용 될 수있다). 서버가 다시 시작 되더라도 사용자가 더 이상 구성하지 않아도 파일의 내용에 계속 액세스 할 수 있어야합니다.
나는 글래스 피쉬 V2.1.1 서버의 EJB 3.0 사양을 JavaEE 어플 (5)를 사용하고 있습니다.
감사합니다, 티아고.
흥미로운 요구 사항인데 왜 데이터를 데이터베이스에 유지할 수 없습니까? 사용자가 오늘 각 클러스터 멤버에게 파일을 업로드합니까? – home
이 파일에 액세스 할 수있는 정보가있을 수 있으므로 데이터베이스에 유지할 수 없습니다. 따라서 파일 내용을 가져 오지 않고 공식 데이터베이스에 액세스 할 방법이 없습니다. 그런데,이 목적을 위해서 단순한 데이터베이스 (H2와 같은)를 사용할 수 있다면, 괜찮습니다. 사용자는 파일을 한 번만 업로드해야합니다. 오늘날 우리는 제한을 위반하여 파일 시스템에 직접 액세스합니다. –
오늘 작동하는 이유는 무엇입니까? 좋은 연습은 아니지만 수십 개의 EJB 기반 응용 프로그램이 파일 시스템에 액세스하는 것을 보았습니다 ... – home