사용자 정의 Java 컴포넌트를 작성하려면 다음을 수행하십시오.
- 모듈 프로젝트 아래에서
인터페이스를 펼치고
WebSphere Studio
Application Developer Integration에서 이 Java 클래스에 대해 생성된
WSDL 인터페이스를 선택하십시오.
- 이 인터페이스를 어셈블리 편집기로 끌어서 놓으십시오. 작성할 컴포넌트의
유형을 선택하는 대화 상자가 열립니다. 구현 유형이
없는 컴포넌트를 선택하고 확인을 클릭하십시오.
- 일반 컴포넌트가 어셈블리 다이어그램에 표시됩니다. 해당 컴포넌트를 선택한 후
특성 보기로 이동하십시오.
- 설명 탭에서 컴포넌트의 이름 및 표시 이름을
보다 구체적인 것으로 변경할 수 있습니다.
- 세부사항 탭에서
어셈블리 편집기에 끌어서 놓은 하나의 인터페이스를 갖는 이 컴포넌트를
볼 수 있습니다.
- 액세스하려고 시도 중인 Java 클래스가 서비스 프로젝트 자체에 포함되지
않는 경우 서비스 프로젝트의 클래스 경로에 있는지
확인하십시오.
- 모듈 프로젝트를 마우스 오른쪽 단추로 클릭하고 종속성 편집기
열기…를 선택하십시오. Java 섹션
아래에서 이전 Java 클래스가 들어있는 프로젝트가 나열되는지 확인하십시오.
나열되지 않는 경우 추가…를 클릭하여 추가하십시오. 단추를 클릭하십시오.
- 어셈블리 편집기로 돌아가서 방금 작성한 컴포넌트를 마우스 오른쪽 단추로
클릭하고 를 선택하십시오. 그런 다음 Java 구현이 생성될 패키지를 선택하십시오.
그러면 복합 유형은 commonj.sdo.DataObject인 오브젝트로 표시되고 단순 유형은 동등한
Java 오브젝트로 표시되는
SCA 프로그래밍 모델에 따라 WSDL 인터페이스를 준수하는 스켈레톤 Java 서비스가
작성됩니다.
아래 코드 예는 다음을 보여줍니다.
- 5.1 WSDL 인터페이스의 관련 정의
- WSDL에 대응하는 WebSphere Studio
Application Developer Integration Edition 5.1 Java 메소드
- 동일한 WSDL에 대한 WebSphere Integration
Developer 6.0 Java 메소드
아래 코드는 5.1 WSDL 인터페이스의 관련 정의를 보여줍니다.
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified"
elementFormDefault="unqualified"
targetNamespace="http://migr.practice.ibm.com/"
xmlns:xsd1="http://migr.practice.ibm.com/">
<complexType name="StockInfo">
<all>
<element name="index" type="int"/>
<element name="price" type="double"/>
<element name="symbol" nillable="true"
type="string"/>
</all>
</complexType>
</schema>
</types>
<message name="getStockInfoRequest">
<part name="symbol" type="xsd:string"/>
</message>
<message name="getStockInfoResponse">
<part name="result" type="xsd1:StockInfo"/>
</message>
<operation name="getStockInfo" parameterOrder="symbol">
<input message="tns:getStockInfoRequest"
name="getStockInfoRequest"/>
<output message="tns:getStockInfoResponse"
name="getStockInfoResponse"/>
</operation>
다음 코드는 WSDL에 해당하는 WebSphere Studio Application Developer
Integration Edition 5.1 Java 메소드를 보여줍니다.
public StockInfo getStockInfo(String symbol)
{
return new StockInfo();
}
public void setStockPrice(String symbol, float newPrice)
{
// set some things
}
다음 코드는 동일한 WSDL에 대한 WebSphere Integration Developer 6.0 Java
메소드를 표시합니다.
public DataObject getStockInfo(String aString) {
//TODO Needs to be implemented.
return null;
}
public void setStockPrice(String symbol, Float newPrice) {
//TODO Needs to be implemented.
}
이제 생성된 Java 구현 클래스에서 “//TODO” 태그가 표시되는 위치에
코드를 채워야 합니다. 다음 두 옵션이 있습니다.
- 로직을 원래의 Java 클래스에서 이 클래스로 이동하고, DataObjects를
사용하도록 채택하십시오.
- WebSphere Studio
Application Developer Integration Edition에서 하향식 접근법을 선택했고
Java 컴포넌트가
DataObject 매개변수를 처리하려는 경우 권장되는 옵션입니다. 이 재작업은 WebSphere Studio Application Developer Integration Edition에서
WSDL 정의로부터 생성된 Java 클래스가
제거되어야 하는 WSIF 종속성을 갖기 때문에 필요합니다.
- 이 생성된
Java 클래스 내부에
이전 Java 클래스의
개인용 인스턴스를 작성하고 다음을 수행하는 코드를 작성하십시오.
- 생성된 Java 구현 클래스의 모든 매개변수를
이전 Java 클래스가 예상하는 매개변수로 변환
- 변환된 매개변수로 이전 Java 클래스의 개인용 인스턴스 호출
- 이전 Java 클래스의 리턴값을 생성된
Java 구현 메소드에 의해 선언되는 리턴값으로 변환
- 이 옵션은 WSIF 서비스 프록시가 새 6.0 스타일 Java 컴포넌트에 의해 이용되어야 하는
이용 시나리오에 권장됩니다.
위의 옵션 중 하나를 완료한 후
Java 서비스를
다시 연결해야 합니다.
어떤 참조도 없어야 하므로, Java 컴포넌트의
인터페이스를 다시 연결하면 됩니다.
- 이 서비스가 동일한 모듈의 비즈니스 프로세스에 의해 호출되는 경우
적합한 비즈니스 프로세스 참조에서 이 Java
컴포넌트 인터페이스로의 연결을 작성하십시오.
- 이 서비스가 다른 모듈의 비즈니스 프로세스에 의해 호출되는 경우
SCA 바인딩을 갖는 내보내기를 작성하고, 다른 모듈에서
이 내보내기를 해당 모듈의 어셈블리 편집기로 끌어 놓아서, 대응하는
SCA 바인딩을 갖는 내보내기를 작성하십시오. 적합한
비즈니스 프로세스 참조를 해당 가져오기로 연결하십시오.
- 이 서비스를 외부에 공개하기 위해
WebSphere Studio Application Developer
Integration Edition에서 출력한 경우, 서비스 재출력 방법에 대한 지시사항은 "이주된 서비스를 액세스하기 위해 SCA 내보내기 작성" 섹션을
참조하십시오.