이 보스 5.1.0에 관해서입니다 :JBoss가 Java 패키지 이름에 JAR 이름을 추가하는 이유는 무엇입니까?
내가 직접 내 EAR에서 JAR 파일을 삭제하고 클래스가 집어 데 사용 해요. ClassLoader가 진단 덤프를 수행하면 귀 밑에있는 모든 JAR을 나열한 다음 해당 JAR에있는 모든 Java 패키지를 나열합니다.
나는이 보관 파일 jsqlparser-bin.jar
을 가지고 있는데, EAR하에 있음에도 불구하고 잘못 JAR로 표시되지 않습니다. 그러나 패키지 은이지만 모두 앞에 JAR 이름이 붙습니다. 따라서 net.sf.jsqlparser.schema
과 같은 패키지를 나열하는 대신 jsqlparser-bin.jar.net.sf.jsqlparser.schema
을 나열합니다.
나는 또한 덤프에서 다른 아카이브가 붙은 패키지 이름 (예 : jaxb-impl.jar.com.sun.xml.bind.api
)으로 나타났습니다. 이것은 동일한 패키지가 하나 이상의 JAR에 포함 되었다면 JBoss가 창의적인 이름 변경을했기 때문에 prepend라고 믿게되었습니다. 그러나 EAR에서 jsqlparser-bin.jar
을 완전히 제거한 경우 패키지 버전이 전혀 버려지지 않았습니다. 그래서 지금 나는 우둔합니다. 나는 또한 jsqlparser
에 대한 EAR의 다른 아카이브를 스캔했지만 비어 있습니다. jsqlparser-bin.jar
자체가 정숙합니다. 컴파일 할 수 있기 때문에 (컴파일하지 않고 컴파일 할 수 있기 때문입니다.)
그래서 무엇을 제공합니까? 해당 JAR의 클래스를 표시하려면 어떻게합니까? 클래스 로더 계층에 DelegatingHandler
이없는 이유는 무엇입니까?