2011-01-13 4 views
4

자바 애플릿이 실행될 때 클래스 로더가 이미 애플릿의 항아리에 있어야 할 물건에 대한 글자 그대로의 대담한 요청으로 웹 서버에 충돌하는 것으로 나타났습니다. 파일, 또는 아무도 필요하지 않은 것들. 클래스, 속성 파일, 애플릿의 모든 클래스에 대한 BeanInfo, 이름을 지정합니다. 이것은 실제로 완전히 의도적 인 것으로 보인다. 분명히 jar 파일 전체를 대체하지 않고 jar 파일 내의 개별 파일에 대한 업데이트를 제공하는 것으로 간주된다. 따라서 클래스 로더는 먼저 파일을 원격으로 검색하려고 시도하고 실패 할 경우에만 파일을 사용하려고한다. 로컬 복사본에 이미 있습니다.자바 애플릿 클래스 로더가 클래스의 원격 검색을 시도하지 못하도록 함

나는 그것이 매우 귀찮고 낭비되는 것을 발견했다. 웹 서버는 쓸모없는 요청에 의해 계속 망치고있다. 기본 동작을 뒤집을 수있는 방법이 없습니까? 즉, 클래스 로더가 먼저 로컬 복사본을 사용하도록 알리고 원하는 리소스를 로컬에서 찾을 수없는 경우 원격으로 가져 오기를 시도하십시오. 방금 설정해야 할 일종의 시스템 속성이있을 수도 있기를 바라는 것이 너무 많을까요? 아니면 실제로 이것을 수행하기 위해 대체 클래스 로더를 작성해야합니까?

답변

4

파일을 먼저 아카이브에서 읽어야합니다. 유망 소리

<PARAM name="codebase_lookup" value="false"> 

http://download.oracle.com/javase/6/docs/technotes/guides/plugin/developer_guide/special_attributes.html#codebase

+0

, 나는 그것을 시도주지 : 실패 느슨한 파일 조회를 억제하기 위해, 그것을위한 옵션이 있습니다. –

+0

이것은 애플릿 및 객체 태그에서만 작동합니다. embed 태그에서 이것은 아무런 효과가 없습니다. 이 규칙을 삽입 태그에서 어떻게 적용합니까? 예를 들어 embed 태그를 사용하는 Firefox와 Chrome은 항상 요청을 시도합니다. –