제 질문은 두 가지입니다. 먼저, 문제를 설명하고 두 번째로 솔루션이 클래스 로더를 구현한다고 가정하고 웹 애플리케이션에서이를 수행하는 방법을 설명합니다.웹 응용 프로그램 리소스로드를 리디렉션하도록 ClassLoader를 확장해야합니까?
내 문제는 이것입니다. 우리 회사는 다른 회사에서 만든 프레임 워크를 사용하고 있습니다. XML 파일을 사용하여 웹 페이지를 생성하며이 xml 파일은 다른 라이브러리 (jar 파일) 내에 있습니다. 이 라이브러리는 자주 생성되기 때문에 동적 인 것은 아닙니다 (매주?). 그러나이 라이브러리는 필드의 수, 수집 할 정보의 유형 (날짜/시간, 콤보 상자 등) 등을 결정합니다.
동적으로 이러한 필드를 동적으로 이동할 수 있는지 여부는 회사에서 질문했습니다. 동적으로 페이지를 새로 고치고 레이아웃의 변경 사항을 볼 수 있습니다.
- 이 도구를 만들기 : 나는 내가 두 가지 가능성을 의미, 몇 가지 예비 시험을했고,이 XML 파일은 항아리에 위치하기 때문에 XML을 수정하면, 그러나, 웹 페이지에 원하는 효과를주지 않는 것을 발견 jar 파일을 웹 응용 프로그램의 범위를 벗어나서 수정합니다. 물론 이것이 동적 일 수는 없음을 암시합니다. 또한 도구를 관리하기 위해 웹 응용 프로그램을 제외하고 인터페이스를 만들어야합니다. 더군다나, 나는 이것이 매우 위험한 접근법이며, 아마도이 솔루션을 어떤 비용으로도 피해야한다는 인상을 떨는 것처럼 보일 수 없다.
- 클래스 로더 (구체적으로
getResourceAsStream
)를 구현하고 기본 동작을 수행하는 대신 이러한 xml 파일을로드하라는 호출을 볼 때 원본을 기반으로 XML 파일을 생성하고 필요에 따라 정보를 수정 한 다음 반환합니다. 리소스를 호출자 (이 경우 타사 프레임 워크)에게 보냅니다.
첫 번째 질문은 # 2 최선의 선택입니까? 아니면 다른 옵션이 있습니까 (아니면 # 1을 고수해야합니까?)?
제 두 번째 질문은 내 자신의 클래스 로더를 구현해야한다고 가정 할 때 웹 응용 프로그램에서 어떻게해야합니까? 나는 Tomcat 7을 사용하고 있지만 가능하다면 솔루션을 사용하고있는 웹 컨테이너와 독립적으로 솔루션을 원합니다.
도움이 될 것입니다.
프레임 워크가 클래스 경로에서 XML 만로드 할 수 있는지 먼저 확인합니다. 파일 시스템로드 등을위한 다른 '커넥터'가있을 수 있습니다. 그렇지 않은 경우, 다른 '커넥터'를 허용하도록 코드를 수정하는 것이 얼마나 쉬운 지 알 것입니다. 둘 다 가능하지 않다면 나는 당신의 아이디어가 유망하다고 생각합니다. 나는 'classpath connectors'만을 제공하는 프레임 워크를 다뤘습니다. ** ** 매우 귀찮습니다! –
나는 커넥터에 익숙하지 않다. 심지어 XML로 파일을 클래스 로더를 사용하여 액세스 중인지 100 % 확실하지 않습니다.방금 jar 파일에 클래스 로더가 사용되었다고 가정했습니다. 커넥터가 사용되지 않고 있는지 확인하는 방법이 있습니까? 답장을 보내 주셔서 감사합니다. @PaulGrime! – Neil
안녕하세요, 저는 커넥터별로 특별한 의미가 없었습니다. 저는 커넥터를 '응용 프로그램에 XML 컨텐트를 제공하는 코드'로만 의미했습니다. –