기존의 WebSphere v6 사설 UDDI 레지스트리의 맨 위에 WebSphere v6 DB2 사설 UDDI 레지스트리를 전개하면 이 후에 이 레지스트리에 액세스할 수 없는 문제가 발생할 수 있습니다. UDDI 전개 마법사의 끝 부분에서 UDDI 응용프로그램은 서버에서 실행 중이지만 서버 구성이 인식되지 않습니다. 증상은 UDDI Ear이 DB2 UDDI 레지스트리와 상호작용할 수 없는 것입니다. 이는 UDDI 응용프로그램에 대해 실행된 모든 명령이 오류로 실패하는 것을 의미합니다(레지스트리 노드를 초기화하는 중에 오류). 여기에는 축 결함을 유발하는 분류에 정의된 사용자를 추가하는 경우가 포함됩니다.
해결책:
1. 예방책: WebSphere v6 DB2 UDDI 레지스트리를 전개하기 전에 UDDI 마법사를 사용하여 이전에 설치한 UDDI 레지스트리를 제거하십시오. 그런 다음 UDDI 마법사를 다시 호출하여 WebSphere V6 DB2 사설 UDDI 레지스트리를 전개하십시오.
2. 설치된 레지스트리를 수정할 경우: WebSphere V6 DB2 UDDI 레지스트리를 이전 레지스트리 맨 위에 설치했는데 문제가 발생한 경우, 서버 관리 콘솔에서 UDDI 레지스트리 응용프로그램을 중지한 후 다시 시작할 수 있습니다.
프로젝트 특성 및 Windows -> 환경 설정 -> 웹 서비스 -> WS-I 준수에서 발견된 WS-I AP 준수 레벨 설정을 "제안" 또는 "필수"로 설정할 경우 WSDL WS-I 유효성 검증에 영향을 주지 않습니다. 이러한 환경 설정은 기본값인 "무시"로 설정됩니다.
해결책은 없습니다. WS-I WSDL 유효성 검증기에서 프로파일 준수 여부를 확인하기 위해 사용자 WSDL을 테스트할 때 사용하는 WS-I Attachments Profile 테스트 검증 문서가 이 IBM Rational Developer 제품 릴리즈에 포함될 때 WS-I 조직에서 공용화하지 않았습니다. 환경 설정을 사용할 수 있도록 하기 위한 임시 수정사항은 테스트 검증 문서가 공용화된 후에 발행됩니다.
웹 서비스나 웹 서비스 클라이언트 마법사를 실행하기 전에 서비스 또는 클라이언트 프로젝트가 존재할 경우, 마법사는 서비스 전개 구성 또는 클라이언트 환경 구성 페이지에서의 선택 사항을 고려하지 않고 항상 이미 기존 프로젝트를 포함하는 EAR을 사용합니다. 이러한 마법사를 실행하기 전에 기존 프로젝트가 EAR에 추가되지 않은 경우, 마법사는 다음 오류로 실패합니다.
IWAB0213E 서버를 시작하는 중에 오류가 발생했습니다.
세부사항:
IWAB0213E 서버를 시작하는 중에 오류가 발생했습니다.
org.eclipse.core.runtime.CoreException: WebSphere v5는 J2EE 1.2 및 1.3 엔터프라이즈 응용프로그램만 지원합니다.
at com.ibm.etools.websphere.tools.v51.internal.WASTestServerWorkingCopy.modifyModules(Unknown Source)
...이 제한사항을 해결하려면 웹 서비스나 웹 서비스 클라이언트에 대해 의도한 프로젝트가 마법사 실행 이전에 이미 추가되어 있는지 확인하십시오. 이 규칙에 대한 유일한 예외는 Tomcat 서버 대상을 가지고 있는 프로젝트입니다. 이 프로젝트는 EAR에 추가할 필요가 없기 때문입니다.
대상 서버에 대한 모니터를 직접 작성한 후(서버 탭에서 모니터링 -> 특성...을 사용하여) 웹 서비스 마법사를 실행하고 웹 서비스 마법사의 첫 번째 페이지에서 "웹 서비스 모니터"를 선택한 경우, 마법사는 처리 중에 다음 오류로 실패할 수 있습니다.
IWAB0014E 예상하지 못한 예외가 발생했습니다. null
java.lang.NullPointerException
at com.ibm.etools.webservice.consumption.command.common.CreateMonitorCommand.hasContentWebServices(CreateMonitorCommand.java:114)
...이 문제를 해결하려면, 웹 서비스 모니터를 사용하지 않는 상태에서 마법사를 다시 실행하거나 서버에서 모니터 -> 특성...을 열고 모니터를 제거한 후 웹 서비스 모니터를 사용하는 상태에서 마법사를 다시 실행하십시오.
웹 서비스 및 웹 서비스 클라이언트 마법사의 첫 번째 페이지에서는 두 가지의 클라이언트 프록시 유형인 "Java 프록시"(보통의 기본값)와 "웹 서비스 사용자 정의 함수"를 사용할 수 있습니다. "웹 서비스 사용자 정의 함수"를 선택하고 마법사를 완료하거나 웹 서비스 선택사항 페이지를 넘어서 계속 진행하려고 할 경우 마법사는 오류 "IWAB0234E 내부 오류가 발생했습니다. 세부사항: null"로 실패합니다.
솔루션: 웹 서비스 사용자 정의 함수를 작성할 경우, 웹 서비스 마법사를 사용하지 마십시오. 대신, 신규 -> 기타 -> 데이터 -> 웹 서비스 사용자 정의 함수를 선택하십시오.
"웹 서비스 탐색기 실행" 단추와 "실행 > 웹 서비스 탐색기 실행" 메뉴 항목은 J2EE Perspective를 제외하고는 어디에서도 사용할 수 없습니다.
J2EE Perspective를 열고 웹 서비스 탐색기를 실행하거나, 적용 가능할 경우 작업공간에서 WSDL 문서나 웹 서비스를 마우스 오른쪽 단추로 누르고 웹 서비스 -> 웹 서비스 탐색기로 테스트를 선택하십시오.
웹 서비스 프록시 생성이 사용 가능한 WebSphere Application Server v5에 대한 DADX 또는 URL 웹 서비스 작성 시나리오에서, 마법사는 다음과 유사한 오류로 실패할 수 있습니다.
IWAB0107E WSDL 파트를 분석하려고 시도할 때 오류가 발생했습니다: input
WSDLException: faultCode=PARSER_ERROR: Problem loading http://localhost:9080/SomeProject/SomeGroup/something.dtd/XSD: Connection refused: connect: Wrapped exception
java.net.ConnectException: Connection refused: connect
...이 문제는 웹 서비스 클라이언트 코드 생성자가 서버에서 WSDL 또는 XSD를 검색할 수 있는 시간 내에 마법사가 서버를 다시 시작하지 못한 경우에 발생합니다. 이 문제는 최소 두 가지 방법으로 막을 수 있습니다.
- 웹 서비스 마법사에서 사용자 웹 서비스를 호스트하는 서버가 아닌, 웹 서비스 클라이언트를 호스트하는 서버를 선택하십시오.
- 웹 서비스 마법사에서 프록시 코드 생성을 사용하지 않도록 설정하십시오. 서비스 마법사가 완료된 후 별도로 웹 서비스 클라이언트 마법사를 실행하십시오.
웹 서비스 마법사를 사용하여 아직 존재하지 않는 서버에 대해 웹 서비스를 작성할 경우, 마법사는 서버를 작성하지만 다음과 같은 오류로 실패할 수 있습니다.
"IWAB0534E 서버 구성에 EAR 프로젝트를 추가할 수 없습니다."
세부사항: java.lang.IllegalArgumentException:
at java.lang.Throwable.<init>(Throwable.java:59)
at java.lang.Throwable.<init>(Throwable.java:73)
at org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
at org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
at org.eclipse.core.runtime.Status.setMessage(Throwable.java)
at org.eclipse.core.runtime.Status.<init>(Unknown Source)
at com.ibm.wtp.server.core.internal.ServerWorkingCopy.modifyModules(Unknown Source)
...이 문제를 해결하려면, 마법사를 다시 실행하여 재시도하십시오. 마법사는 실패 전에 이전 마법사에서 성공적으로 작성한 서버를 사용합니다.
웹 서비스 마법사를 사용하여 설치되지 않은 서버 유형을 대상으로 하는 프로젝트에서 웹 서비스를 작성할 경우, 마법사는 다음과 같은 오류로 실패할 수 있습니다.
IWAB0213E 서버를 시작하는 중에 오류가 발생했습니다.
org.eclipse.core.runtime.CoreException: localhost에서 테스트 환경으로 명명된 WebSphere v5.1 서버가 올바르게 시작되지 않았습니다. 콘솔에서 오류 메시지를 확인하십시오.
at com.ibm.wtp.server.core.internal.Server.synchronousStart(Unknown Source)
...이 문제는 서버 전개 구성 또는 클라이언트 환경 구성 페이지에서 마법사가 대상 서버의 설치 여부와 사용 가능 여부를 먼저 판별하지 않고 프로젝트 서버를 기본값으로 사용했기 때문입니다. 이러한 상황은 프로젝트의 다른 설치에서 다른 사용자가 생성한 프로젝트를 가져올 때 발생할 가능성이 많습니다. 해결책은 사용자 작업공간에 존재하는 서버 전개 구성 또는 클라이언트 환경 구성 페이지에서 서버를 명확하게 선택하는 것입니다.
StockQuoteAxis 샘플을 가져온 후, StockQuoteAxis 및 StockQuoteAxisClient 프로젝트를 Tomcat 4.0 또는 4.1 서버로 추가하려는 경우, "서버에서 추가하거나 제거할 수 있는 프로젝트가 없습니다"라는 메시지가 표시됩니다. Tomcat 4.0 또는 4.1 서버에서 샘플 JSP를 실행하려고 하면 "선택한 서버가 J2EE 웹 모듈 스펙 버전 1.4를 지원하지 않습니다"라는 메시지가 표시됩니다.
이 문제는 샘플에 있는 StockQuoteAxis 및 StockQuoteAxisClient 웹 프로젝트가 J2EE 1.4 / Servlet 2.4 런타임에서 실행되도록 작성되었으나 Tomcat 4.0이나 Tomcat 4.1이 모두 Servlet 2.4 스펙을 지원하지 않기 때문에 발생합니다. 다음과 같은 두 가지 해결책이 있습니다.
- Tomcat 5.0 서버에서 샘플을 실행하십시오.
- 샘플 갤러리에 있는 "사용자 스스로 빌드" 지시사항을 따르고 웹 프로젝트의 대상으로 Tomcat 4.0 또는 4.1을 지정하도록 선택하십시오.
EJB 또는 Application Client 프로젝트에서 웹 서비스 클라이언트에 대해 마법사가 생성한 샘플 JSP는 컨테이너로 관리되지 않는 환경에서 웹 서비스 클라이언트 프록시를 호출합니다. 이 때 웹 서비스 클라이언트에 대한 보안 구성이 생략되기 때문에, 클라이언트는 사실상 비보안 상태로 설치되어 보안 상태의 웹 서비스와 상호 운영할 수 없습니다.
보안 상태의 클라이언트 샘플을 EJB 프로젝트에서 실행하려면 다음을 수행하십시오.
보안 상태의 클라이언트 샘플을 Application Client 프로젝트에서 실행하려면 다음을 수행하십시오.
- 클라이언트 EJB에서 메소드를 작성하십시오.
- 메소드에서 프록시를 통해 웹 서비스를 호출하십시오.
- 클라이언트 EJB를 실행하십시오.
- Application Client에서 Main.java를 찾으십시오.
- 기본 프로그램에서 프록시를 통해 웹 서비스를 호출하십시오.
- Application Client를 실행하십시오.
복합 유형 매개변수를 포함하는 J2EE 1.3 상향식 웹 서비스를 작성할 경우, getter가 있는 매개변수 클래스의 모든 필드는 WSDL에서 xsd:complexType 아래에 있는 하위 요소에 맵핑됩니다. J2EE 1.4에서 JAX-RPC 1.1 스펙을 완전히 준수하기 위해 이 작동이 다음과 같이 변경되었습니다. 각각의 읽기/쓰기 특성(java.beans.Introspector 클래스로 식별)은 xsd:complexType의 요소에 맵핑됩니다.
의도한 대상 EJB 프로젝트가 아직 존재하지 않는 스켈레톤 EJB 웹 서비스를 작성할 경우, 웹 서비스 마법사는 EJB 프로젝트 및 연관된 EJB 클라이언트 JAR을 사용자 대신 작성합니다 (예: EJBProjectName 및 EJBProjectNameClient). 이 EJB 클라이언트 JAR 프로젝트 이름은 웹 서비스 마법사가 웹 서비스 클라이언트를 작성하려고 할 때 마법사에서 선택된 기본 웹 서비스 클라이언트 프로젝트 이름과 충돌합니다. 이로 인해 웹 서비스 클라이언트 프로젝트에 오류가 발생합니다. 웹 서비스 클라이언트 프로젝트가 웹 프로젝트일 경우, 클라이언트 EAR에서 오류가 발생하고 마법사에게 샘플 JSP 테스트 기능을 생성하도록 요청할 경우에도 "웹 서비스 유틸리티 Jar을 복사하는 중에 오류 발생"이 표시됩니다.
해결책은 EJBProjectNameClient(EJB 프로젝트 EJBProjectName이 아직 존재하지 않을 경우)와 다른 웹 서비스 클라이언트 프로젝트 이름을 선택하거나 웹 서비스 마법사를 시작하기 전에 EJB 프로젝트를 작성하는 것입니다.
Websphere Application Server v5.0 또는 v5.1의 보안이 온으로 설정되면, 웹 서비스 종단간 시나리오는 제한시간 대기되며 다음 오류 메시지를 생성합니다. "모듈을 다시 시작할 수 없습니다. *". 이 오류는 무시해도 됩니다.
IBM SOAP 및 IBM WebSphere 런타임 모두에서, EJB 프로젝트 및 관련 라우터 프로젝트를 하향식 또는 상향식 EJB 웹 서비스 시나리오 중 하나의 동일한 EAR에 넣어야 합니다.
Websphere Application Server v6에 전개된 응용프로그램은 관리 콘솔을 통해 볼 수 있지만 수정될 수 없습니다. 전체 콘솔 성능이 Rational Developer 제품 응용프로그램에 필요한 경우, UTE 서버 편집기에서 "작업공간에서 자원 실행"을 선택 취소할 수 있습니다. 이것은 원격 서버로 UTE를 처리하며 .ear 파일이 생성 및 공개됩니다.
IBM SOAP 런타임을 사용하여 WSDL 파일에서 스켈레톤 웹 서비스를 작성하고 동일 마법사에서 프록시를 생성하도록 선택하면, 프록시가 생성되지 않거나 잘못 생성될 수 있습니다. 해결책은 먼저 스켈레톤 웹 서비스를 생성한 후 결과로 생성되는 WSDL을 사용하여 클라이언트를 별도로 생성하는 것입니다.
현재 릴리즈에서, 웹 서비스 마법사는 HTTP 기본 인증으로 보호된 WSDL 파일을 사용하여 스켈레톤 웹 서비스 또는 웹 서비스 클라이언트를 작성할 수 없습니다. 해결책은 브라우저를 사용하고 WSDL을 실제 파일 시스템으로 다운로드하고 WSDL 파일의 사본으로 웹 서비스 마법사를 실행하는 것입니다.
JMS 엔드포인트를 작성하기 위해 웹 서비스 Endpoint Enabler를 실행한 후에, 다음 오류가 JMS 라우터 프로젝트의 ejb-jar.xml에서 보고됩니다. "CHKJ2802E: 클래스 com.ibm.ws.webservices.engine.transport.jms.JMSListenerMDB 또는 수퍼유형 중 하나가 반영되지 않을 수 있습니다. 클래스 경로를 확인하십시오." 이 오류는 무시해도 됩니다.
"Java Bean에서 웹 서비스 작성 및 전개" 학습서를 완료하면, Resources라는 폴더에서 StockQuoteService Java bean을 가져오도록 요청됩니다. Resources 폴더 내의 폴더 구조는 잘못되었으며, Java Bean의 패키지 이름과 일치하지 않는 패키지를 작성하는 결과를 가져옵니다.
이를 정정하려면, 필수 자원을 가져올 때 StockQuote 폴더를 선택하고 그 안의 폴더를 선택 취소하십시오. StockQuote 폴더를 가져오고 나면, StockQuote 패키지를 선택하고, 마우스 오른쪽 단추를 누르고 리팩터 > 이름 바꾸기를 선택하여, 패키지 stockquote의 이름을 바꾸십시오.
사용자 정의 분류가 사설 UDDI 레지스트리 마법사의 테이블에서 삭제되면, 카테고리 데이터는 레지스트리에서 삭제되지만 tModel 자체는 여전히 그 곳에 있습니다. 웹 서비스 탐색기는 사용자 정의 카테고리 검색 시 삭제된 카테고리를 여전히 표시합니다.
EJB 및 EJB 프로젝트가 어노테이션 지원을 통해 작성되는 경우, EJB의 홈 및 원격 인터페이스는 ejbModule 폴더보다는 EJB 또는 EJB 클라이언트 프로젝트의 gen/src 서브폴더에 작성됩니다. 웹 서비스 마법사는 기본 폴더로 코드를 생성하며 중복된 홈 및 원격 인터페이스가 발생합니다. 이것은 간단한 시나리오에서는 웹 서비스의 실행에 영향을 미치지 않는 듯 하지만, 컴파일 오류를 피하기 위해, 웹 서비스 마법사 실행에 앞서 사용자는 gen/src 폴더에서 ejbModule 폴더로 홈 및 원격 인터페이스를 이동시킬 수 있습니다.
WebSphere V6 서버 없이 샘플 갤러리(WebSphere Stock Quote, Temperature Conversion 또는 AddressBook)에서 WebSphere 웹 서비스 샘플을 가져오려고 시도하는 경우, 경고가 표시됩니다.
WebSphere V6 서버 런타임이 발견되지 않았습니다. WebSphere V6 서버를 설치한 후에 가져온 프로젝트의 서버 대상 런타임을 수동으로 설정해야 합니다.
가져온 샘플을 삭제하고, 수동으로 WebSphere V6 서버를 추가하고 다시 가져오도록 수행한 경우, 샘플은 서버 대상에서의 실패로 인해 컴파일 오류가 있는 가져오기를 합니다. 문제를 해결하려면, 샘플을 삭제하고, Workbench를 종료하고, 다시 시작한 후 샘플을 다시 가져오십시오.
WebSphere Application Server v6.0을 사용하여 웹 서비스 클라이언트를 작성한 경우, SOAP 바인딩을 포함하지 않는 WSDL 문서를 사용하는 경우 예외가 발생합니다.
수정된 WSDL 파일을 사용하여 동일한 프로젝트에서 기존의 웹 서비스를 재작성할 필요가 있는 경우, 생성된 Java 파일은 새로 고쳐지지 않습니다. 이로 인해 컴파일 오류가 발생하거나 Java 파일이 변경되지 않은 채로 있습니다. 해결책은 스켈레톤 웹 서비스 마법사를 실행하기 전에 생성된 Java 파일 모두를 백업하고 삭제하는 것입니다.
-inquiryUrl <url>이 -profileName 앞에 지정되지 않으면, NullPointerException이 UDDIPublish/UDDIUnpublish -profileName <profile name>에서 발생합니다. 기본값이 이미 설치된 프로파일과 일치하므로 -profileName을 사용할 필요가 없습니다. -profileName을 사용할 필요가 있는 경우, -profileName <profile name> 앞에 -inquiryUrl <url>을 지정해야 합니다.