WebSphere® Studio Application Developer
Integration Edition SOAP/JMS 바인딩을 위한 첫 번째 이주 옵션은 서비스를 웹 서비스 클라이언트에서
액세스할 수 있도록 만드는 것입니다.
웹 서비스 바인딩을 사용한 내보내기에서는 외부 웹 서비스 클라이언트에서 액세스할 수 있는 SCA 컴포넌트를 작성합니다. 웹 서비스 바인딩을 사용한 내보내기를 작성하려면 다음을 수행하십시오.
- 이주 마법사가 작성한 모듈을
어셈블리 편집기로 여십시오.
- WebSphere Studio Application Developer
Integration Edition에서 IBM® Web
Service(SOAP/JMS) 바인딩이 생성된 각 서비스 인터페이스에 대해 SCA 바인딩을 갖는 내보내기를
작성하십시오.
- 어셈블리 편집기에서 SCA 컴포넌트를 마우스 오른쪽 단추로 클릭하십시오.
- 내보내기…를 선택하십시오.
- 웹 서비스 바인딩을 선택하십시오.
- 컴포넌트에 대해 다중의 인터페이스가 있는 경우,
이 바인딩 유형으로 내보낼 인터페이스를 선택하십시오.
- soap/jms 전송을 선택하십시오.
- 웹 서비스 내보내기를 작성한 후, 어셈블리 편집기에서 내보내기를
선택하고, 특성 보기에서 설명 컨텐츠 분할창을 선택하십시오. 내보내기 이름 및 설명이 나열되고 필요에 따라 수정할 수 있습니다.
- 어셈블리 다이어그램을 저장하십시오.
- 바인딩 컨텐츠 분할창을 선택하면 IBM Web Service
WSDL 바인딩 및 서비스가 모듈의 프로젝트 폴더에서 직접 생성되었음을 알 수 있습니다. 그 이름은 component-that-was-exported Export WSDL
PortType name Jms_Service.wsdl로 지정됩니다. 해당 파일을 조사하는 경우
문서/리터럴 랩핑된 바인딩이 6.0에서 선호되는 스타일이기 때문에
기본적으로 사용됨을 알 수 있습니다. 이는 IBM Web Service 클라이언트가
서비스를 호출할 때 사용하는 WSDL입니다.
- 클라이언트 코드 보존이 바람직한 경우 다음 단계를 수행하여 새
웹 서비스 바인딩 및 서비스를 생성하십시오.
- ejbModule/META-INF/wsdl/business process name/business process interface
port type nameJMS.wsdl의 5.1 생성 EJB 프로젝트에서 비즈니스 통합 모듈 프로젝트로 5.1 WSDL 파일을
복사하십시오.
- 파일을
복사하고 모듈을 다시 빌드한 후 웹 서비스가 사용하는 XML 스키마 유형, WSDL 메시지 및 WSDL 포트 유형이 5.1에 있는
IBM Web Service
WSDL 파일에서 중복되기 때문에 오류 메시지가 표시될 수 있습니다. 이를 수정하려면
IBM Web Service 바인딩/서비스 WSDL에서
중복 정의를 삭제하고 해당 위치에 실제 인터페이스 WSDL에 대한 WSDL 가져오기를 추가하십시오. 참고:
WebSphere Studio Application Developer
Integration Edition이 IBM Web Service 배치 코드를
생성했을 때 일부의 경우에 스키마 정의를 수정했음을 주의해야 합니다. 이는
IBM Web Service WSDL을 사용하는 기존 클라이언트에
대해 불일치를 유발할 수 있습니다. 예를 들어 원래의 스키마 정의가 규정되지 않은 경우, "elementFormDefault" 스키마 속성이 IBM Web
Service WSDL에서 생성된 인라인 스키마에서 "qualified"로 설정되었습니다. 이는 런타임 중에 WSWS3047E:
Error: Cannot deserialize element 오류가 생성되도록 합니다.
- 방금 비즈니스 통합 모듈에 복사한 이 WSDL 파일을 마우스 오른쪽 단추로
클릭하고 연결 프로그램을 선택한 후 WSDL 편집기를
선택하십시오.
- 소스 탭으로 이동하십시오. 이 파일에 정의된
모든 WSDL PortTypes 및 메시지를 삭제하십시오.
- 다음 오류가
표시됩니다. '<binding>' 바인딩에 대해
'<portType>' 포트 유형이 정의되지 않았습니다.
이를 수정하려면 그래프 탭의 WSDL 편집기에서 가져오기 섹션을 마우스 오른쪽 단추로 클릭하고
가져오기 추가를 선택하십시오.
- 일반 탭의
특성 보기에서 위치 필드의 오른쪽에 있는 … 단추를
클릭하십시오. WSDL 메시지 및 포트 유형 정의가 위치하는 인터페이스 WSDL을 찾아보고
확인을 클릭하여 인터페이스 WSDL을
서비스/바인딩 WSDL로 가져오십시오.
- WSDL 파일을 저장하십시오.
- 프로젝트를 새로 고치기/다시 빌드하십시오. 비즈니스 통합 Perspective로
전환하십시오. 어셈블리 편집기에서 모듈의 어셈블리 다이어그램을 여십시오.
- 프로젝트 탐색기 보기에서 이주 중인 모듈을 펼치고
웹 서비스 포트 논리 카테고리를
펼치십시오. 바인딩/서비스 WSDL 목록에 존재하는 포트가 보여야
합니다. 어셈블리 편집기로 끌어서 놓으십시오.
- 웹 서비스 바인딩을 갖는 내보내기 작성을
선택하고 적합한 포트 이름을 선택하십시오. 기존 웹 서비스 클라이언트가
변경할 필요가 없도록 이전 바인딩/서비스를 사용하는 내보내기가
작성됩니다. 방금 어셈블리 편집기에서 작성한 내보내기를 선택하고 특성 보기로 이동하는 경우, 바인딩 탭에서
5.1 포트 및 서비스 이름이 채워졌음을 알아야 합니다.
- 모든 변경을 저장하십시오.
- 응용프로그램을 배치하기 직전에 5.1 서비스 주소와
일치하도록 생성된 웹 프로젝트의 구성을 변경할 수 있습니다. (이 파일을 다시 생성하게 하는 SCA 모듈을 변경할 때마다 변경해야 합니다.) 재사용 중인 IBM Web Service
WSDL 서비스 정의를 보는 경우, 다음과 같은 5.1 클라이언트가 코드화된 서비스 주소가
표시됩니다. <wsdlsoap:address
location="http://localhost:9080/MyServiceWeb/services/MyServicePort"/>
- 6.0 생성 웹 프로젝트 아티팩트가 이 이전 서비스 주소와
일치하게 하기 위해 생성된 웹 프로젝트의 배치 설명자를 수정해야
합니다. WebSphere Integration Developer에서 배치
설명자를 열고, Servlet 탭에서 해당 내보내기에 대한 기존 URL 맵핑과 매우 비슷하고 동일한 Servlet 이름을 갖지만
다른 URL 패턴을 갖는 추가 URL 맵핑을 추가하십시오.
- 또한 이 웹 프로젝트의 컨텍스트 루트를 수정하여 원래 서비스 주소의 컨텍스트 루트와 일치하도록 해야 하는
경우(이 예제에서 컨텍스트 루트는 "MyServiceWeb"), 이 웹 프로젝트가 있는 J2EE Enterprise Application에 대한 배치 설명자를 열고
해당 웹 모듈의 컨텍스트 루트가 이전 서비스 주소의 컨텍스트 루트와 일치하도록 변경할 수 있습니다. 다음 오류가 표시될 수 있지만
무시할 수 있습니다. CHKJ3017E:
Web Project: <WEB PROJ NAME> is mapped to an invalid Context root: <NEW
CONTEXT ROOT> in EAR Project: <APP NAME>.