무료 슬롯 블로그 | 무료 슬롯 철저한 활용 내비게이션No.14 무료 슬롯에게 휴식을 요청하자 - 의사 결정 서비스를 호출하는 Java를 사용하여 REST 클라이언트의 설명 -

BRMS 철저한 활용 블로그

No.14 무료 슬롯에게 휴식을 요청하자 - 의사 결정 서비스를 호출하는 Java를 사용한 휴식 클라이언트의 설명 -

2017.04.12 Progress 무료 슬롯

이 항목은 Assist Co., Ltd. (https : //www.ashisuto.co.jp/product/category/brms/progress_무료 슬롯/column/detail/brmstech14.html)의 재 인쇄입니다.

No.14 무료 무료 슬롯에 휴식을 취하자 (2017 년 4 월 12 일)

무료 슬롯은 이제 REST JSON 변속기 및 수신을 지원합니다. 무료 슬롯 v5.5 이상에서 휴식 통신을 사용할 수 있습니다. 물론, 이전과 마찬가지로 SOAP의 XML 전송 및 수신도 사용할 수 있으며, 이는 애플리케이션 통합 범위를 확장했습니다. 따라서 이번에는 REST를 사용하여 의사 결정 서비스를 호출하는 방법을 설명 할 것입니다.

무료 슬롯을 휴식으로 호출 할 때
・ 비누보다 약간 빠른 처리 속도
・ 비누로 보내거나받을 수없는 유니 코드 확장 영역의 문자도 전송 및받을 수 있습니다
와 같은 장점이 있습니다.(*1)

그러나 휴식의 경우 무료 슬롯은 REST 용 서비스 사양을 만들 수있는 기능이 없으므로 JSON을 클라이언트 내 객체에 매핑하는 것은 SOAP보다 조금 더 노력합니다.(*2)
이 기사에서는 jackson 라이브러리를 클라이언트 객체에 매핑하는 방법의 예로 Jackson 라이브러리를 사용하여 샘플 Java REST 클라이언트를 소개합니다.

(*1) 무료 슬롯.5.5.2는 유니 코드 확장 영역의 문자에 일부 규칙 연산자를 사용할 때 올바른 결과를 반환하지 않습니다.
예 : 규칙 연산자 "크기"를 사용하면 대상 문자열에 대리 쌍이 포함 된 경우 한 문자는 두 문자로 계산됩니다.
대리 쌍을 사용하려면 대리 쌍을 지원하는 확장 연산자를 만들어서 그렇게 할 수 있습니다.

(*2) 무료 슬롯은 SOAP의 서비스 사양 인 WSDL을 만들 수 있으므로 기능을 사용하여 다양한 라이브러리/프레임 워크/애플리케이션의 WSDL을로드하여 통신을 단순화 할 수 있습니다. 반면, 무료 슬롯은 REST 또는 JSON 서비스 사양 (예 : "WADL"또는 "JSON Schema")을 생성하는 기능이 없으므로 다양한 라이브러리/프레임 워크/애플리케이션에서 통신을 통합하여 커뮤니케이션을 단순화하는 기능을 사용할 수 없습니다. 우리는 또한 이것을 설정하는 방법을 설명 할 것입니다.

규칙 구현

[기사 쓰기 환경]
코르티콘 5.5.2.7
Oracle JDK 1.7
잭슨 1.9
아파치 httpclient 4.5

먼저 무료 슬롯 Studio 에서이 기사에서 사용 된 샘플 규칙을 만듭니다.

■ 어휘 (Ecore)

이 기사에 사용 된 어휘 (Ecore)는 다음과 같습니다.

엔티티 이름 XML 요소 이름
부모 부모
속성 이름 XML 요소 이름 타입
String svalue String
정수 ivalue 정수
날짜 dvalue 날짜
관련 이름 XML 요소 이름 추기경, 관련 방향
Child 어린이 1-*, 부모- 자녀

엔티티 이름 XML 요소 이름
Child 어린이
속성 이름 XML 요소 이름 타입
String svalue String
정수 ivalue 정수
날짜 dvalue 날짜

<코르티콘 스튜디오에서보기

이미지 2

이 어휘 (Ecore)는 휴식의 작동을 점검하는 추상적 인 방법이며 의미가 없습니다.
주목할만한 기능은 알파벳이 모든 항목의 XML 요소 이름으로 설정되어 있다는 것입니다.
이 설정에 정의 된 XML 요소 이름은 SOAP XML을 보내거나받을 때 XML의 요소 이름으로 적용되지만 REST JSON을 보내거나받을 때 JSON의 요소 이름으로도 적용됩니다.
무료 슬롯은 JSON 요소 이름을 일본어로 정의 할 수 있지만 일반적인 휴식 서비스와 휴식 고객은 종종 영숫자 만 포함되므로 여기에도 모두 여기에 설정됩니다.

■ 규칙 시트 (ers) 및 ruleflows (erf)

나는 다음 세 가지 규칙 시트를 만들었습니다 :

이미지 3

이미지 4

이미지 5

이 세 가지 규칙은 휴식 작업을 확인하기위한 추상적이며 의미가 없습니다.
이 3 개의 룰 시트 (ERS)를 사용하여 규칙 흐름 (ERF)을 작성하여 무료 슬롯 Server의 의사 결정 서비스로 배포하십시오.
의사 결정 서비스 이름은 "jsontest"여야합니다.
의사 결정 서비스 이름이 일본어로 작성된 경우 휴식에 사용할 수 없습니다.

■ 규칙 테스트 (ERT)

무료 슬롯 Studio의 테스트 기능을 사용하면 JSON 페이로드의 구조를 휴식 중입니다.
예를 들어 다음과 같은 규칙 테스트 (ERT)를 만듭니다.

이미지 6

Coricon Studio 메뉴 "규칙 테스트" - "테스트 시트" - "데이터"입력 " -"JSON의 내보내기 요청 "은 다음 JSON을 제공합니다.
무료 슬롯 서버로 전송 된 JSON도 동일한 구조이어야하므로 REST 클라이언트를위한 프로그램을 구현할 때 유용합니다.

"개체": [

Coricon Studio 메뉴 "규칙 테스트" - "테스트 시트" - "데이터"출력 - "JSON의 내보내기 응답"은 다음 JSON을 제공합니다.
기본적으로 입력 JSON과 동일한 구조를 가지고 있지만 규칙 메시지의 항목 출력이 추가되었습니다.
무료 슬롯 Server에서 반환 된 JSON은 동일한 구조를 가지므로 REST 클라이언트를위한 프로그램을 구현할 때 유용합니다.


REST CLIEND 만들기 (Java, Jackson)

이 기사는 Jackson 1.9를 JSON을 Java 객체로 매핑하고 변환하기위한 라이브러리로 사용합니다.
또한 Apache Httpclient 4.5는 HTTP 커뮤니케이션을위한 라이브러리로 사용됩니다.
https : //wiki.fasterxml.com/jacksonhome
https : //hc.apache.org/index.html

다른 언어 또는 기타 프레임 워크/라이브러리를 사용하는 경우 각 프레임 워크/라이브러리의 방법을 따르십시오.
동일한 개념을 사용하여 구현할 수 있습니다.

■ JSON 매핑 클래스

위에서 언급 한 무료 슬롯 Studio 테스트 시트에서 생성 된 입력/출력 JSON 데이터에 대한 참조는 JSON 데이터에 맵핑하는 데 필요한 POJO 클래스를 생성합니다.
먼저, 다음 일반 및 기본 클래스를 만듭니다 : Payload.java, message.java, message.java, __metadata.java :

<payload.java

패키지 SampleVocabulary;부모;getparents ()_parents)

<messages.java

패키지 SampleVocabulary;메시지;getMessage ()_message)

