14.Service API

14.1Java API

14.1.1JAVA API 설치방법

XPLATFORM JAVA API설치방법 (동영상)

XPLATFORM에서 사용하는 서버 API(JAVA) 설치방법에 대해  동영상을 통해 확인할 수 있습니다.
해당 내용은 동영상을 통해 확인할 수 있습니다.
아래 주소를 클릭하여 동영상을 참고하세요.
http://www.miplatform.co.kr/faq/data/Movie/Setup/XP_JSPJAVA.wmv
서버 API 설치방법을 알고 싶습니다.

XPlatform-API 설치 전 사전 확인 사항

설치 전 확인사항

1)   WAS 설치 및 Web Application(Context) 구성이 완료 되었는지 확인 
2)   FTP를 이용하여 XPlatform-API 파일 업로드를 위한 WAS 계정 확인 
3)   WAS Application(Context)의 lib 폴더 위치 확인
     예) [application 경로]/WEB-INF/lib 
4)   WAS Restart 방법 확인 
5)   XPlatform 라이선스 확인

라이센스 발급 방법

영업대표에게 아래 절보를 확인 후 라이센스 발급요청
1) 서버 장비 Core 수 
2) WAS IP 주소
3) WAS 접근 Domain Name(Client 라이선스 발급 시 사용)
core 확인방법
core.jsp파일을 was server에 올려 웹브라우저를 통해 확인해 볼 수 있습니다.
라이센스 발급시 체크하는 core수 입니다.
예) core.jsp


<%@ page contentType="text/html; charset=euc-kr"%><%
%><%@ page import="java.lang.*" %><% 
%><%
  int coreCnt = Runtime.getRuntime().availableProcessors();
  out.write("core cnt : " + coreCnt);
%>

XPLATFORM X-API설치

설치방법 개요
WAS에 Application(Context) 구성 후 application 경로의 lib 폴더에 
Service-API(xplatform-xapi-1.1.jar, 
commons-logging-1.1.jar)파일 및 라이선스(XPLATFORM_Server_License.xml)파일을 
업로드 후 WAS를 재기동 합니다.
설치방법 상세
가)   WAS 권한을 가진 사용자 ID를 이용하여 WAS에 로그인
나)   WAS의 Lib 폴더로 이동 
다)   FTP 유틸리티를 통해 Jar파일 및 라이선스 파일을 복사 (바이너리 방식으로 업로드)

그림 14-120120622_141054506_xp_ftp

※ 업로드 위치 예
/app_test/WEB-INF/lib/xplatform-xapi-1.1.jar
/app_test/WEB-INF/lib /commons-logging-1.1.1jar
/app_test/WEB-INF/lib/ XPLATFORM_Server_License.xml
라)   WAS를 Restart 합니다.

설치확인 테스트

확인방법
가) 첨부파일의 설치 테스트 Jsp파일을 application의 context(Web) root에 업로드 
    (JSP 파일이 호출 가능한 위치)
나) Internet Explorer 브라우저 실행
다) 주소창에 테스트 페이지 호출함(Jsp 파일 호출 가능한 웹 경로를 의미)
라) 아래 화면과 같이 발급받은 라이선스 정보가 브라우저에 표시되면 설치 성공

그림 14-220120622_141137819_xp_check

XApiCheck.jsp 소스
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JarInfo</title>
<style>
* { font-family: Verdana }
</style>
</head>
<body>
<pre>
<%
new com.tobesoft.xplatform.util.JarInfo().info(out);
%>
</pre>
</body>
</html>

14.1.2XPLATFORM API(JAVA) 사용시 참고사항

X-API구성

XPLATFORM을 사용하기 위해 제공되는 X-API의 구성은 아래와 같습니다.
docs
    - api
        - com
        - resources
        - html파일 (index-all)을 실행하여 도움말 참조 가능 
lib
    - xplatform-xapi-1.0
    - commons-logging-1.1.1

doc파일 실행화면

그림 14-3doc-help

X-API에 대한 도움말을 어떻게 보나요?

XPLATFORM 에서 보내는 Request를 구분방법

XPALTFORM에서 서버 호출시 서버에서 XPALTFOTM에서 보낸 것인지 구분하는 방법입니다.

서버페이지에서 사용방법

사용 예)
String userAgent = request.getHeader("User-Agent"); 
if( userAgent != null && userAgent.indexOf("XPLATFORM") != -1 )
{  
    System.out.println("XPLATFORM 입니다.");
} else {   
    System.out.println("MSIE 입니다.");
} 
xplatform에서 조회 : 
XPLATFORM-Win32/2009 (compatible; Mozilla/4.0; MSIE 7.0) 

