2011-04-26 3 views
3

나는 이해하지 못합니다. jaxws-rt.jar를 통해 이미 사용할 수있는 rt.jar 내부의 jax-ws 패키지의 "내부"구현의 사용 왜 Sun/Oracle은 jax 내부에서 jax-ws를 통합하기 위해 이러한 결정을 내릴 것인가 ... 두 항아리 패키지의 클래스 변경이 병렬로 수행되는지는 잘 모릅니다. 실제로 reffered해야 ... ???jaxws-rt.jar의 "/ com/sun/xml/ws /"패키지와 rt.jar의 "/ com/sun/xml/internal/ws /"패키지의 차이점은 무엇입니까

답변

0

당신은 당신이 이것을보고있는 어떤 상황에 대해서도주지 않습니다.

기본적으로 javax.xml.ws* 유형 뒤에있는 JAX-WS 구현은 JRE에서 제공되는 유형입니다. JAX-WS는 SPI을 정의합니다. JRE 클래스를 오버라이드 (override)하기 위해서, 다른 구현은 endorsed directories에 있어야합니다.

일부 Java EE 5 응용 프로그램 서버는 Java 1.5 및 1.6에서 작동 할 수 있습니다. Java 1.5 스펙을 충족 시키려면 애플리케이션 서버가 JAX-WS 구현을 제공해야한다. Java EE 6 구현은 Java 6 구현보다 우선합니다 (Java EE 6에서는 JAX-WS 2.2를 요구하지만 Java SE 6에서는 2.0을 요구합니다).

따라서 일부 컨텍스트에서는 JAX-WS의 여러 구현을 볼 수 있습니다. 사용되는 것은 구성에 따라 다릅니다.

1

jaxws-rt.jar은 Java RE의 일부가 아닙니다. 그러나 RE는 내부적으로 JAXWS를 구현해야합니다. 그래서, 내가 기억하는 한, 응용 프로그램이 JAXWS의 다른 구현을 클래스 패스에 놓으면 나중에 발생하는 충돌과 오류를 피하기 위해 com.sun.xml.internal.ws 패키지에 패키지를 구현했습니다.

또 다른 측면 : 클래스 경로에 새 구현을 추가하더라도이 새로운 구현에 버그가 있어도 JRE가 예상대로 작동한다는 것이 보장됩니다.

관련 문제