<message.java

패키지 SampleVocabulary;

<__ metadata.java

패키지 SampleVocabulary;

무료 슬롯 Studio Rules Test에서 생성 된 JSON과 비교하여 JSON의 각 클래스와 메소드가 어떤 항목에 해당하는지 확인할 수 있습니다.
또한 각 클래스는 Jackson 특정 주석을 사용하여 필요한 설정을 설정합니다. 특히 JSON 데이터 이름과 멤버 변수 이름이 다른 경우 "@jsonProperty"설정으로 매핑을 수행해야합니다.
이 클래스는 무료 슬롯 Server JSON Payload의 일반적이고 기본적인 부분이므로 다른 의사 결정 서비스를 사용하더라도 동일한 클래스를 재사용 할 수 있습니다. 또한 어휘 나 규칙이 변경 되더라도 이러한 수업을 수정할 필요는 없습니다.

다음, 어휘 클래스를 만듭니다. JSON의 어휘 (Ecore) 구조에 의존하는 위치를 매핑하기위한 클래스.
이것은 다음 부모가 될 것입니다. Java와 child.java.

<부모 .java

패키지 SampleVocabulary;

<child.java

패키지 SampleVocabulary;

이 어휘 클래스는 무료 슬롯 Studio에서 만든 어휘 (Ecore)와 동일한 구조를 갖도록 만들어졌습니다. Ecore 테이블과 비교하여 확인하십시오.
이 어휘 클래스의 구조는 SOAP 스터브에서 동일한 이름의 클래스와 거의 동일하며, 이는 Axis2 및 기타 수단을 사용하여 WSDL에서 자동으로 생성되었습니다.
비누 스텁의 차이는 잭슨 특정 주석이 추가되고 __metadata 멤버가 클래스에 추가된다는 것입니다.
대상 의사 결정 서비스를 업데이트 할 때 룰 시트 (ERS, ERF)의 내용 만 변경하는 경우 이러한 어휘 클래스를 수정할 필요가 없습니다.
대상 의사 결정 서비스의 어휘 (Ecore)가 변경되면 이러한 어휘 클래스도 수정해야합니다.