IE에서 조회 : Mozilla/4.0 (compatible; 
MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 
1.1.4322)
해당 url을 처리하는 쪽(일반적으로 JSP)에서 xplatform 에서 온 request 인지 일반 web에서 GET방식으로 치고 들어온 request인지를 구별해 낼 수 있는 방법이 있나요?

DataSet ID에 . 이 들어간 경우 오류사항 해결방법

원인

DataSet의 ID에 특수문자 . 이 들어가 발생하는 내용입니다.

해결방법

1) XPLATFORM의 Dataset id에는 '.' 등 특수문자를 포함할 수 없습니다. 
   그와 동일하게 서버측 API에서도 특수문자 포함을 막은 것입니다.
2) 해당 DataSet의 ID에 . 을 사용하고자 한다면 다음의 작업을 통해 사용이 가능합니다.
방법은 다음과 같습니다.
1) 클래스경로에 x-api.properties 파일 생성
2) x-api.properties 파일에 다음 속성 추가
   platform.data.DataSet.namecheck=false
3) Variable의 id도 제약을 풀기 원한다면 다음 속성 추가
   platform.data.Variable.namecheck=false
4) WAS 등 재기동
즉  제공되는 X-API jar문서에서 properties 옵션을 통해 사용가능하도록 수정하는 것입니다.
DataSet ID에 특수문자 .이 들어간 경우 오류가 발생합니다.

DataSet 중복컬럼 오류사항 해결방법

원인

DataSet의 컬럼 중 컬럼명을 중복해서 사용하는 경우 오류를 발생하도록 처리 되어 나타나는 현상

해결방법

1) XPLATFORM의 Dataset id에는 '.' 등 특수문자를 포함할 수 없습니다. 그와 동일하게 서버측 API에서도 특수문자 포함을 막은 것입니다.
2) 해당 DataSet의 ID에 . 을 사용하고자 한다면 다음의 작업을 통해 사용이 가능합니다.
방법은 다음과 같습니다.
1) 클래스경로에 x-api.properties 파일 생성
2) x-api.properties 파일에 다음 속성 추가
platform.data.DataSet.duplicatedcolumnnamecheck=false
3) WAS 등 재기동

즉 제공되는 X-API jar문서에서 properties 옵션을 통해 사용가능하도록 수정하는 것입니다.

참고사항

DataSet ID 중복컬럼 오류 발생

X-API에서 Request된 내용을 Log로 기록하는 방법

X-API Javadoc의 15. StreamLog를 이용한 송수신 데이터(stream) 저장

StreamLog를 이용한 송수신 데이터(stream) 저장
PlatformRequest의 StreamLog는 클라이언트로부터 수신받은 데이터(stream)를 특정 위치에 저장하는 역할을 수행한다.
이것은 서버에서 데이터 수신중에 오류가 발생하거나, 수신받은 데이터가 의심스러운 경우 파일로 저장하여 정확한 확인을 위한 것이다.
주의할 점은 StreamLog가 활성화된 경우 메모리를 많이 차지할 수 있으므로,반드시 필요한 경우에만 사용한다.
// HttpServletRequest를 이용하여 HttpPlatformRequest 생성
HttpPlatformRequest req = new HttpPlatformRequest(request);
// 수신받은 데이터(stream) 로그의 활성화
req.setStreamLogEnabled(true);
// 수신받은 데이터(stream) 로그의 저장 위치
req.setStreamLogDir("/home/log");
// 데이터 수신
// 예외가 발생한 경우 자동적으로 로그 저장 위치에 수신받은 데이터(stream)가 저장됨
req.receiveData();
// 예외가 발생하지 않더라도 필요한 경우 강제적으로 로그 저장
req.storeStreamLog();
PlatformData data = req.getData();
 
수신받은 데이터(stream) 저장
Client로 부터 받은 데이타를 Log파일로 기록할 수 있나요?

X-API에서 압축통신을 설정하는 방법

설정방법

addProtocolType를 설정해 주면 됩니다.

HttpPlatformResponse pRes = new HttpPlatformResponse(response, PlatformType.CONTENT_TYPE_XML, "UTF-8");
pRes.addProtocolType(PlatformType.PROTOCOL_TYPE_ZLIB);
pRes.setData(o_xpData);
압축통신 방법

파일업로드시 HttpPlatformResponse 관련 오류

오류내용

