Netweaver和CloudFoundry是如何运行Web应用的?

  • 时间:
  • 浏览:0
  • 来源:大发快3官方直播—彩神UU快三代理

"JAVA_OPTS="-agentpath:$PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.13.0_RELEASE=printHeapHistogram=1 -Djava.io.tmpdir=$TMPDIR -Djava.ext.dirs=$PWD/.java-buildpack/container_security_provider:$PWD/.java-buildpack/open_jdk_jre/lib/ext -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security $JAVA_OPTS -Daccess.logging.enabled=false -Dhttp.port=$PORT\" && CALCULATED_MEMORY=$($PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-3.13.0_RELEASE -totMemory=$MEMORY_LIMIT -loadedClasses=11021 -poolType=metaspace -stackThreads=260 -vmOptions="$JAVA_OPTS\") && echo JVM Memory Configuration: $CALCULATED_MEMORY && JAVA_OPTS="$JAVA_OPTS $CALCULATED_MEMORY" && MALLOC_ARENA_MAX=2 JAVA_OPTS=$JAVA_OPTS JAVA_HOME=$PWD/.java-buildpack/open_jdk_jre exec $PWD/.java-buildpack/tomcat/bin/catalina.sh run",

一旦buildpack检测到war包中发生WEB-INF,且不发生Java Main(实现了main妙招的Java类),则决定使用Tomcat容器。



实际上从cf push的日志里不能观察到tomcat容器启动参数:

ICM的架构:

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"如果 扫描下面二维码:

The ICM is a component of the SAP NetWeaver Application Server. It is implemented as a separate process, which is started and monitored by the ABAP dispatcher.

The Internet Communication Manager ensures that communication between the SAP System (SAP NetWeaver Application Server) and the outside world via HTTP, HTTPS and SMTP protocols works properly.

主可是下图的Internet Communication Manager(ICM)在起作用。



SAP help:

在Jerry的微信公众号文章SAP Fiori应用的这一 部署妙招里提到SAP Fiori应用以BSP应用的妙招部署在ABAP Front-End Server上。没法 有有哪些BSP应用在运行时为有哪些不能接受和发送HTTP请求呢?

最后一行的$PWD/.java-buildpack/tomcat/bin/catalina.sh run是大家非常熟悉的tomcat启动脚本。

The Tomcat Container allows servlet 2 and 3 web applications to be run. These applications are run as the root web application in a Tomcat container.

即ICM作为沟通的桥梁,确保Netweaver应用服务器和外界不能通过HTTP,HTTPS等协议交互。ICM是Netweaver应用服务器的三个 组件,作为三个 单独的工作应用程序池池,由ABAP dispatcher启动并监控。

假设我本地开发了三个 Java Web应用,中间包含三个 Servlet,部署到CloudFoundry后,该应用怎么运行起来的?

细心观察cf push的日志,好难当事人找出答案。

如果 我的manifest.yml里定义的buildpack为java_buildpack:



这对应了cf push日志里高亮的这一 行:



下载Open JDK JRE和Tomcat instance。



为有哪些会自动下载tomcat?

打开java_buildpac的github仓库:

https://github.com/cloudfoundry/java-buildpack中间提到了因为分析: