개발 - 넥사크로 강좌

넥사크로 강좌[3] transaction

개미v 2019. 7. 3. 14:36

 

넥사크로(클라이언트) 전자정부프레임워크(서버) 간에 통신 프로토콜은 XML 입니다.

넥사크로에서 transaction 함수를 호출하면 Method는 POST이고, application/xml 이라는 것 확인 가능합니다.

 

 

아래는 전자정부프레임워크에서 넥사크로 라이브러리 정보를 넥사크로로 출력하는 예제입니다.

[전자정부 프레임워크]

1. 서버 환경 구축 : X-API 설치

넥사크로에서 제공하는 X-API 라이브러리를 서버에 설치합니다.

 

2. Controller0.java

getServerInfo.do 요청이 왔을 때 XML 형식으로 응답을 합니다.

package com.study.controller;

import java.io.StringWriter;
import java.io.Writer;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.nexacro17.xapi.data.PlatformData;
import com.nexacro17.xapi.data.VariableList;
import com.nexacro17.xapi.tx.HttpPlatformResponse;
import com.nexacro17.xapi.tx.PlatformType;


@Controller
public class Controller0{

	//  데이터 조회
	@RequestMapping(value="/getServerInfo.do", produces="application/xml; charset=UTF8", method = {RequestMethod.POST, RequestMethod.GET})
	@ResponseBody
	public void getServerInfo(HttpServletResponse response) throws Exception {

		// X-API 라이브러리 정보 조회
		Writer writer = new StringWriter();
		new com.nexacro17.xapi.util.JarInfo().info(writer);		
		String serverInfo = writer.toString();
		
		// Response 생성
		PlatformData out_pData = new PlatformData();
		
		VariableList out_varList = out_pData.getVariableList();
		out_varList.add("ErrorCode", 0);
		out_varList.add("ErrorMsg" , "성공");
		out_varList.add("serverInfo"  , serverInfo);

		HttpPlatformResponse pRes = new HttpPlatformResponse(response, PlatformType.CONTENT_TYPE_XML, "UTF-8");
		pRes.setData(out_pData);
		
		pRes.sendData();
	}
}

 

[넥사크로]

1. CONTEXT 전역변수 생성 (옵션)

CONTEXT를 변수로 등록해놓고 스크립트에서 사용 가능하게 합니다.

 

2. 화면 생성

서버로부터 응답받은 XML 정보를 화면에 출력할 때 사용할 Static을 생성합니다.

 

3. 스크립트

페이지가 로드될 때 실행되는 스크립트 입니다.

/HelloWorld/getServerInfo.do 요청이 되고, 응답 중에 서버 정보는 ServerInfo 폼변수에 저장이 되고, Static 영역에 서버 정보를를 출력합니다.

var id = "";  
var url = "getServerInfo.do";
var reqDs = "";
var respDs = "";
var args = "";
var callback = "received";

// 폼변수
this.serverInfo = "";

this.transaction(id, nexacro.getApplication().CONTEXT + url, reqDs, respDs, args, callback);    

this.received = function(id, code, message)
{
	if (code == 0) {
		this.alert("SUCESS["+code+"]:"+message);
		this.Static00.set_text(this.serverInfo);
	} else {
		this.alert("Error["+code+"]:"+message);
	}
}

 

 

[결과화면]