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