No.29 응용 무료 슬롯램 서버없이 Cortion Decision Service 실행 절차 : Part 2
2018.10.17 Progress Corticon
이 항목은 Assist Co., Ltd. (https : //www.ashisuto.co.jp/product/category/brms/progress_corticon/column/detail/brmstech29-2.html)의 재 인쇄입니다.
|
1 부 에 설명 된 기사를 준비한 후에는 이제 Java 클라이언트 응용 무료 슬롯램을 만들어 봅시다.
4. Java 클라이언트 응용 무료 슬롯램을 강화
코르티콘에서 Java 로의 원근법을 전환
Java 관점으로 전환하십시오.
|
프로젝트 및 Java 빌드 경로에 라이브러리 추가
설치된 Corticon 서버의 JAR 파일은 프로세스 내 서버 (규칙 엔진)로 사용할 수 있습니다. 필요한 JAR 파일을 "참조"하는 방법도 있지만, 프로세스 내 서버가 독립적으로 작동한다는 것을 분명히하기 위해 프로젝트에 추가 할 것입니다.
1. 아래 Corticon Server 폴더 [Corticon_home]/Server/Lib에서 7 개의 JAR 파일을 복사하십시오.
- Ant_launcher.jar
- ccconfig.jar
- ccextensions.jar
- cci18nbundles.jar
- cclicense.jar
- ccserver.jar
- ccthirdpartyjars.jar
3.inprocessapp 마우스 오른쪽 버튼을 클릭 한 다음 [속성]를 선택한 다음 [Java 빌드 경로]를 선택하십시오.
4.도서관탭을 선택하고 [JAR 추가]를 클릭하십시오.
|
5. Java ClassPath에서 다음 JAR 파일을 선택하십시오.
|
6. [OK] 버튼을 클릭하십시오.
의사 결정 서비스를 배포하고 액세스 할 Java 클라이언트를 만듭니다
Java 클라이언트에 Corticon API를 사용하여 Java 코드를 구축합니다.
1.inprocessapp 무료 슬롯젝트에서 [new] [패키지]를 선택하십시오. 이름: "무료 슬롯램".
2.무료 슬롯램 패키지를 클릭하고 [NEW] [클래스]를 선택하십시오. 이름: "호출".
3.호출 .java 의 편집 화면 열 것입니다.
client 클라이언트 무료 슬롯램에서 필요한 패키지와 클래스를 다음과 같이 가져 오십시오.
패키지 무료 슬롯램;
import com.corticon.eclipse.server.core.ccserverfactory;
import com.corticon.eclipse.server.core.iccserver;
com.corticon.service.ccserver.*;
Cargolibrary 수입.*;
import java.nio.charset.standardcharsets;
import java.nio.file.files;
import java.nio.file.paths;
import java.util.arraylist;
import java.util.list;
② 다음 세 가지 정보를 저장하는 문자열 변수를 만듭니다.
- 배치 할 의사 결정 서비스 이름
- Inprocess.eds filename을 시작하는 Corticon Server에 배포
- CSV 파일 이름
의사 결정 서비스 이름은 컴파일 시간에 지정한 의사 결정 서비스 이름이어야합니다.
여기 "무료 슬롯".
공개 클래스 호출
개인 정적 문자열 dsname = "무료 슬롯";
비공개 정적 문자열 edsfilename = "c : /users/user01/desktop/app/cargo_v0_16.eds";
개인 정적 문자열 csvfilename = "c : /users/user01/desktop/app/sample.csv";;
③무료 슬롯 엔티티 클래스의 객체를 만들고 CSV 파일의 데이터를무료 슬롯 객체로 변환합니다.
이 샘플에서 예상되는 입력 데이터의 형식은 다음과 같습니다.
1st : 볼륨, 2 차 : 무게
|
규칙의 처리 결과, 세 번째 항목에는 컨테이너 값이 포함되어 있습니다.
④ 한 번에 하나씩 CSV 파일의 데이터를로드하고무료 슬롯 객체에 저장합니다.
생성 된무료 슬롯 객체는 Arraylist에 저장됩니다.
public void Callds ()
노력하다
// CSV 파일에서무료 슬롯 객체로 데이터 변환
목록 <Cargo cargolist = new ArrayList < ();
List <string readlines = files.readalllines (paths.get (csvfilename), Standardcharsets.utf_8);
for (string line : readlines)
무료 슬롯무료 슬롯 = 새로운무료 슬롯 ();
cargo.setvolume (long.parselong (line.split ( ",") [0]);
cargo.setweight (long.parselong (line.split ( ",") [1]);
cargolist.add (무료 슬롯);
Java 무료 슬롯램 내에서 Corticon Server를 스타트합니다.
Corticon Server를 시작하려면 CCServerFactory 클래스의 getCCServer 메소드를 실행하려면. 생성 된 Corticon Server 객체를 실행 한 후 ICCServer 인터페이스가 있습니다.
// Corticon Server 시작
iccserver server = ccserverfactory.getccserver ();
⑥ Corticon Server 객체 "Server"
이번에는 Corticon Studio와 "Cargo_v0_16.eds"를 배포 할 것입니다.
의사 결정 서비스를 배포하기 전에 "if"명령문에 의사 결정 서비스가 이미로드되었는지 확인하십시오.
addDecisionService () 메소드는 최소한 세 가지 매개 변수를 전달해야합니다. 의사 결정 서비스 이름, 컴파일 된 EDS 파일 이름 및 동적 재 장전을 나타내는 부울 유형 (true/false).
// 의사 결정 서비스 배포
if (server.isdecisionserviceedeployed (dsname) == false)
server.adddecisionservice (dsname, edsfilename, false);
7 의사 결정 서비스를 무료 슬롯하십시오.
execute () 메소드는 두 가지 매개 변수, 즉 의사 결정 서비스 이름과 전달 된 데이터 객체를 지정합니다.
전달 된 데이터 "Cargolist"는 Corticon 서버에 배치 한 의사 결정 서비스 규칙에 따라 업데이트됩니다.
execute () 메소드 유형 iccrulemessages의 객체를 반환하고 규칙 무료 슬롯을 초래하는 규칙 메시지를 수신합니다.
// 의사 결정 서비스 무료 슬롯
iccrulemessages msgs = server.execute (dsname, cargolist);
⑧ 규칙 실행 결과의 반환 값을 포함하는무료 슬롯 객체를 CSV 파일에 씁니다.
여기, "_2"는 입력 파일 이름의 접미사로 제공됩니다.
// 결과무료 슬롯 객체를 CSV 파일에 쓰기
List <string writeLines = New ArrayList < ();
for (무료 슬롯무료 슬롯 : Cargolist)
writeLines.add (cargo.getVolume () + "," + cargo.getweight () + "," + cargo.getContainer ());
files.write (paths.get (csvfilename.replace ( ".", "_2.")), WriteLines, Standardcharsets.utf_8);
9) 각 개별 메시지의 규칙 메시지를 루프하고무료 슬롯 객체와 메시지 내용을 콘솔에 출력합니다. 메시지 객체의 getEntityReference () 메소드를 사용하여 참조 된 엔티티의 객체를 검색 할 수 있습니다.
여기,무료 슬롯 유형 변수는 무료 슬롯체가되므로 "x"로 변환
// 규칙 메시지보기
for (object msg : msgs.getMessages ())
iccrulemessage m = (iccrulemessage) msg;
무료 슬롯 X = (무료 슬롯) M.GetEntityReference ();
System.out.println ( "");
System.out.println ( "무료 슬롯 볼륨 :"+x.getvolume ());
System.out.println ( "무료 슬롯 중량 :"+x.getweight ());
System.out.println ( "무료 슬롯 컨테이너 값 :"+x.getContainer ());
System.out.println (M.getSeverity ());
System.out.println (M.GetText ());
⑩ 트리는 블록의 캐치 블록을 추가합니다.
System.out.println (e);
⑪ 마지막으로 메인 Java 메소드를 작성하십시오.
이것은 CSV 파일 이름과 EDS 파일 이름을 주요 메소드의 인수로 지정할 수 있습니다.
public static void main (String [] args)
if (args.length 0)
csvfilename = args [0];
if (args.length 1)
edsfilename = args [1];
호출 d = 새로운 호출 ();
d.callds ();
Java Client Application "무료 슬롯램" 다음과 같습니다.
패키지 무료 슬롯램;
import com.corticon.eclipse.server.core.ccserverfactory;
import com.corticon.eclipse.server.core.iccserver;
com.corticon.service.ccserver.*;
Cargolibrary 가져 오기.*;
import java.nio.charset.standardcharsets;
import java.nio.file.files;
import java.nio.file.paths;
import java.util.arraylist;
import java.util.list;
공개 클래스 호출
개인 정적 문자열 dsname = "무료 슬롯";
비공개 정적 문자열 edsfilename = "c : /users/user01/desktop/app/cargo_v0_16.eds";
개인 정적 문자열 csvfilename = "c : /users/user01/desktop/app/sample.csv";;
public void callds ()
노력하다
// CSV 파일에서무료 슬롯 객체로 데이터 변환
목록 <Cargo cargolist = new ArrayList < ();
List <string readlines = files.readalllines (paths.get (csvfilename), Standardcharsets.utf_8);
for (string line : readlines)
무료 슬롯무료 슬롯 = 새로운무료 슬롯 ();
cargo.setvolume (long.parselong (line.split ( ",") [0]);
cargo.setweight (long.parselong (line.split ( ",") [1]);
cargolist.add (무료 슬롯);
// Corticon Server 시작
iccserver server = ccserverfactory.getccserver ();
// 의사 결정 서비스 배포
if (server.isdecisionserviceedeployed (dsname) == false)
server.adddecisionservice (dsname, edsfilename, false);
// 의사 결정 서비스 무료 슬롯
iccrulemessages msgs = server.execute (dsname, cargolist);
// 결과무료 슬롯 객체를 CSV 파일에 쓰기
List <string writeLines = New ArrayList < ();
for (무료 슬롯무료 슬롯 : Cargolist)
writeLines.add (cargo.getVolume () + "," + cargo.getweight () + "," + cargo.getContainer ());
files.write (paths.get (csvfilename.replace ( ".", "_2.")), WriteLines, Standardcharsets.utf_8);
// 규칙 메시지보기
for (object msg : msgs.getMessages ())
iccrulemessage m = (iccrulemessage) msg;
무료 슬롯 X = (무료 슬롯) M.GetEntityReference ();
System.out.println ( "");
System.out.println ( "무료 슬롯 볼륨 :"+x.getvolume ());
System.out.println ( "무료 슬롯 중량 :"+x.getweight ());
System.out.println ( "무료 슬롯 컨테이너 값 :"+x.getContainer ());
System.out.println (M.getSeverity ());
System.out.println (M.GetText ());
System.out.println (e);
public static void main (String [] args)
if (args.length 0)
csvfilename = args [0];
if (args.length 1)
edsfilename = args [1];
호출 d = 새로운 호출 ();
d.callds ();
4. Java 클라이언트 소스 코드를 작성하십시오.
계속 IS '2 부 "에 설명됩니다.
저자 소개
|
Assist Co., Ltd. 정보 인프라 부서, Product Promotion Department |