WebSphere Business Integration Server Foundation BPEL Java 스니펫 이주

Java™ 스니펫을 포함하는 모든 BPEL 프로세스에 대해 이 섹션은 이전 Java 스니펫 API에서 응용프로그램을 통해 이동하는 데이터가 Eclipse SDO(Service Data Object)로 저장되는 새 Java 스니펫 API로 이주하는 방법을 설명합니다.

WSIFMessage에서 SDO 상태 전이에 특정하게 수행하는 이주 단계에 대해 "WSIFMessage API 호출에서 SDO API로 이주" 섹션을 참조하십시오.

가능한 경우 스니펫은 이주 마법사를 통해 자동으로 이주되지만 이주 마법사가 전체를 이주할 수 없는 스니펫이 있습니다. 이주를 완료하려면 추가 수동 단계가 필요합니다. 수동으로 이주되어야 하는 Java 스니펫의 유형에 대한 세부사항은 제한사항 주제를 참조하십시오. 이들 스니펫 중 하나가 발생할 때마다 이주 마법사는 자동으로 이주될 수 없는 이유를 설명하고 경고 또는 오류 메시지를 발행합니다.

다음 표는 Process Choreographer 버전 5.1에서 6.0으로 BPEL Java 스니펫 프로그래밍 모델 및 API의 변경사항을 자세히 설명합니다.
표 1. WebSphere® Business Integration Server Foundation BPEL Java 스니펫 이주에 대한 변경사항 및 솔루션
변경사항 솔루션
WSIFMessage 기반 랩퍼 클래스가 더 이상 WSDL 메시지 유형에 대해 생성되지 않으며, 복합 스키마 유형에 대해 Java Bean 헬퍼 클래스가 생성되지 않습니다. BPEL 변수는 이름으로 직접 액세스할 수 있습니다. WSDL 메시지 정의가 단일 파트를 갖는 BPEL 변수의 경우 이제 이 변수는 실제 데이터 주위의 랩퍼를 갖는 대신 파트를 직접 표시합니다. 메시지 유형이 복수 파트를 갖는 변수는 파트 주위에 DataObject 랩퍼를 갖습니다. (WebSphere Application Developer Integration Edition의 랩퍼는 WSIFMessage입니다.)

BPEL 변수를 6.0 스니펫에서 직접 사용할 수 있기 때문에 5.1 보다 로컬 변수에 대한 필요성이 적습니다.

BPEL 변수에 대한 강하게 유형화된 Getter는 내재적으로 메시지 파트 주변에 WSIFMessage 랩퍼 오브젝트를 초기화했습니다. WSDL 메시지 정의가 단일 파트만을 갖는 BPEL 변수의 경우 ‘랩퍼’ 오브젝트가 없습니다. 이 경우에 BPEL 변수가 직접 파트를 표시합니다(단일 파트가 XSD 단순 유형인 경우에 BPEL 변수는 java.lang.String, java.lang.Integer 등과 같은 Java 오브젝트 랩퍼 유형으로 표시됩니다). 다중 파트 WSDL 메시지 정의를 갖는 BPEL 변수는 다르게 처리됩니다. 여전히 파트 주위에 랩퍼가 있으며 이 DataObject 랩퍼는 이전 오퍼레이션에 의해 이미 설정되지 않은 경우 6.0 Java 스니펫 코드에서 명시적으로 초기화되어야 합니다.

5.1 스니펫의 모든 로컬 변수가 BPEL 변수와 동일한 이름이었던 경우 충돌이 있을 수 있으므로 가능하면 이 상황을 개선하십시오.

