>Java >java지도 시간 >IBM WSDL2Java 생성 코드를 컴파일할 때 Java 5의 QName 클래스에 액세스할 수 없는 이유는 무엇입니까?

IBM WSDL2Java 생성 코드를 컴파일할 때 Java 5의 QName 클래스에 액세스할 수 없는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-20 01:35:13219검색

Why Can't I Access the QName Class in Java 5 When Compiling IBM WSDL2Java Generated Code?

라이브러리에 대한 액세스 제한 이해: 사례 연구

Java 코드로 작업할 때 제한 사항으로 인해 특정 클래스에 액세스하는 데 제한이 있을 수 있습니다. 특정 라이브러리(JAR 파일)에 의해 부과됩니다. 이러한 시나리오 중 하나는 Java 5를 사용하여 IBM의 WSDL2Java 도구로 생성된 Java 1.4 코드를 컴파일하려고 할 때 발생합니다.

오류 발생:

컴파일을 시도하는 동안 다음 메시지가 나타날 수 있습니다. Eclipse에서 다음 오류가 발생했습니다.

Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar

이 오류는 Eclipse의 QName 클래스가 필수 rt.jar 라이브러리의 제약으로 인해 javax.xml.namespace 패키지에 액세스할 수 없습니다.

잠재적 해결 방법:

1. 스텁 다시 만들기:

가능한 해결책 중 하나는 WSDL2Java를 사용하여 스텁을 다시 만드는 것입니다. 이렇게 하면 Java 5 환경용으로 특별히 스텁이 생성되고 호환성 문제가 제거됩니다.

2. 빌드 경로 설정 수정:

대체 솔루션은 프로젝트 속성에서 빌드 경로 설정을 업데이트하는 것입니다.

  • JRE 시스템 라이브러리를 제거합니다.
  • 추가 "라이브러리 추가"를 선택하고 JRE 시스템을 선택하여 JRE 시스템 라이브러리를 다시 만듭니다. Library.

솔루션 이면의 추론:

  • 스텁 재생성: 스텁을 수동으로 재생성하여 Java 5 환경과 호환되는지 확인합니다. , 호환성 수정이 필요하지 않습니다.
  • 빌드 경로 설정 수정: 제거 및 다시 추가 JRE 시스템 라이브러리는 빌드 경로에서 라이브러리 순서를 다시 지정합니다. 이는 동일한 이름의 여러 클래스가 서로 다른 JAR 파일에 존재하는 충돌을 해결하여 올바른 클래스의 우선순위를 지정할 수 있습니다. 영구적인 해결 방법을 보장하려면 중복 클래스가 포함된 JAR 파일을 제외하는 것이 좋습니다.

위 내용은 IBM WSDL2Java 생성 코드를 컴파일할 때 Java 5의 QName 클래스에 액세스할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.