weblogic buildpack简介

weblogic buildpack是支持oracle weblogic应用服务器的容器,是从java-buildpack fork出来,并把默认容器从tomcat改成了weblogic。

功能特性

由于weblogic是部署在CF上,部分weblogic本身特性将不支持

  1. 默认创建一个以应用名称开头的域(domain),也可以在应用包配置中指定;
  2. 通过域名配置可以支持数据源(datasource)和JMS,可以使用non-XA JDBC datasource,并存储Transaction Logs;
  3. 可以配置不支持EJB,JMS,以限制内存,当然也可以全部支持;
  4. 支持标准的域配置,可以被应用或者buildpack中的配置覆盖;
  5. 伸缩是通过CF的scale接口,而不是增加域中托管的服务器;
  6. 支持WAR和EAR(多个war/jar打成的Enterprise Archive);
  7. 可以暴露Web管理控制台(WebLogic Admin Console);
  8. 绑定到应用的数据源(JDBC Datasources)可以动态创建;
  9. 有将补丁、依赖jar包、驱动打包到server的classpath;
  10. CF监控和重启,不在依赖 WebLogic Node Manager;
  11. 可以打包不同的配置到不同的部署环境,可以控制域(domain)配置,可以随时重建域(domain);

详细参考:https://github.com/pivotal-cf/weblogic-buildpack/blob/master/docs/container-wls.md#features

限制

  1. CF Release版本要大于v185,才能设定cc nginx参数:client_max_body_size;
  2. 只支持HTTTP,不支持RMI,weblogic server instance直接不能通信;
  3. 只支持无状态的应用,应用扩展或者重启是新生成了一个容器,因此文件系统也是临时的,因此:Transaction recovery不支持,文件存储的消息持久化不支持,WebLogic LLR不支持,WebLogic Admin Console的修改不能保存,日志是临时的(当然可以通过cf输出);
  4. 不支持security aspects;
  5. 只支持基本的域(domain),不支持OA Suite, Web Center,IDM;

详细参考:https://github.com/pivotal-cf/weblogic-buildpack/blob/master/docs/container-wls.md#limitations-as-of-april-2014

Weblogic容器探测

  1. 是否有WEB-INF/目录;
  2. 或APP-INF/目录;
  3. 或在app,WEB-INF,APP-INF目录下有.wls/;
  4. 或有部署描述文件:weblogic*.xml
  5. 并且Java Main没有;

buildpack配置

config/weblogic.yml的几项配置

weblogic.repository_root:weblogic安装包仓库URL地址;

weblogic.version:Weblogic版本;

prefer_app_config:使用应用包的配置创建域;

start_in_wlx_mode:启动为受限模式,即:只是作为Servlet容器,不支持JMS, EJB等J2EE特性;

prefer_root_web_context:允许web应用使用root(/)context;

配置变更

CC配置

cc的nginx,client_max_body_size最少要大于750M,如果是全安装则需要1G以上,不然上传buildpack会失败;

应用配置

应用配置都放在.wls目录下,配置包括:域名(domain),JDBC DataSource,JMS,安全,前置jar包和后置jar包,参考应用包:

使用根目录作为默认目录,需要新建一个工程可以叫做index,然后在在WEB-INF目录下面新建一个weblogic.xml,内容是:

 



/

push应用

启动参数

需要制定内存至少为1G,启动超时:100

实际情况是:指定了1.5g才正常运行

$ cf push wlsSampleApp -m 1536M -p wlsSampleApp.war -t 100

访问web控制台

域名加/console路径

例如:

http://hwl.cf-lite.io/console/login/LoginForm.jsp

默认用户名,密码:weblogic/welcome1

JVM参数设置

可以设置应用的环境变量JAVA_OPTS

$ cf se test-app JAVA_OPTS '-verbose:gc -Djava.net.preferIPv4=true -Dmy.application.name=test-app' Setting env variable 'JAVA_OPTS' to '-verbose:gc -Djava.net.preferIPv4=true -Dmy.application.name=test-app' for app test-app in org sabha / space sabha as admin... OK TIP: Use 'cf push' to ensure your env variable changes take effect

注意:这里不需要设置最大内存(-Xmx)和初始化内存(-Xms),preStart.sh脚本会根据push应用的-m参数自动调整

排错

设置应用的环境变量JBP_LOG_LEVEL

cf set-env test-app JBP_LOG_LEVEL debug
并且restage

你可能感兴趣的:(CloudFoundry,weblogic,buildpack,cloud,foundry)