WSIFMessage 오브젝트는 더 이상 BPEL 변수를 표시하는 데 사용되지 않습니다. Java 스니펫에서 호출된 임의의 사용자 정의 Java 클래스가 WSIFMessage 매개변수를 갖는 경우 DataObject를 승인/리턴하도록 이주되어야 합니다.
BPEL 변수에 대해 강하게 유형화된 Getter 메소드는 더 이상 사용할 수 없습니다. 변수는 이름으로 직접 액세스할 수 있습니다. WSDL 메시지 정의가 단일 파트를 갖는 BPEL 변수의 경우 이제 실제 데이터 주위의 랩퍼를 갖는 대신 파트를 직접 표시함을 참고하십시오. 메시지 유형이 복수 파트를 갖는 변수는 파트 주위에 DataObject 랩퍼를 갖습니다. (WebSphere Application Developer Integration Edition의 랩퍼는 WSIFMessage입니다.)
BPEL 변수에 대해 강하게 유형화된 Setter 메소드는 더 이상 사용할 수 없습니다. 변수는 이름으로 직접 액세스할 수 있습니다. WSDL 메시지 정의가 단일 파트를 갖는 BPEL 변수의 경우 이제 이 변수는 실제 데이터 주위의 랩퍼를 갖는 대신 파트를 직접 표시합니다. 메시지 유형이 복수 파트를 갖는 변수는 파트 주위에 DataObject 랩퍼를 갖습니다. (WebSphere Application Developer Integration Edition의 랩퍼는 WSIFMessage입니다.)
WSIFMessage를 리턴하는 BPEL 변수에 대해 약하게 유형화된 Getter 메소드는 더 이상 사용할 수 없습니다. 변수는 이름으로 직접 액세스할 수 있습니다. WSDL 메시지 정의가 단일 파트를 갖는 BPEL 변수의 경우 이제 이 변수는 실제 데이터 주위의 랩퍼를 갖는 대신 파트를 직접 표시합니다. 메시지 유형이 복수 파트를 갖는 변수는 파트 주위에 DataObject 랩퍼를 갖습니다. (WebSphere Application Developer Integration Edition의 랩퍼는 WSIFMessage입니다.)
getVariableAsWSIFMessage 메소드의 두 가지 변이가 있었음을 주의하십시오.
getVariableAsWSIFMessage(String variableName)
getVariableAsWSIFMessage(String variableName,
boolean forUpdate)
Java 스니펫 활동의 경우 기본 액세스는 읽기/쓰기입니다. 이 설정은 스니펫의 주석에 있는 변수의 이름 목록을 사용하여 @bpe.readOnlyVariables를 지정하면 읽기 전용으로 바꿀 수 있습니다. 예를 들어, 변수 B 및 D를 다음과 같이 읽기 전용으로 설정할 수 있습니다.
variableB.setString("/x/y/z", variableA.getString("/a/b/c")); 
// @bpe.readOnlyVariables names="variableA"
variableD.setInt("/x/y/z", variableC.getInt("/a/b/c")); 
// @bpe.readOnlyVariables names="variableC"

또한 조건에 Java 스니펫이 있으면 변수는 기본적으로 읽기 전용이지만 @bpe.readWriteVariables...를 지정하면 이 설정을 읽기/쓰기로 바꿀 수 있습니다.

BPEL 변수에 대해 약하게 유형화된 Setter 메소드는 더 이상 사용할 수 없습니다. 변수는 이름으로 직접 액세스할 수 있습니다. WSDL 메시지 정의가 단일 파트를 갖는 BPEL 변수의 경우 이제 이 변수는 실제 데이터 주위의 랩퍼를 갖는 대신 파트를 직접 표시합니다. 메시지 유형이 복수 파트를 갖는 변수는 파트 주위에 DataObject 랩퍼를 갖습니다. (WebSphere Application Developer Integration Edition의 랩퍼는 WSIFMessage입니다.)
BPEL 변수 메시지 파트에 대해 약하게 유형화된 Getter 메소드는 단일 파트 메시지에 적합하지 않으며 다중 파트 메시지를 위해 변경되었습니다. BPEL 변수(DataObject의) 특성에 대해 약하게 유형화된 Getter 메소드로 이주하십시오.

WSDL 메시지 정의가 단일 파트를 갖는 BPEL 변수의 경우 BPEL 변수가 직접 파트를 표시하며 변수는 Getter 메소드를 사용하지 않고 직접 액세스해야 합니다.