■ 휴식 클라이언트 메인 프로그램

마지막으로 나머지 클라이언트를위한 메인 프로그램 ExecuterestMain.java를 만듭니다. 절차는 다음과 같습니다.

1. 요청 객체를 생성합니다.
2. JSON을 요청하기위한 요청 객체를 연결합니다.
3. 적절한 HTTP를 설정하십시오.
4. 포스트 요청 JSON은 무료 슬롯 Server에 JSON을 요청합니다.
5. 무료 슬롯 Server의 응답 JSON.
6. 응답 json을 응답 객체로 변환합니다.

요청 객체, 응답 객체를 생성하고 JSON으로 변환하려면 JSON 매핑 클래스와 Jackson Mapper를 사용하여 위에서 언급했습니다.

<executerestmain.java

패키지 executerest;ListParent = New ArrayList();

포인트는 프로그램과 의견으로 작성되었지만 다음과 같습니다.

● 프로그램 자체의 문자 코드를 UTF-8로 설정하십시오.

● HTTP 요청 설정과 관련하여
► 무료 슬롯 Server URL을 적절하게 다시 작성하십시오.
► 헤더에 지정된 의사 결정 서비스 이름은 영숫자이어야합니다.
► JSON의 문자 코드를 무료 슬롯 서버에서 UTF-8로 전송 및 수신하도록 설정하십시오.
► httpclient의 상세한 로그 출력은 디버깅에 효과적입니다.
► 전송 및 수신 된 JSON 문자열을 출력하는 것도 디버깅 할 때 효과적입니다.

● 의사 결정 서비스에 입력 값
► 여기서 "CreateSamplePayLoad ()"를 사용하여 하드 코드.
► 문자열 섹션에는 유니 코드 확장 영역의 예로서 어려운 Kanji와 Emoji가 포함됩니다.
► 첫 번째 이모티콘은 웃는 이모티콘에 직접 입력하고 두 번째 이모티콘은 자동차 이모티콘을 지정하는 대리 쌍입니다.
► 첫 번째 칸지 캐릭터는 "시카루"(입안 7)에 직접 입력해야하며, 두 번째 살로 게이트 쌍은 "Hokke"(Flower on Fish)를 지정하는 데 사용해야합니다.
   .

● 날짜 형식에 관한
►이 프로그램은 모두 "YYYY-MM-DD"형식으로 통일되었으며, 이는 비누와 휴식에 가장 일반적으로 사용됩니다.
► Corticon Server 자체는 다른 날짜 형식도 허용합니다. 설정에서 변경할 수도 있습니다.

● 의사 결정 서비스 실행 결과
► 여기에서 "outputpayload ()"를 사용하여 UTF-8 텍스트 파일로 출력합니다.

메인 프로그램을 실행하고 웹 브라우저 등에 출력 텍스트 ( "c : /temp/executerest.log")를 표시하면 다음이 표시됩니다.
상단 6 줄은 요청 객체의 내용이며 하단은 응답 오브젝트의 내용입니다. 입력 및 출력 값 및 규칙 메시지가 예상대로 출력인지 확인할 수 있습니다.

<메인 실행 결과

이미지 7

다운로드 닫기

닫기

[Thu, 2 월 16 일]

"Progress 무료 슬롯"실무 세미나

진행을 시각화하고 자동화를 촉진하는