290.2. 安装所需的 SAP Libraries
290.2.1. 在 Fuse OSGi 容器中部署 复制链接链接已复制到粘贴板!
您可以将 SAP JCo 库和 SAP IDoc 库安装到 JBoss Fuse OSGi 容器中,如下所示:
从 SAP Service Marketplace 下载 SAP JCo 库和 SAP IDoc 库,确保为您的操作系统选择适当的库版本。http://service.sap.com/public/connectorshttp://service.sap.com/public/connectors
注意您必须有一个 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设置中,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 不要忘记在新条目前面的每行的末尾包含一个逗号和反斜杠
\,以便正确执行列表。- 重启容器以使这些更改生效。
在容器中安装
camel-sap功能。在 Karaf 控制台中输入以下命令:JBossFuse:karaf@root> features:install camel-sap
JBossFuse:karaf@root> features:install camel-sapCopy to Clipboard Copied! Toggle word wrap Toggle overflow
290.2.2. 在 JBoss EAP 容器中部署 复制链接链接已复制到粘贴板!
要在 JBoss EAP 容器中部署 SAP 组件,请执行以下步骤:
从 SAP Service Marketplace 下载 SAP JCo 库和 SAP IDoc 库,确保为您的操作系统选择适当的库版本。http://service.sap.com/public/connectorshttp://service.sap.com/public/connectors
注意您必须有一个 SAP Service Marketplace 帐户 才能下载和使用这些库。
将 JCo 库文件和 IDoc 库文件复制到 JBoss EAP 安装的子目录中。
重要例如,如果您的主机平台是 64 位 Linux (
linux-x86_64),请按如下所示安装库文件:Example
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/
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/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
$JBOSS_HOME/modules/system/layers/fuse/org/wildfly/camel/extras/main/module.xml的新文件,并添加以下内容 :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要使用 maven-resources 和 maven-jar 插件使用 Maven 部署 SAP,请按照以下步骤操作:
- 下载库
- 添加依赖项
- 将库放在项目中
- 为库添加配置
- 部署到 OpenShift
290.2.3.1. 下载库 复制链接链接已复制到粘贴板!
您需要三个库:
所有环境的通用库:
-
sapidoc3.jar
-
架构库:
-
sapjco3.jar sapjco3.so如需更多信息,请参阅 SAP Java Connector 文档。
-
从 SAP Service Marketplace 下载 SAP JCo 库和 SAP IDoc 库,确保为您的操作系统选择适当的库版本。http://service.sap.com/public/connectorshttp://service.sap.com/public/connectors
注意您必须有一个 SAP Service Marketplace 帐户 才能下载和使用这些库。
290.2.3.2. 添加依赖项 复制链接链接已复制到粘贴板!
- Maven 用户需要把以下依赖项添加到其 pom.xml 文件中,才能使用此组件:
290.2.3.3. 放置库 复制链接链接已复制到粘贴板!
将 SAP 库文件复制到相对于
pom.xml的lib目录中运行 Maven 时,它会遵循
pom.xml中的指令,并将文件复制到指定的位置。示例:AMD64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告不要将 SAP 库文件添加到自定义 Maven 存储库中
SAP Java Connector 对 JAR 文件
sapjco3.jar和sapidoc3.jar的名称执行验证。如果您将 JAR 文件复制到 Maven 存储库,
spring-boot-maven-plugin将通过附加版本号来重命名它们。这会导致验证失败,从而导致应用程序正确部署。
290.2.3.4. 配置插件 复制链接链接已复制到粘贴板!
将 maven 配置添加到
pom.xml中,在spring-boot-maven-plugin下:添加
maven-jar-plugin,并将Class-Path条目设置为 lib 文件夹位置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会为必要的工件创建正确的结构,并使 SAP 库部署到所需的目标目录中。
使用
pom.xml中的maven-resources-plugin来复制库Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会在
运行 'oc 命令时将相对。lib中的库目录复制到 target/lib
290.2.3.5. 部署到 Openshift 复制链接链接已复制到粘贴板!
完成以下步骤以部署到 OpenShift,并触发 Maven 构建。
运行
oc以创建并配置构建:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据需要替换值:
-
<current_Fuse_Java_OpenShift_Imagestream_version> : 当前镜像流。 -
<APPLICATION_NAME> :您选择的应用程序名称。 -
<additional_args> : 附加到 maven 的参数。 <relative_path_of_target_directory> : path of app to target。Example
在本例中,使用
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 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"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
启动构建(从多模块父目录)
oc start-build sapik6 --from-dir=.
oc start-build sapik6 --from-dir=.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会将本地主机源发送到运行 maven 构建的 OpenShift。
启动应用程序
oc new-app --image-stream=<name>:<version>
oc new-app --image-stream=<name>:<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
oc new-app --image-stream=sapik6:latest
oc new-app --image-stream=sapik6:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow
要使用 openshift-maven-plugin 插件在项目中部署 SAP,请按照以下步骤操作: https://www.eclipse.org/jkube/
将连接器放在项目的
lib目录中:示例:AMD64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告不要将 SAP 库文件添加到自定义 Maven 存储库中
SAP Java Connector 对 JAR 文件
sapjco3.jar和sapidoc3.jar的名称执行验证。如果您将 JAR 文件复制到 Maven 存储库,
spring-boot-maven-plugin将通过附加版本号来重命名它们。这会导致验证失败,从而导致应用程序正确部署。
从
pom.xml中的初学者中排除嵌入的连接器:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
pom.xml中将本地连接器定义为静态资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置资源和部署配置,在
pom.xml中指定连接器路径:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
290.2.4.1. 在 Openshift 上部署 复制链接链接已复制到粘贴板!
在 pom.xml 中配置了 openshift-maven-plugin 后,您可以将 fuse spring-boot 镜像导入到特定命名空间中,作为我们的应用程序的构建器镜像。
在应用程序路径中启动:
cd <sap_application_path>
cd <sap_application_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建项目流:
oc new-project streams
oc new-project streamsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 导入镜像流:
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 import-image streams/fuse7-java-openshift:1.11 --from=registry.redhat.io/fuse7/fuse-java-openshift-rhel8:1.11-32 --confirm -n streams (JDK8)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建项目
oc new-project <your_project>
oc new-project <your_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 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
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=istagCopy to Clipboard Copied! Toggle word wrap Toggle overflow