getVariablePartAsObject 메소드의 다음 두 가지 변이가 있었습니다.
getVariablePartAsObject(String variableName, String partName)
getVariablePartAsObject(String variableName, String partName, 
boolean forUpdate)
다중 파트 메시지의 경우 6.0에서 다음 메소드에 의해 동등한 기능이 제공됩니다.
getVariableProperty(String variableName, QName propertyName);

6.0에서는 읽기 전용 액세스(5.1에서 forUpdate=forUpdate='false'를 갖는 두 번째 메소드뿐 아니라 위의 첫 번째 메소드의 경우입니다)를 위해 변수를 사용하는 표기법이 없습니다. 변수는 6.0 스니펫에서 직접 사용되며 항상 갱신할 수 있습니다.

BPEL 변수의 메시지 파트에 대해 약하게 유형화된 Setter 메소드는 단일 파트 메시지에 적합하지 않으며 다중 파트 메시지를 위해 변경되었습니다. BPEL 변수(DataObject)의 특성에 대해 약하게 유형화된 Setter 메소드로 이주하십시오.

WSDL 메시지 정의가 단일 파트를 갖는 BPEL 변수의 경우 BPEL 변수가 직접 파트를 표시하며 변수는 Setter 메소드를 사용하지 않고 직접 액세스해야 합니다.

다음 메소드에 대한 호출이 이주되어야 합니다.
setVariableObjectPart(String variableName, String partName, 
Object data)
다중 파트 메시지의 경우 6.0에서 다음 메소드에 의해 동등한 기능이 제공됩니다.
setVariableProperty(String variableName, QName propertyName,
Serializable value);
BPEL 파트너 링크에 대해 강하게 유형화된 Getter 메소드는 더 이상 사용할 수 없습니다. BPEL 파트너 링크에 대해 약하게 유형화된 Getter 메소드로 이주하십시오.
BPEL 파트너 링크에 대해 강하게 유형화된 Setter 메소드는 더 이상 사용할 수 없습니다. BPEL 파트너 링크에 대해 약하게 유형화된 Setter 메소드로 이주하십시오.
BPEL 상관 세트에 대해 강하게 유형화된 Getter 메소드는 더 이상 사용할 수 없습니다.
V5.1 스니펫:
String corrSetPropStr = 
getCorrelationSetCorrSetAPropertyCustomerName();
int corrSetPropInt = 
getCorrelationSetCorrSetBPropertyCustomerId();
V6.0 스니펫:
String corrSetPropStr = (String) 
getCorrelationSetProperty(“CorrSetA”, 
new QName(“CustomerName”));
int corrSetPropInt = ((Integer) 
getCorrelationSetProperty (“CorrSetB”, 
new QName(“CustomerId”))).intValue();
BPEL 활동 사용자 정의 특성에 대해 약하게 유형화된 Getter 메소드에 필요한 추가 매개변수.
V5.1 스니펫:
String val = getActivityCustomProperty(“propName”);
V6.0 스니펫:
String val = getActivityCustomProperty
(“name-of-current-activity”, “propName”);
BPEL 활동 사용자 정의 특성에 대해 약하게 유형화된 Setter 메소드에 필요한 추가 매개변수.
V5.1 스니펫:
String newVal = “new value”;
setActivityCustomProperty(“propName”, newVal); 
V6.0 스니펫:
String newVal = “new value”;
setActivityCustomProperty(“name-of-current-activity”, 
“propName”, newVal);
raiseFault(QName faultQName, Serializable message) 메소드는 더 이상 존재하지 않습니다. 가능하면 raiseFault(QName faultQName, String variableName)로 이주하십시오. 그렇지 않으면 raiseFault(QName faultQName) 메소드로 이주하거나 Serializable 오브젝트에 대한 새 BPEL 변수를 작성하십시오.
관련 태스크
WSIFMessage API 호출을 SDO API로 이주
관련 참조
이주 프로세스 제한사항(소스 아티팩트 이주 시)

피드백
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.