290.2. 必要な SAP ライブラリーのインストール
290.2.1. Fuse OSGi コンテナーへのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
以下のように、SAP JCo ライブラリーと SAP IDoc ライブラリーを JBoss Fuse OSGi コンテナーにインストールできます。
SAP サービスマーケットプレイス (http://service.sap.com/public/connectors) から SAP JCo ライブラリーと SAP IDoc ライブラリーをダウンロードし、オペレーティングシステムに適したバージョンのライブラリーを選択してください。
注記これらのライブラリーをダウンロードして使用するには、SAP Service Marketplace アカウント が必要です。
-
sapjco3.jar、libsapjco3.so(または Windows ではsapjco3.dll)、および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リストが適切に続くように、新しいエントリーの前の各行の終わりにコンマとバックスラッシュ、
\を含めることを忘れないでください。- これらの変更を有効にするには、コンテナーを再起動する必要があります。
コンテナーに
camel-sap機能をインストールします。Karaf コンソールで、次のコマンドを入力します。JBossFuse:karaf@root> features:install camel-sap
290.2.2. JBoss EAP コンテナーへのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
SAP コンポーネントを JBoss EAP コンテナーにデプロイするには、以下の手順を実行します。
SAP サービスマーケットプレイス (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. ライブラリーのダウンロード リンクのコピーリンクがクリップボードにコピーされました!
3 つのライブラリーが必要です。
すべての環境に共通のライブラリー:
-
sapidoc3.jar
-
アーキテクチャー用のライブラリー:
-
sapjco3.jar sapjco3.so詳細は、SAP Java Connector のドキュメント を参照してください。
-
SAP サービスマーケットプレイス (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. ライブラリーの配置 リンクのコピーリンクがクリップボードにコピーされました!
SAP ライブラリーファイルを
pom.xmlに関連するlibディレクトリーにコピーします。Maven を実行する場合は、
pom.xmlの指示に従い、ファイルを指定の場所にコピーします。例: AMD64
src └── lib └── amd64.com.sap.conn ├── idoc │ └── sapidoc3.jar └── jco ├── sapjco3.jar └── sapjco3.so警告SAP ライブラリーファイルをカスタム Maven リポジトリーに追加しないでください。
SAP Java コネクターは、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コマンドの実行時に、相対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>: ターゲットへのアプリケーションの相対パス。例
この例の
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=.これにより、ソースがローカルホストから OpenShift に送信され、maven ビルドが実行されます。
アプリケーションの起動
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警告SAP ライブラリーファイルをカスタム Maven リポジトリーに追加しないでください。
SAP Java コネクターは、JAR ファイルの名前
sapjco3.jarおよびsapidoc3.jarの検証を実行します。JAR ファイルを Maven リポジトリーにコピーする場合、
spring-boot-maven-pluginはバージョン番号を追加して名前を変更します。これにより検証が失敗し、アプリケーションが適切にデプロイされなくなります。
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>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