넥사크로(클라이언트) 전자정부프레임워크(서버) 간에 통신 프로토콜은 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);
}
}
[결과화면]
'개발 - 넥사크로 강좌' 카테고리의 다른 글
넥사크로 강좌[4] 로그인 (1) | 2019.07.06 |
---|---|
넥사크로 강좌[2] 버튼 클릭시 페이지 이동 (0) | 2019.06.27 |
넥사크로 강좌[1] Hello World (0) | 2019.06.26 |
넥사크로 강좌[0] Intro (0) | 2019.06.26 |