290.2. 필요한 SAP 라이브러리 설치
290.2.1. Fuse OSGi 컨테이너에 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음과 같이 SAP JCo 라이브러리 및 SAP IDoc 라이브러리를 JBoss Fuse OSGi 컨테이너에 설치할 수 있습니다.
SAP Service Marketplace(http://service.sap.com/public/connectors)에서 SAP JCo 라이브러리 및 SAP IDoc 라이브러리를 다운로드하여 운영 체제에 적합한 라이브러리 버전을 선택해야 합니다.
참고이러한 라이브러리를 다운로드하고 사용하려면 SAP Service Marketplace 계정이 있어야 합니다.
-
sapjco3.jar,libsapjco3.so(또는 Windows에서sapjco3.traffic) 및sapidoc3.jar라이브러리 파일을 Fuse 설치의lib/디렉터리에 복사합니다. 텍스트 편집기에서 구성 속성 파일
etc/config.properties및 사용자 지정 속성 파일etc/custom.properties를 모두 엽니다.etc/config.properties파일에서org.osgi.framework.system.packages.extra속성을 찾아서 전체 속성 설정을 복사합니다(이 설정은 줄 연속을 나타내는 데 사용되는 백슬래시 문자\를 사용하여 여러 행에 걸쳐 확장됨). 이제 이 설정을etc/custom.properties파일에 붙여넣습니다.이제 SAP 라이브러리를 지원하는 데 필요한 추가 패키지를 추가할 수 있습니다.
etc/custom.properties파일에서 다음과 같이org.osgi.framework.system.packages.extra설정에 필요한 패키지를 추가합니다.org.osgi.framework.system.packages.extra \ ... , \ com.sap.conn.idoc, \ com.sap.conn.idoc.jco, \ com.sap.conn.jco, \ com.sap.conn.jco.ext, \ com.sap.conn.jco.monitor, \ com.sap.conn.jco.rt, \ com.sap.conn.jco.server새 항목 앞의 각 줄 끝에 쉼표와 백슬래시와 백슬래시를 포함해야 합니다.Do not forget to include a comma and a backslash,
, \, at the end of each line preceding the new entries, so that the list is properly continues.- 이러한 변경 사항을 적용하려면 컨테이너를 다시 시작합니다.
컨테이너에
camel-sap기능을 설치합니다. Karaf 콘솔에 다음 명령을 입력합니다.JBossFuse:karaf@root> features:install camel-sap
290.2.2. JBoss EAP 컨테이너에서 배포 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 컨테이너에 SAP 구성 요소를 배포하려면 다음 단계를 수행합니다.
SAP Service Marketplace(http://service.sap.com/public/connectors)에서 SAP JCo 라이브러리 및 SAP IDoc 라이브러리를 다운로드하여 운영 체제에 적합한 라이브러리 버전을 선택해야 합니다.
참고이러한 라이브러리를 다운로드하고 사용하려면 SAP Service Marketplace 계정이 있어야 합니다.
JCo 라이브러리 파일과 IDoc 라이브러리 파일을 JBoss EAP 설치의 하위 디렉터리에 복사합니다.
중요이름 지정 규칙을 따릅니다.
네이티브 라이브러리는 <
osname>-<cpuname> 형식으로 이름 지정 표준을 따르는 하위 디렉터리에 설치해야 합니다.JBoss Modules 설명서에서 허용되는 이름 및 전체 이름 목록을 확인할 수 있습니다.
예를 들어 호스트 플랫폼이 64비트 Linux(
linux-x86_64)인경우 다음과 같이 라이브러리 파일을 설치합니다.예
cp sapjco3.jar sapidoc3.jar $JBOSS_HOME/modules/system/layers/fuse/com/sap/conn/jco/main/ mkdir -p $JBOSS_HOME/modules/system/layers/fuse/com/sap/conn/jco/main/lib/linux-x86_64 cp libsapjco3.so $JBOSS_HOME/modules/system/layers/fuse/com/sap/conn/jco/main/lib/linux-x86_64/$JBOSS_HOME/modules/system/layers/fuse/org/wildfly/camel/extras/main/module.xml이라는 새 파일을 생성하고 다음 내용을 추가합니다.<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="org.wildfly.camel.extras"> <dependencies> <module name="org.fusesource.camel.component.sap" export="true" services="export" /> </dependencies> </module>
290.2.3. Spring Boot 및 OpenShift Container Platform 배포 링크 복사링크가 클립보드에 복사되었습니다!
maven-resources 및 maven-jar 플러그인을 사용하여 Maven으로 프로젝트에 SAP를 배포하려면 다음 단계를 따르십시오.
- 라이브러리 다운로드
- 종속 항목 추가
- 프로젝트에 라이브러리 배치
- 라이브러리 구성 추가
- OpenShift에 배포
290.2.3.1. 라이브러리 다운로드 링크 복사링크가 클립보드에 복사되었습니다!
세 개의 라이브러리가 필요합니다.
모든 환경에 대한 공통 라이브러리:
-
sapidoc3.jar
-
아키텍처용 라이브러리:
-
sapjco3.jar sapjco3.so자세한 내용은 SAP Java Connector 설명서를 참조하십시오.
-
SAP Service Marketplace(http://service.sap.com/public/connectors)에서 SAP JCo 라이브러리 및 SAP IDoc 라이브러리를 다운로드하여 운영 체제에 적합한 라이브러리 버전을 선택해야 합니다.
참고이러한 라이브러리를 다운로드하고 사용하려면 SAP Service Marketplace 계정이 있어야 합니다.
290.2.3.2. 종속 항목 추가 링크 복사링크가 클립보드에 복사되었습니다!
- Maven 사용자는 이 구성 요소를 사용하려면 pom.xml 파일에 다음 종속성을 추가해야 합니다.
<dependency>
<groupId>org.fusesource</groupId>
<artifactId>camel-sap-starter</artifactId>
<exclusions>
<exclusion>
<groupId>com.sap.conn.idoc</groupId>
<artifactId>sapidoc3</artifactId>
</exclusion>
<exclusion>
<groupId>com.sap.conn.jco</groupId>
<artifactId>sapjco3</artifactId>
</exclusion>
</exclusions>
</dependency>
290.2.3.3. 라이브러리 배치 링크 복사링크가 클립보드에 복사되었습니다!
pom.xml에 상대적인lib디렉토리에 SAP 라이브러리 파일을 복사Maven을 실행하면
pom.xml의 지침을 따르고 파일을 지정된 위치에 복사합니다.예: AMD64
src └── lib └── amd64.com.sap.conn ├── idoc │ └── sapidoc3.jar └── jco ├── sapjco3.jar └── sapjco3.so주의사용자 지정 Maven 리포지토리에 SAP 라이브러리 파일을 추가하지 마십시오.
SAP Java Connector는 JAR 파일
sapjco3.jar및sapidoc3.jar의 이름에 대한 검증을 수행합니다.JAR 파일을 Maven 리포지토리에 복사하는 경우
spring-boot-maven-plugin은 버전 번호를 추가하여 이름을 바꿉니다.이로 인해 검증이 실패하여 애플리케이션이 올바르게 배포되지 않습니다.
290.2.3.4. 플러그인 구성 링크 복사링크가 클립보드에 복사되었습니다!
spring-boot-maven-plugin아래에pom.xml에 maven 구성을 추가합니다.maven-jar-plugin을 추가하고Class-Path항목을 lib 폴더 위치로 설정합니다.<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifestEntries> <Class-Path>lib/${os.arch}/sapjco3.jar lib/${os.arch}/sapidoc3.jar</Class-Path> </manifestEntries> </archive> </configuration> </plugin>이렇게 하면 필요한 아티팩트에 대한 올바른 구조가 생성되고 SAP 라이브러리가 필요한 대상 디렉터리에 배포됩니다.
pom.xml에서maven-resources-plugin을 사용하여 라이브러리를 복사<plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources01</id> <phase>process-classes</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/lib</outputDirectory> <encoding>UTF-8</encoding> <resources> <resource> <directory>${basedir}/lib</directory> <includes> <include>**/**</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin>'oc 명령을 실행할 때 라이브러리 디렉터리가 relative로 복사됩니다.lib에서 target/lib
290.2.3.5. Openshift에 배포 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift에 배포하려면 다음 단계를 완료하고 Maven 빌드를 트리거합니다.
oc를 실행하여 빌드를 생성하고 구성합니다.oc new-build --binary=true --image-stream="<current_Fuse_Java_OpenShift_Imagestream_version>" --name=<application_name> -e "ARTIFACT_COPY_ARGS=-a ." -e "MAVEN_ARGS_APPEND=<additional_args> -e "ARTIFACT_DIR=<relative_path_of_target_directory>"필요에 따라 값을 변경합니다.
-
<current_Fuse_Java_OpenShift_Imagestream_version> : 현재 이미지 스트림입니다. -
<application_name> : 선택한 애플리케이션 이름입니다. -
<additional_args> : maven에 추가할 인수입니다. <relative_path_of_target_directory> : 대상으로 할 app의 상대 경로입니다.예
이 예에서
MAVEN_ARGS_APPEND는 spring-boot 디렉터리에 특정 프로젝트만 빌드하는 데 사용됩니다.oc new-build --binary=true --image-stream="fuse7-java-openshift:1.4" --name=sapik6 -e "ARTIFACT_COPY_ARGS=-a ." -e "MAVEN_ARGS_APPEND=-pl spring-boot/sap-srfc-destination-spring-boot" -e "ARTIFACT_DIR=spring-boot/sap-srfc-destination-spring-boot/target"
-
멀티모듈 상위 디렉터리에서 빌드를 시작합니다.
oc start-build sapik6 --from-dir=.그러면 maven 빌드가 실행되는 로컬 호스트의 소스를 OpenShift로 보냅니다.
앱 시작
oc new-app --image-stream=<name>:<version>예
oc new-app --image-stream=sapik6:latest
290.2.4. JKube를 사용하여 Spring Boot 및 OpenShift Container Platform에 배포 링크 복사링크가 클립보드에 복사되었습니다!
openshift-maven-plugin 플러그인을 사용하여 JKube 로 프로젝트에 SAP를 배포하려면 다음 단계를 따르십시오.
프로젝트의
lib디렉터리에 커넥터를 배치합니다.예: AMD64
src └── lib └── amd64.com.sap.conn ├── idoc │ └── sapidoc3.jar └── jco ├── sapjco3.jar └── sapjco3.so주의사용자 지정 Maven 리포지토리에 SAP 라이브러리 파일을 추가하지 마십시오.
SAP Java Connector는 JAR 파일
sapjco3.jar및sapidoc3.jar의 이름에 대한 검증을 수행합니다.JAR 파일을 Maven 리포지토리에 복사하는 경우
spring-boot-maven-plugin은 버전 번호를 추가하여 이름을 바꿉니다.이로 인해 검증이 실패하여 애플리케이션이 올바르게 배포되지 않습니다.
pom.xml: starter에서 포함된 커넥터를 제외합니다.<dependency> <groupId>org.fusesource</groupId> <artifactId>camel-sap-starter</artifactId> <exclusions> <exclusion> <groupId>com.sap.conn.idoc</groupId> <artifactId>sapidoc3</artifactId> </exclusion> <exclusion> <groupId>com.sap.conn.jco</groupId> <artifactId>sapjco3</artifactId> </exclusion> </exclusions> </dependency>pom.xml에서 로컬 커넥터를 정적 리소스로 정의합니다.<resources> <resource> <directory>src/lib/${os.arch}/com/sap/conn/idoc</directory> <targetPath>BOOT-INF/lib</targetPath> <includes> <include>*.jar</include> </includes> </resource> <resource> <directory>src/lib/${os.arch}/com/sap/conn/jco</directory> <targetPath>BOOT-INF/lib</targetPath> <includes> <include>*.jar</include> </includes> </resource> </resources>pom.xml:에 커넥터 경로를 지정하여 리소스 및 배포 구성을 구성합니다.<plugin> <groupId>org.eclipse.jkube</groupId> <artifactId>openshift-maven-plugin</artifactId> <version>1.4.0</version> <configuration> <images> <image> <name>${project.artifactId}:${project.version}</name> <build> <from>${java.docker.image}</from> <assembly> <targetDir>/deployments</targetDir> <layers> <layer> <id>static-files</id> <fileSets> <fileSet> <directory>src/lib/${os.arch}/com/sap/conn/jco</directory> <outputDirectory>static</outputDirectory> <includes> <include>*.so</include> </includes> </fileSet> </fileSets> </layer> </layers> </assembly> </build> </image> </images> </configuration> <executions> <execution> <goals> <goal>resource</goal> <goal>build</goal> <goal>apply</goal> </goals> </execution> </executions> </plugin>
290.2.4.1. Openshift에 배포 링크 복사링크가 클립보드에 복사되었습니다!
openshift-maven-plugin 이 pom.xml 에 구성되면 애플리케이션의 빌더 이미지로 fuse spring-boot 이미지를 특정 네임스페이스로 가져올 수 있습니다.
애플리케이션 경로에서 시작합니다.
cd <sap_application_path>프로젝트 스트림을 생성합니다.
oc new-project streams이미지 스트림을 가져옵니다.
oc import-image streams/fuse7-java-openshift:1.11 --from=registry.redhat.io/fuse7/fuse-java-openshift-rhel8:1.11-32 --confirm -n streams (JDK8)프로젝트 생성
oc new-project <your_project>maven로 애플리케이션을 배포합니다.
mvn clean oc:deploy -Djkube.docker.imagePullPolicy=Always -Popenshift -Djkube.generator.from=streams/fuse7-java-openshift:1.11 -Djkube.resourceDir=./src/main/jkube -Djkube.openshiftManifest=target/classes/META-INF/jkube/openshift.yml -Djkube.generator.fromMode=istag