HttpPlatformResponse res = new HttpPlatformResponse(response);
res.setData(resData);
res.sendData(); <----- 이부분에서 exception이 발생합니다. 내용은 다음과 같습니다.
/*************************************************************************************/
java.lang.IllegalStateException: strict servlet API: cannot call getWriter() after getOutputStream()
at weblogic.servlet.internal.ServletResponseImpl.getWriter(ServletResponseImpl.java:307)
at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:122)
at com.tobesoft.xplatform.tx.HttpPlatformResponse.sendData(HttpPlatformResponse.java:192)
at jsp_servlet._jsp.__fileupload._jspService(__fileupload.java:186)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
~~~이하 생략

해결방법

부분을 상위
<%@page import="com.tobesoft.xplatform.tx.PlatformType"%>
<%@page import="com.tobesoft.xplatform.tx.PlatformRequest"%>
<%@page import="com.tobesoft.xplatform.tx.PlatformResponse"%>
추가 
//HttpPlatformResponse res = new HttpPlatformResponse(response);
아래와 같이 변경 
PlatformResponse res = new PlatformResponse(response.getOutputStream(),
PlatformType.CONTENT_TYPE_XML,"euc-kr");
cannot call getWriter() after getOutputStream() 오류 해결방법

XPLATFORM 서버 라이센스 적용시 오류해결방법

XPLATFORM의 라이센스 적용시 발생하는 문제에 대한 해결방법 기술합니다.

오류메시지

Invalid byte 1 of 1-byte UTF-8 sequence.

원인 및 해결방법

발급된 라이센스 파일의 파일 저정방식이 Ansi로 저장이 되어 발생되는 문제로 일반 에디터(AcrooEdit 등)에서 파일 포멧을 Unicode(UTF-8) 포멧으로 변경하여 해결이 가능합니다.
Invalid byte 1 of 1-byte UTF-8 sequence.

X-API버전 확인방법

현재 설치되어 있는 X-API버전을 확인하는 방법은 아래와 같습니다.

그림 14-4x-api_version

java -jar xplatform-xapi-1.0.jar

14.1.3X-API 라이센스 체크시점

투비소프테에서 제공하는 X-API의 라이센스 체크 시점에 대해 정리합니다.
라이센스 체크는 WAS 기동 후 최조 서비스 호출시 라이센스파일을 읽어 사용자,서버 IP, 기간을 체크합니다.
그 이 후 서비스 호출시마다 기간만을 체크합니다.
(운영 라이센서의 경우 별도 기간이 명기되어 있지 않기 때문에 기간확인을 위한 체크로직은 수행하지만 기간은 체크하지 않습니다.)
참고 : 개발라이센스의 경우에도 동일하며, 서비스 호출시마다 기간을 체크하게 됩니다.

14.2ASP(.NET)

14.2.1설치방법

ASP(.Net) 모듈 설치방법은 아래 링크파일을 다운로드 받아 확인하실 수 있습니다. 
http://www.miplatform.co.kr/faq/data/docs/ASPAPI_dotNet서비스설치방법및샘플.zip
 
http://www.miplatform.co.kr/faq/data/docs/설치가이드_XP_ASP_NET.zip
설치시 라이센스파일이 필요합니다.
라이센스파일은 제품구매시 전달받은 파일을 사용하시면 됩니다.

14.2.2XPLATFORM API(ASP/.Net) 사용시 참고사항

X-API ASP모듈 사용시 receivedata 에서 에러 발생시 확인사항

오류내용

XapiRequest = (PlatformRequest)Server.CreateObject("XAPI.PlatformRequest");
XapiResponse = (PlatformResponse)Server.CreateObject("XAPI.PlatformResponse");
OutPlatformData= (PlatformData)Server.CreateObject("XAPI.PlatformData");
XAPILib.DataSet rs;
rs = (XAPILib.DataSet)Server.CreateObject("XAPI.DataSet");
{
    XapiRequest.ReceiveData();
    InPlatformData = XapiRequest.GetData();
    XapiRequest.ReceiveData();// 여기서 에러 발생합니다.

해결방안

API ASP버전에서 오류발생 (receivedata)

XPLATFORM ASP(ASP/.Net) 샘플모음

XPLATFORM ASPAPI를 이용한 샘플소스입니다

아래 링크를 클릭하여 샘플소스를 다운로드 받을 수 있습니다.

ASP API정상 설치여부 (테스트 파일)
조회 서비스 샘플)
저장 서비스 샘플)
http://www.miplatform.co.kr/faq/data/docs/ASP샘플.zip