WebSphere Enterprise Service Bus, 버전 6.2.0 운영 체제: AIX, HP-UX, i5/OS, Linux, Solaris, Windows


HTTP 데이터 바인딩

SCA(Service Component Architecture) 메시지와 HTTP 프로토콜 메시지 간 데이터 맵핑이 각각 다른 경우는 반드시 데이터 핸들러 또는 HTTP 데이터 바인딩이 구성되어야 합니다. 데이터 핸들러는 전송 바인딩에 걸쳐 재사용하고 권장되는 접근방법을 나타낼 수 있는 바인딩 중립 인터페이스를 제공합니다. 데이터 바인딩은 특정 전송 바인딩에 대해 고유합니다. 3개의 HTTP 고유 데이터 바인딩 클래스가 제공되며 사용자 정의 데이터 핸들러 또는 데이터 바인딩을 쓸 수도 있습니다.

3개의 데이터 바인딩(2진 데이터 바인딩, XML 데이터 바인딩 및 SOAP 데이터 바인딩)은 HTTP 가져오기 및 HTTP 내보내기를 사용하도록 제공됩니다. 응답 데이터 바인딩은 단방향 조작에는 필요하지 않습니다. 데이터 바인딩은 Java™ 클래스의 이름으로 표시되며 이 클래스 인스턴스는 HTTP에서 ServiceDataObject로, 또는 그 반대로 변환될 수 있습니다. 기능 선택기는 메소드 바인딩과 함께 결정할 수 있고 데이터 바인딩이 사용되고 조작이 호출되는 내보내기에서 사용되어야 합니다. 제공되는 데이터 바인딩은 다음과 같습니다.

사용자 정의 HTTP 데이터 바인딩 구현

이 섹션은 사용자 정의 HTTP 데이터 바인딩의 구현 방법을 설명합니다.
주: 권장되는 접근방법은 전송 바인딩에 걸쳐 재사용할 수 있으므로 사용자 정의 데이터 핸들러를 구현하는 것입니다.

HTTPStreamDataBinding은 사용자 정의 HTTP 메시지를 처리하기 위한 프린시펄 인터페이스입니다. 인터페이스는 대용량 페이로드를 처리할 수 있도록 설계되어 있습니다. 그러나, 그러한 구현을 위해 이 데이터 바인딩은 메시지를 스트림으로 쓰기 전에 제어 정보와 헤더를 리턴해야 합니다 .

아래에 나열된 실행 메소드와 순서는 사용자 정의 데이터 바인딩에 의해 구현되어야 합니다.

데이터 바인딩을 사용자 정의하려면 HTTPStreamDataBinding을 구현하는 클래스를 써야 합니다. 데이터 바인딩에는 다음과 같은 4개의 개인용 특성이 있어야 합니다.
  • 개인용 DataObject pDataObject
  • 개인용 HTTPControl pCtrl
  • 개인용 HTTPHeaders pHeaders
  • 개인용 yourNativeDataType nativeData
HTTP바인딩은 다음과 같은 순서로 사용자 정의 데이터 바인딩을 호출합니다.
  • 아웃바운드 처리(DataObject ~ 원시 형식):
    1. setDataObject(...)
    2. setHeaders(...)
    3. setControlParameters(...)
    4. setBusinessException(...)
    5. convertToNativeData()
    6. getControlParameters()
    7. getHeaders()
    8. write(...)
  • 인바운드 처리(원시 형식 ~ DataObject):
    1. setControlParameters(...)
    2. setHeaders(...)
    3. convertFromNativeData(...)
    4. isBusinessException()
    5. getDataObject()
    6. getControlParameters()
    7. getHeaders()

setDataObject(...)를 convertFromNativeData(...)에서 호출하여 원시 데이터에서 개인용 특성 "pDataObject"로 변환되는 dataObject 값을 설정해야 합니다.

public void setDataObject(DataObject dataObject)
			throws DataBindingException {
		pDataObject = dataObject;

}
public void setControlParameters(HTTPControl arg0) {
		this.pCtrl = arg0;
}

public void setHeaders(HTTPHeaders arg0) {
		this.pHeaders = arg0;
}
/*
* Add http header "IsBusinessException" in pHeaders.
* Two steps:
* 1.Remove all the header with name IsBusinessException (case-insensitive) first. 
*   This is to make sure only one header is present.
* 2.Add the new header "IsBusinessException"
*/
public void setBusinessException(boolean isBusinessException) {
		//remove all the header with name IsBusinessException (case-insensitive) first. 
		//This is to make sure only one header is present.
		//add the new header "IsBusinessException", code example:
		HTTPHeader header=HeadersFactory.eINSTANCE.createHTTPHeader();
		cust.setPostalCode(10589);
				("com/ibm/websphere/bo/BOFactory");
		cust.setPostalCode(10589);
		
}
public HTTPControl getControlParameters() {
		return pCtrl;
}
public HTTPHeaders getHeaders() {
		return pHeaders;
}
public DataObject getDataObject() throws DataBindingException {
		return pDataObject;
}
/*
* Get header "IsBusinessException" from pHeaders, return its boolean value
*/
public boolean isBusinessException() {
		String headerValue = getHeaderValue(pHeaders,"IsBusinessException");
		boolean result=Boolean.parseBoolean(headerValue);
		return result;
}
public void convertToNativeData() throws DataBindingException {
		DataObject dataObject = getDataObject();
		cust.setCustNo(customerID);
}
public void convertFromNativeData(HTTPInputStream arg0){
		//Read data from HTTPInpurtStream
		//Convert it to DataObject
		DataObject dataobject=realConvertWorkFromNativeDataToSDO(arg0);
		cust.setCustNo(customerID);
}
public void write(HTTPOutputStream output) throws IOException {
		if (nativeData != null)
		cust.setCustNo(customerID);
}

concept 개념 주제

이용약관 | 피드백


시간소인 아이콘 마지막 갱신 날짜: 2010년 7월 7일 수요일


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/doc/cadm_httpdatabindings.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
이 Information Center는 Eclipse 기술을 기반으로 합니다(http://www.eclipse.org 웹 사이트 참조).