Java API
JAVA 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파일 및 라이선스 파일을 복사 (바이너리 방식으로 업로드)
※ 업로드 위치 예 /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 파일 호출 가능한 웹 경로를 의미) 라) 아래 화면과 같이 발급받은 라이선스 정보가 브라우저에 표시되면 설치 성공
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>
XPLATFORM 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파일 실행화면
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 옵션을 통해 사용가능하도록 수정하는 것입니다.
참고사항
중복된 컬럼명의 데이터를 추가(set)하는 경우 가장 마지막에 추가된 중복된 컬럼명으로 데이터가 추가됩니다.
컬럼의 위치(index)로 추가하는 경우는 컬럼명과 상관없이 위치(index)를 기준으로 데이터가 추가됩니다.
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버전을 확인하는 방법은 아래와 같습니다.
java -jar xplatform-xapi-1.0.jar
X-API 라이센스 체크시점
투비소프테에서 제공하는 X-API의 라이센스 체크 시점에 대해 정리합니다. 라이센스 체크는 WAS 기동 후 최조 서비스 호출시 라이센스파일을 읽어 사용자,서버 IP, 기간을 체크합니다. 그 이 후 서비스 호출시마다 기간만을 체크합니다. (운영 라이센서의 경우 별도 기간이 명기되어 있지 않기 때문에 기간확인을 위한 체크로직은 수행하지만 기간은 체크하지 않습니다.) 참고 : 개발라이센스의 경우에도 동일하며, 서비스 호출시마다 기간을 체크하게 됩니다.
ASP(.NET)
설치방법
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
설치시 라이센스파일이 필요합니다.
라이센스파일은 제품구매시 전달받은 파일을 사용하시면 됩니다.
XPLATFORM 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();// 여기서 에러 발생합니다.
해결방안
오류유형과 같이 receivedata에서 에러발생원인이 있는 경우는 라이센스 파일 관련에러로 현재 관련 에러내용을 출력하지 않음.
system32에 서버라이센스 파일을 복사하고 정상작동됨.
API ASP버전에서 오류발생 (receivedata)
XPLATFORM ASP(ASP/.Net) 샘플모음
XPLATFORM ASPAPI를 이용한 샘플소스입니다
아래 링크를 클릭하여 샘플소스를 다운로드 받을 수 있습니다.
ASP API정상 설치여부 (테스트 파일)
조회 서비스 샘플)
저장 서비스 샘플)