이 파일에는 웹 서비스에 영구적, 임시적으로 적용되는 포괄적인 제한사항 목록이 포함되어 있습니다.
웹 서비스 작업 중에 고려해야 할 제한사항은 다음과 같은 절로 구분됩니다.
보안
WebSphere Application
Server 사용시 발생한 문제점
다음 오류 메시지가 나타날 수 있습니다.
SSLSocketFactory
error message: java.net.SocketException: java.lang.ClassNotFoundException:
Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
웹 서비스 탐색기를 사용하고 샘플 JSP를 생성하며,
HTTPS WSDL 파일에서 웹 서비스 또는 클라이언트를 작성하거나 Axis 웹 서비스를 배치하기 전에
워크벤치에서 SSL(Secure Sockets Layer)을 사용하여 서버와 통신하도록 구성해야 합니다.
이 태스크에 대한 정보는
SSL 연결을 사용하여 보안 서버에서 작업하는 데 문제점을 참조하십시오.
Error opening socket: javax.net.ssl.SSLHandshakeException:
unknown certifcate라는 오류 메시지가 표시될 수 있습니다.
웹 서비스
마법사를 사용하여 HTTPS WSDL을 검색하거나 보안
WebSphere® Application Server에서
웹 서비스 탐색기를 사용하려면
보안
WebSphere Application Server와
통신하도록
IBM® JRE
구성의 단계를 완료하십시오.
웹 서비스 마법사 사용 시 발생하는 문제점
- 웹 서비스 마법사의 단계 중에
취소를 클릭하는 경우 작업공간에서
생성된 파일 및 배치 디스크립터에서 웹 서비스 항목을 보유할 수 있습니다.
마법사를 닫은 후 수동으로 이러한 파일을 삭제하십시오.
- 웹 서비스 마법사에서 EAR을 공개하는 데 실패:
문제점:
스텁 런타임을 사용하여 원격 서버를 작성하면 EAR이 공개되지 않습니다.
원인: 웹 서비스 마법사가 서버의 시작 가능 여부를 알 수 있는
방법이 없습니다.
솔루션: 서버 보기가 제공되는 퍼스펙티브에서
원격 서버를 마우스 오른쪽 단추로 클릭하고 프로젝트
추가 및 제거를 선택하십시오. 프로젝트를 선택하여 서버에
추가하십시오.
- 웹 서비스 마법사에서 선택한 프로젝트 유형을 이용할 수 없음:
문제점:
서버에 서비스 설치 옵션이 선택되어 있거나
EJB 프로젝트에 EJB가 포함되지 않은 경우 J2EE 애플리케이션
클라이언트 프로젝트가 포함된 EAR에서 웹 서비스 마법사를 실행하려고 하면,
마법사를 사용하여 웹 서비스를 생성할 수 없습니다.
원인: 웹 서비스 마법사는 마법사 3페이지에서 선택된
프로젝트 유형을 이용할 수 있는지 확인합니다. 프로젝트 유형을 이용할 수 없는 경우 마법사가
진행되지 않습니다.
솔루션: 서버에 서비스 설치를 선택 취소하고
다시 실행하거나, EJB를 EJB 프로젝트에 추가하면 마법사를
진행할 수 있습니다.
- 작업공간에서 WSIL 파일을 선택한 후 웹 서비스 마법사를 실행하면
마법사에서 잘못된 항목을 선택했다는 메시지가 표시됩니다. WSIL 파일에서
WSDL 파일이 선택되어야 하기 때문입니다.
이 문제를 해결하려면, 웹 서비스 마법사에서 찾아보기를 클릭하여
특정 WSDL 파일을 선택하십시오.
- 대상 웹 프로젝트 이름에
latin-1 문자가 아닌 다른 문자가 포함될 경우, 웹 서비스 마법사에서 웹 서비스를
작성하는 중에 오류가 발생할 수 있습니다. 웹 서비스 코드 생성기는 프로젝트 이름을 기반으로 HTTP URL을 계산하는데,
latin-1 문자가 아닌 다른 문자는 HTTP URL에서 허용되지 않기 때문에 이 문제가 발생합니다. 이를 해결하려면 latin-1 문자만 포함된 프로젝트 이름을
사용하십시오.
- 작업공간에 EAR 프로젝트가 둘 이상 있고
EJB 프로젝트에서 엔터프라이즈 JavaBean을 선택하고
웹 서비스 마법사를 실행하는 경우 선택한 엔터프라이즈 Bean이
마법사를 실행할 때 선택되지 않을 수 있습니다. 서비스 구현
선택 대화 상자에서 선택된 EAR 프로젝트는 작업공간에서 알파벳 순서로
첫 번째 EAR이지만, Bean이 포함된 EJB 프로젝트와 연관된 EAR은
아닙니다. 이를 해결하려면
서비스 구현 선택 대화 상자에서 원하는 EAR 프로젝트를
직접 선택하십시오.
- 웹 서비스 마법사 1페이지에서 웹 서비스 트래픽을 모니터하도록
선택하면, 경우에 따라 TCP/IP 모니터 보기가 자동으로 표시되지 않습니다.
를 선택하면 보기를 수동으로 열 수 있습니다.
이 보기에 웹 서비스의 요청과 응답이 표시됩니다.
WebSphere JAX-WS 런타임
환경 및 JAXB 사용 시 발생하는 문제점
웹 서비스 클라이언트를 작성할 때 제한사항
EJB 프로젝트에 웹 서비스 클라이언트를 배치할 때 프록시 구성 페이지에서
웹 서비스 클라이언트가 범위로 포함되는 EJB를 선택해야 합니다.
이 선택사항은 JSR-109에 의해
정의된 요구사항으로, component-scoped-refs 요소의 component-name이
모듈에 포함된 EJB의 ejb-name과 일치할 것을 요구합니다.
프로젝트에
하나 이상의 EJB가 있을 경우 오류가 발생하지 않습니다. 그러나
프로젝트에 EJB가 없을 경우에는 프록시 구성 페이지의 옵션이
편집 가능하고 기본값은 접미부가 "EJB"인 WSDL의 서비스 이름과
같습니다. 또한 클라이언트 마법사는 웹 서비스 클라이언트의 범위가
기존의 EJB로 지정되지 않았으므로 배치가 완료되지 않았다는 경고를 표시합니다.
webservicesclient.xml에서 사용되는
component-name과 동일한 이름의 EJB를 작성하여 이 오류를 수정할 수 있습니다.
그러나
마법사를 취소하고 클라이언트 작성 종료를 선택하는 경우 마법사에서
불완전한 component-scoped-refs를
webservicesclient.xml에서 제거하지 못합니다.
이 경우, 재배치를 수행하기 전에 불완전한 component-scoped-refs를
수동으로 제거하십시오.
웹 서비스 샘플 JSP 제한사항
- 웹 서비스 샘플 JSP에는 매개변수로 콜렉션 또는 배열을 사용하는
메소드에 대한 지원이 포함되지 않습니다. 이러한 메소드는 샘플 JSP의 메소드 분할창에서
생략됩니다.
웹 서비스 탐색기 문제
- 웹 서비스 탐색기에서 다중 인라인 스키마를 사용하는 WSDL 파일을 로드하면
이러한 스키마에서 참조되는 유형에 대한 경고 메시지가
생성됩니다. 이 경고 메시지는 Reference
of type <qualified_type_name> isn't resolved.와
유사합니다. 이는
오류가 아닌 경고이며, 웹 서비스 탐색기의 오퍼레이션 시작 기능을 방해하지 않습니다.
따라서 이 경고는 무시해도 됩니다.
- 웹 서비스 탐색기는
HTTP 기본 인증이 아닌 다른 프로토콜(예: NTML)을 사용하는 프록시 서버를 인증하여
웹 서비스를 호출하도록 지원하지 않습니다. 이러한 이유 또는 다른 이유로
웹 서비스 탐색기에서 선택된 웹 서비스에 연결하지 못할 경우,
결과 분할창에 IWAB0135E An unexpected error has occurred 오류가 표시되고
HTTP 응답에서 검색된 장애 정보가 함께 표시됩니다. 이 문제를 해결하려면 HTTP 기본 인증 프록시 서버로
전환하십시오.
- 스키마가 시퀀스를 포함하는 선택사항을 사용하는 경우
소스 보기를 양식 보기로 전환할 때 웹 서비스 탐색기에서 문제가
발생합니다. complexType의 선택사항 요소를 사용 중인 경우,
선택사항은 시퀀스를 포함한 둘 이상의 요소를 포함합니다. 이때 웹 서비스 탐색기의
양식 보기에서 소스 보기로 전환할 경우, 소스 보기의 대응하는 XML 단편을 데이터 손실 없이 양식 보기로 다시 변환하는 데
문제가 있을 수 있습니다. 이 문제점을 해결하려면 데이터를 처음 입력할 때
양식 보기에서 시퀀스를 시작하십시오. 이 구성에서는 소스 보기를
사용하지 않는 것이 좋습니다. 소스 보기를 사용할 경우에는
양식 보기로 다시 전환하지 마십시오.
- 웹 서비스 탐색기는
상대적 가져오기 URL을 해석하지 않고 WSDL을 가져옵니다.
웹 서비스 탐색기를 사용하는 경우 WSDL 페이지에 있는 WSDL을 작업공간으로
가져올 때 문제가 발생합니다. WSIL 문서에 대한
서비스 참조로 가져오기 옵션을 선택한 경우
WSDL의 원래 URL을 참조하므로 모든 상대적 가져오기에
도달할 수 있습니다. WSDL 문서 가져오기를 선택한 경우
WSDL 파일에 상대적 가져오기가 포함되어 있으면 이러한 가져오기에 더 이상 도달할 수
없으며, 도구의 다른 위치에서 처리할 수 없거나 처리하기가 어려운
WSDL 사본이 남게 됩니다. 가져오는 WSDL에 상대적 가져오기가
포함되어 있는 경우 WSIL 메소드를 사용하십시오. WSDL의 사본이 필요한 경우에는
끊어진 링크를 해결하도록 가져온 후에 상대적 가져오기에 대한 검사를 수동으로
수행하십시오.
웹 서비스 명령행 사용 시 발생하는 문제점
- Java EE 1.4를 사용하는 명령행 도구에서 생성한 EJB 클라이언트가 포함된
EAR을 작업공간으로 가져오면 컴파일 오류가 발생합니다.
오류를 수정하려면 EJB 프로젝트를 마우스 오른쪽 단추로 클릭한 후
특성을 선택하십시오.
Java 빌드 경로로 이동하여 라이브러리 탭을 선택하십시오.
EJBClientProject/imported_classes(class folder) 항목을 제거하십시오.
EJBServiceClient/imported_classes/Meta-inf/classess 클래스 폴더를 추가하십시오.
확인을 클릭하십시오.
- Java EE 1.4를 사용하는 명령행 도구에서 생성한 애플리케이션 클라이언트가 포함된
EAR을 작업공간으로 가져오면 해당 클라이언트를 실행할 때
ClassNotFoundException 오류가
발생합니다. 오류를 해결하려면 애플리케이션 클라이언트 프로젝트를
마우스 오른쪽 단추로 클릭한 후 특성을 선택하십시오.
Java 빌드 경로로 이동하여 라이브러리 탭을 선택하십시오.
ApplicationClientProject/imported_classes(class folder) 항목을
제거하십시오. ApplicationClientProject/imported_classes/Meta-Inf/classess 클래스 폴더를 추가하십시오.
확인을 클릭하십시오.
- 대상이 Axis 런타임인 웹 서비스 Ant 태스크는
웹 서비스 생성 작업을 처리하지만, 배치 작업은 처리하지 않습니다.
따라서 Apache Axis 기본 AdminClient 유틸리티를 사용하여
서비스를 수동으로 배치하지 않을 경우, 실행 중인 서버에서 Ant 태스크를 사용하여 작성한
Axis 웹 서비스에 도달할 수 없습니다. Axis AdminClient 도구를 사용하여 수동으로
Axis에 웹 프로젝트의
WebContent/WEB-INF 디렉토리 아래 서브디렉토리에
생성된 deploy.wsdd 파일을 배치하십시오.
세부사항은 Axis 1.4 사용자 안내서의 AdminClient 사용
절을 참조하십시오.