springboot项目接入sap与部署到docker遇到的问题有哪些
本篇文章为大家展示了springboot项目接入sap与部署到docker遇到的问题有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
成都创新互联专注于企业成都全网营销推广、网站重做改版、靖远网站定制设计、自适应品牌网站建设、H5场景定制、商城网站定制开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为靖远等各大城市提供网站开发制作服务。
前言
主要记录在协助部署接入sap遇到的问题,且只记录解决问题的答案,不说明原理。
问题实录
1、问题一:Illegal JCo archive "sapjco-1.0.jar". It is not allowed to rename or repackage the original archive "sapjco3.jar"
解决方案一:手动项目中将sapjco-1.0.jar重名为sapjco3.jar
不过我们没采用这种方案
解决方案二:指定maven的scope为system,形如下
com.sap sapjco ${sap.version} system ${project.basedir}/lib/sapjco3.jar
然后指定resources,形如下
org.springframework.boot spring-boot-maven-plugin ${spring-boot.version} repackage maven-compiler-plugin 1.8 UTF-8 ${project.basedir}/lib ${project.basedir}/lib BOOT-INF/lib/ **/*.jar ${project.basedir}/lib BOOT-INF **/*.so **/*.dll src/main/resources **/*.yml **/*.xml
这个的作用是将sapjco3.jar打进BOOT-INF/lib/
问题二:java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
因为项目是部署到docker里面去,因此本文只写基于docker的解决方案
解决方案如下:
在dockerFile里面指定LD_LIBRARY_PATH环境变量,形如下
FROM adoptopenjdk/openjdk8 VOLUME /tmp #ENV JAVA_OPTS="-Dcom.sun.management.jmxremote.port=39083 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" ENV JAVA_OPTS="" ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH COPY localtime /etc/localtime RUN echo "Asia/Shanghai" > /etc/timezone COPY hello-biz/target/hello-biz-*.jar app.jar COPY hello-biz/lib/libsapjco3.so /usr/local/lib/libsapjco3.so ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
上述内容就是springboot项目接入sap与部署到docker遇到的问题有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
本文标题:springboot项目接入sap与部署到docker遇到的问题有哪些
转载来于:http://scyanting.com/article/jichpi.html