Java开发人员使用Oracle Weblogic 的10个技巧


Java 开发人员使用 Oracle WebLogic Server 的  10 个技巧 OTN 开发人员日  2  Oracle WebLogic Server  整合的 Oracle 平台基础架构  •  最优秀的 Java EE 应用服务器,针对最为关键任务的应用程序设 计  •  开发人员友好的 — 基于标准的高效开发  •  注重服务质量 — 性能、可扩展性、可靠性、可用性  •  内置易管理性 — 配置、监控、诊断、维护  WebLogic Server 集群  WebLogic 应用网格 数据库 大型机 遗留的 日常的 虚拟化的  WebLogic  独特优势:“非 功能性需求”  2 OTN 开发人员日  3  1 使用 轻量级服务器 OTN 开发人员日  4  轻量级安装  • 尽快安装并配置 WebLogic Server 10.3 实例  • 使用网络安装向导  •  初始下载仅为 39 Mb  •  选择要安装的内容  •  下载并安装组件  • 最小服务器安装 < 179 Mb  •  使用预安装的 JDK < 151 Mb  • ISV 的核心服务器安装程序 < 250 Mb OTN 开发人员日  5  轻量级安装 OTN 开发人员日  6  轻量级、友好的服务器  • 选择性服务启动  •  选择包含所有服务的完整服务器  •  或没有 EJB、JMS 和 JCA 的轻型服务器  •  指定 ­DserverType=“wls”或 ­DserverType=“wlx”作为启动属性  • 快速服务器启动  •  在开发模式下按需部署内部应用程序  • 开发人员友好的控制台设置  •  禁用变更中心 — 无需锁定或编辑  •  禁用确认对话框  •  自动启动应用程序和服务  •  和上一版本相比,响应时间缩短了 50% OTN 开发人员日  7  2 采用 Java 企业版 5.0 OTN 开发人员日  8  WebLogic Server 标准  Java EE 5.0 和 Java SE 5.0/6.0  √ √ J2EE Management 1.1 J2EE Management 1.1  √ √ J2EE Deployment 1.2 J2EE Deployment 1.2  √ √ JMX 1.2 JMX 1.2  √ √ JACC/JAAS 1.0 JACC/JAAS 1.0  √ √ JTA 1.1 JTA 1.1  √ √ JCA 1.5 JCA 1.5  √ √ JNDI 1.2 JNDI 1.2  √ √ JMS 1.1 JMS 1.1  √ √ JAX JAX­ ­WS 2.0 WS 2.0  √ √ EJB 3.0 EJB 3.0  √ √ Servlet 2.5 Servlet 2.5  √ √ JSF 1.2 JSF 1.2  √ √ JSP 2.1 JSP 2.1  Java EE 5.0 APIs Java EE 5.0 APIs  支持 支持  JDBC 3.0 JDBC 3.0  √ √  •  符合标准  •  经认证兼容 JEE 5.0  √ √ OTN 开发人员日  9  Java EE5 帮助提高开发效率  •  Java EE5 的主要主题是提高开发人员工作效率  •  广泛使用注释来替代 XML  •  构建裸应用程序 — 没有部署描述符!  •  依赖注入  •  基于注释的容器资源注入  •  无需更多的 JNDI 查找  •  EJB 3.0 == 更加简便、易用的 EJB 模型  •  编码任务更少的基础架构 — 仅需要一个业务接口和实施类  •  使用注释定义的 Bean 和行为  •  专用轻量级持久性 API  •  同类最佳,去除了 EJB 2.x CMP 的所有复杂性  •  实体基于 POJO,使用注释进行 O­R 映射  •  EntityManager API 用来创建、查询、移除实体 Bean 实例  •  广泛查询支持 — 指定的、SQL 和 EJBQL OTN 开发人员日  10  EJB 3.0 实体 Bean  @Entity  @Table(name = "EMPLOYEES")  @NamedQuery(name="Employee.findAll", query="select o from Employee o")  public class Employee implements Serializable {  @Id  @Column(name = "EMPNO")  private int empNo;  private String eName;  ...  @ManyToOne  @JoinColumn(name="MANAGER_ID",referencedColumnName="EMPLOYEE_ID")  private Employee manager;  public int getEmpNo() {  return this.empNo;  }  public Employee getManager() {  return this.manager;  }  } 无 需  XM L OTN 开发人员日  11  EJB 3.0 会话 Bean  @Remote  public interface EmployeeManager {  Employee createEmployee(int empNo, String name);  Employee findEmployeeByEmpNo(int empNo);  }  @Stateless(mappedName=“EmployeeManager”)  public class EmployeeManagerBean implements EmployeeManager {  @PersistenceContext private EntityManager em;  public Employee findEmployeeByEmpNo(int empNo) {  return ((Employee) em.find(Employee.class, empNo));  }  public Employee createEmployee(int empNo, String eName) {  Employee emp = new Employee(empNo, eName);  em.persist(emp);  return emp;  }  } 无 需  XM L OTN 开发人员日  12  包含依赖注入的 Servlet 2.5  public class HRFaceServlet extends HttpServlet {  // Inject the CalculatorBean  @EJB(name=“EmployeeManager")  EmployeeManager mgr;  public void doGet(HttpServletRequest req, HttpServletResponse res)  throws ServletException, IOException {  ...  // Create new Employee  Employee newEmp = mgr.createEmployee(910377, “bill.bloggs”);  // Assign Employee to Manager  Employee mgr = mgr.findEmployee(mgrId);  mgr.addEmployee(newEmp);  ...  } 无 需  XM L OTN 开发人员日  13  3 将 FastSwap 应用于 快速开发/测试周期 OTN 开发人员日  14  开发 部署 加速开发周期  FastSwap 可实现工作效率最大化  •  传统 JEE 开发周期:  Edit > Build > Deploy > Test  •  开发人员必须对每次代码更改都完成这一周期  •  现代 IDE 通过条件编译去除了“构建”步骤:  Edit > Deploy > Test  •  FastSwap 的目标是去除“部署”步骤  Edit  > Test  •  Web 开发人员更改其代码,刷新其浏览器,并立即查看结果 OTN 开发人员日  15  FastSwap 可实现工作效率最大化  •  发展中的下一个步骤  •  Redeployment  — 需要重新加载整个应用程序  •  “Hot” Deploy  •  Partial Redeployment/Split Directory — 需要删除并重新创建类加载器  •  FastSwap  •  保持应用程序状态  •  仅为修改的方法替换字节代码  •  维护实例变量  •  通过部署描述符中的设置提供支持  •  仅开发模式 OTN 开发人员日  16  FastSwap 行动 用户 类  Foo.class  用户 类  Foo.class  修改的 用户 类  Foo.class  修改的 用户 类  Foo.class  版本化的 用户 类 版本化的 用户 类 类加载器 检测*更改并 增强 类 类加载器 检测*更改并 增强 类 使用通用方法和属性访问 器来增强用户类。该类结 构在加载此类的类加载器 的生命周期中保持不变。 委托最新版本类调用。 每次更改用户类,都会创 建新版的包含相应方法体 的类。 OTN 开发人员日  17  FastSwap 操作  • 检测类文件更改  •  查找更改的同时使用 FastSwapFilter servlet 过滤器处理 HTTP  请求  •  使用 JMX 接口手动触发“无头”应用程序  •  仅在 classes 目录上工作:无存档  • 重新定义更改的类  •  自动检测类文件更改  • 非侵害性的  •  无需删除类加载器和 Servlet,不会丢失会话状态  • 仅开发模式  •  在生产模式下自动禁用 OTN 开发人员日  18  FastSwap 支持的类更改  • 添加/删除构造函数&方法  •  包括static方法  •  包括final方法  •  不支持添加/删除finalize方法  • 添加/删除属性  •  包括static属性  •  包括final属性  • 更改构造函数和方法代码  • 更改构造函数、方法和属性修改器  • 添加方法到接口 OTN 开发人员日  19  使用 FastSwap  1.  创建展开的部署结构  •  在 weblogic­application.xml 中启用 FastSwap  2.  将源代码模块编译到展开的部署结构中的各个目录  •  无存档,必须为非打包类  3.  使用展开的部署结构将应用程序部署到 WebLogic  Server  4.  配置 IDE 以直接编译展开的部署结构中的类  5.  开发/编辑 ­> 使用 IDE 自动编译  ­> 立即测试 OTN 开发人员日  20  在 Eclipse 中启用 FastSwap  配置项目以编译到展开的目录 在 weblogic­application.xml 中启用 wls­fastswap OTN 开发人员日  21  在 Eclipse 中使用 FastSwap OTN 开发人员日  22  FastSwap 演示 OTN 开发人员日  23  4 使用Split Development OTN 开发人员日  24  WebLogic Server Split Development  •  使用 WebLogic 分割开发启动新项目  •  依据惯例开发  •  指定 EJB、web 模块和常用库的目录布局  •  指定源代码、部署描述符、HTML 和图像等的位置  •  使用工具自动生成build files  •  检查目录结构以推断模块类型  •  使用 Ant 任务以帮助重复构建、更改和部署 Java EE 应用程序。  •  将项目源和生成的构件分离  •  提供了  •  快速开发和部署  •  简化的构建脚本  •  与源控制系统轻松集成 OTN 开发人员日  25  依据惯例开发 +­­­APP­INF  |   +­­­classes  |   |       applicationresource.properties  |   +­­­lib  |           GenericResourceLoader.jar  |  +­­­appUtils  |   +­­­examples\hello\apputils\AppUtils.java  |  +­­­helloEJB  |   +­­­examples\hello\ejb\HelloBean.java  |   +­­­examples\hello\ejb\Hello.java  |  +­­­helloWebApp  |   |   index.jsp  |   |   wls_examples.css  |   +­­­WEB­INF  |       |   web.xml  |       |   weblogic.xml  |       +­­­src  |           +­­­examples\hello\utils\WebAppUtils.java  |  +­­­META­INF  application.xml  weblogic­application.xml  •  创建项目目录结构  •  类似于 JEE 存档格式  •  模块位于顶层  •  部署描述符放置在 META­INF  和 WEB­INF 目录下  •  源代码放置在特定模块下的包 结构中  •  Web 模块源放置在 WEB­  INF/src 目录下 OTN 开发人员日  26  生成 Ant Build File  • 使用 weblogic.BuildXMLGen 生成 Ant Build File  •  检验目录结构,并使用适当的目标生成对应的Build File  •  使用 Oracle Ant 任务 Usage:java weblogic.BuildXMLGen [options]   where options include:  ­help             Print the standard usage message.  ­version          Print version information.  ­projectName  name of the ANT project.  ­d     directory where build.xml is created.  Default is the current directory.  ­file  name of the generated build file.  ­username  user name for deploy commands.  ­password  password for the user.  ­adminurl    Administatrion Server URL.  ­librarydir  Comma­separated list of directories  $ java weblogic.BuildXMLGen ­projectName helloWorld ­d .­username weblogic ­password  weblogic . OTN 开发人员日  27  生成的 Ant Build File目标 $ant –p  Main targets:  appc                  Runs weblogic.appc on your application  build  Compiles helloWorld application and runs appc  clean  Deletes the build directory  compile               Only compiles helloWorld application, no appc  compile.appUtils      Compiles just the appUtils module of the application  compile.helloEJB      Compiles just the helloEJB module of the application  compile.helloWebApp   Compiles just the helloWebApp module of the application  config.server         Configure server with resources required by application  deploy                Deploys (and redeploys) the entire hellowWorld application  ear                   Package a standard JEE EAR for distribution  ear.exploded          Package a standard exploded JEE EAR  redeploy.appStartup   Redeploys just the appStartup module of the application  redeploy.appUtils     Redeploys just the appUtils module of the application  redeploy.helloEJB     Redeploys just the helloEJB module of the application  redeploy.helloWebApp  Redeploys just the helloWebApp module of the application  undeploy  Undeploys the entire helloWorld application OTN 开发人员日  28  执行构建、打包 $ ant ear  Buildfile:build.xml  compile:  [javac] Compiling 1 source file to D:\splitdev­builds\helloWorld\APP­INF\classes  [javac] Compiling 7 source files to D:\splitdev­builds\helloWorld\helloWorldWeb\WEB­INF\classes  [javac] Compiling 3 source files to D:\splitdev­builds\helloWorld\helloWorldEJB\  ...  appc:  [wlappc] <24/11/2008 01:27:28 PM CST>      [wlappc] [JspcInvoker]Checking web app for compliance.  [wlappc] <24/11/2008 01:27:30 PM CST>    <[Compliance Checker]  Validating  the servlet element with servlet­name named “HelloWorldServlet".>  ...  [wlappc] <24/11/2008 01:27:30 PM CST>    <[Compliance Checker] Checking  servlet­mapping for servlet name :“HelloWorldServlet".>  [wlappc] [jspc]  ­webapp specified, searching . for JSPs  [wlappc] [jspc] Compiling /index.jsp  [wlappc] [jspc] Compiling /systemproperties.jsp  [wlappc] Compilation completed successfully.  build:  ear:  [jar] Building jar:D:\splitdev­builds\dist\helloWorld.ear OTN 开发人员日  29  5 使用 WebLogic Server  Ant 任务 OTN 开发人员日  30  WebLogic Server Ant 任务  • 轻松将 WebLogic Server 操作集成到 Ant 构建脚本中  • 启动、停止和重新启动服务器的任务  • 部署、取消部署和重新部署的任务  • 调出以执行 WLST 脚本的任务 OTN 开发人员日  31  Ant 任务定义             OTN 开发人员日  32          • 将应用程序部署到目标服务器 OTN 开发人员日  33              • 创建新的服务器定义并启动 OTN 开发人员日  34              • 调用 WLST 脚本来实现一个测试用例 OTN 开发人员日  35  6 使用  WebLogic Server 工具 OTN 开发人员日  36  WebLogic Server 工具  • WebLogic Server 为开发人员提供了多种有用的工具  •  根据需求整合到开发流程中  • 执行前设置环境  •  /bin/setDomainEnv.cmd  weblogic.appc  编译 JSP、EJB,验证部署描述符  weblogic.marathon.ddinit.EarInit  生成 EAR 级的部署描述符  weblogic.marathon.ddinit.WebInit  生成 Web 模块部署描述符  weblogic.DDConverter  将部署描述符转换为当前 WLS 版本  weblogic.Deployer  命令行部署实用程序  weblogic.PlanGenerator  为应用程序生成模板部署计划 OTN 开发人员日  37  JRockit Mission Control  • JRockit 的扩展,可以在运行时分析、监视、管理和 诊断 Java 应用程序  • 通过 JRockit Mission Control GUI 公开  •  JRockit 管理控制台  •  JRockit Runtime Analyzer (JRA)  •  内存泄漏检测程序  •  延迟分析  • 集成到 JVM  •  近乎零开销  •  按需提供,无需工具 OTN 开发人员日  38  7 使用智能 IDE 特性 OTN 开发人员日  39  构件  AppXRay™  表现层 组件 数据访问 外部资源  JSP CSS  JSF  JSTL HTML  Struts  Web  服务 POJO 资源 包  XML  模式  Java  变量  Java / Java EE  Web 服务  WebLogic Server  Spring、ORM、DB  Spring  DAO  EJB 3  JPA Hibernate  OpenJPA  Kodo  Oracle Enterprise Pack for Eclipse  利用开源技术减少学习时间 OTN 开发人员日  40  OEPE 概述  •  经典 Workshop 特性  •  基于 Eclipse 3.4 + WTP 3.0  •  AppXRay  •  用于 JSP、JSF 和 Struts 的 WYSIWYG  •  EJB 2 和 EJB 3 工具  •  数据库和 ORM 工具  •  Web 服务(JAX­WS 和 JAX­RPC)  •  Spring Bean  •  完全支持 WLS 10.4 和较早版本  •  支持其他服务(Tomcat、JBoss、Websphere  和 Oracle 等)  •  升级  •  与现有 Oracle Eclipse 计划集成  •  Web 工具 Web 页面设计器  •  Web 工具 JSF 项目  •  Dali/DB 工具/EclipseLink OTN 开发人员日  41  AppXRay™  Oracle 的 AppXRay™ 在设计时即提供了即输即得的编译器级识别(识别已不仅仅局限于 java), 提供了代码和注释完成、代码导航、依赖可视化、生成类和配置文件一致性检查、预构建错误检查 和了解整个应用程序的验证等方面的独特功能。 为以下内容提供设计时编译器识 别:  •  Java、HTML、CSS  •  JSP/JSTL、Struts、Tiles、  JSF  •  EJB3、Oracle Kodo、  Hibernate  •  Java 资源包和变量 OTN 开发人员日  42  AppXRay:AppXaminer  继承他人开发的代码或应用程序的开发人员会感受到 AppXaminer 的价值。 通过简单的右键单击操作查看所有设计时构件之间的关系,然后过滤掉不 需要的内容。AppXaminer 还允许在特定相关实例间导航。 OTN 开发人员日  43  AppXRay 代码完成  •  用于 AppXRay 支持的任何框架  •  用于 JSP2.0 和 JSF EL 的表达式完成 例如:JSP 源完成  •  标记属性值 OTN 开发人员日  44  AppXRay 验证 例如:Struts 验证  •  AppXRay 支持的任何框架的 语法检查  •  页面中的标记使用  •  依据规范的代码语法 (如 EJB3、JSF)  •  根据当前框架配置文件 验证  •  验证框架相关构件间的相关性 OTN 开发人员日  45  8 自动创建 开发/测试环境 OTN 开发人员日  46  开发/测试环境的自动化  • 创建开发、集成和普通测试服务器可能是项负担  •  需要创建域  •  需要使用资源(jdbc、jms 和库)进行填充  •  需要能够重新设置和重新创建  • 手动方法会导致错误和不一致  •  不易确保结果  • 需要可重复的、可自动化的解决方案  •  可从命令行执行,通过  完成 Ant 任务,持续集成服务 器产品  • WebLogic Server 通过 WLST 提供脚本解决方案来满 足这一需求 OTN 开发人员日  47  WebLogic Scripting Tool (WLST)  •  命令行脚本接口,用来管理和监视  WebLogic Server 实例、集群和域  •  基于 100% 纯 Java Python 实施  •  操作模式 —(脚本/交互) ↔ (联机/  脱机)  •  为跨越环境传播配置更改提供了可重复 的流程  •  快速实现对环境的复制和迁移 OTN 开发人员日  48  使用 WLST 创建资源 # Database configuration  dataSources = splitMap(env, "datasource.")  for (dataSourceName, properties) in dataSources.items():  cd("/")  jdbcSystemResource = JDBCSystemResource(dataSourceName)  dataSources[dataSourceName] = jdbcSystemResource  cd("JDBCSystemResource/%s" % jdbcSystemResource.name)  cd("JdbcResource/%s" % jdbcSystemResource.name)  JDBCDriverParams("ignored", driverName = "oracle.jdbc.OracleDriver",  passwordEncrypted = properties["password"],  url = properties["url"])  JDBCConnectionPoolParams("ignored", initialCapacity = 1,  maxCapacity = int(properties["capacity"]),  secondsToTrustAnIdlePoolConnection = 10,  shrinkFrequencySeconds = 0, statementCacheSize = 100,  testConnectionsOnReserve = 1, testFrequencySeconds = 0,  testTableName = "SQL SELECT 1 FROM dual WHERE 1=2") OTN 开发人员日  49  9 应用程序类加载 OTN 开发人员日  50  应用程序类加载  •  开发人员负责开发和装配应用程序  •  在应用程序内使用多源代码/库  •  内部库 + Spring、Xerces、Log4J、apache­commons­*……  •  了解类加载工作方式对正确有效使用 Java 库的重要性  •  从何处加载哪些类  •  高效地重用共享库  •  避免 ClassCastExceptions  •  WebLogic Server 类加载是功能强大的机制,它的使用可带来良好 效果  •  重用通用共享库  •  过滤类加载器以控制库可见性  •  构造自定义模块类加载器层次结构 OTN 开发人员日  51  应用程序类路径  •  EAR 应用程序类路径  •  APP­INF/classes/  •  APP­INF/lib/*.jar  •  Manifest 类路径  •  (EAR­library­classpath)*  •  (JAR­library­classpath)*  •  WAR 应用程序类路径  •  WEB­INF/classes/  •  WEB­INF/*.jar  •  Manifest 类路径  •  (WAR­library­classpath)*  •  (JAR­library­classpath)*  •  (EAR­Application­classpath) OTN 开发人员日  52  共享库的方法  • 系统类路径  •  自动将 $DOMAIN/lib 添加到类路径  •  在 setDomainEnv、commEnv 中修改类路径设置  • 应用程序级  •  APP­INF/lib 用于打包的库  •  APP­INF/classes 用于非打包的类  •  META­INF/Manifest.mf/Class­Path  • Java EE 库  •  将可重用模块部署为库  •  在部署描述符中引用库(名称、版本) OTN 开发人员日  53  共享库的最佳实践  •  系统类路径  •  需要对所有/许多应用程序可见  •  很少重新加载库  •  应用程序级  •  不与任何其他应用程序共享库  •  需要重新加载库  •  部署的库  •  需要在许多应用程序之间共享  •  库的演化不同于应用程序类  •  需要重新加载库 OTN 开发人员日  54  应用程序共享的库  my­web­1.war my­web­1.war  my­ejb­1.jar my­ejb­1.jar  my­web­3.war my­web­3.war  App­1.ear  my­web­2.war my­web­2.war  my­ejb­2.jar my­ejb­2.jar  App­2.ear  my­web­1.war my­web­1.war  my­ejb­1.jar my­ejb­1.jar  App­1.ear  my­web­3.war my­web­3.war  my­web­2.war my­web­2.war  my­ejb­2.jar my­ejb­2.jar  App­2.ear  my­web­3.war my­web­3.war  App­lib.ear  部署视图 运行时视图 OTN 开发人员日  55  Web 应用程序共享的库  WEB­INF/web.xml  WEB­INF/lib/x.jar  foo.jsp  bar.jsp  WEB­INF/web.xml  WEB­INF/lib/x.jar  foo.jsp  bar.jsp  webapp­1.war  WEB­INF/web.xml  WEB­INF/lib/y.jar  a.jsp  b.html  WEB­INF/web.xml  WEB­INF/lib/y.jar  a.jsp  b.html  webapp­lib.war  WEB­INF/web.xml*  WEB­INF/lib/x.jar  WEB­INF/lib/y.jar  foo.jsp  bar.jsp  a.jsp  b.html  WEB­INF/web.xml*  WEB­INF/lib/x.jar  WEB­INF/lib/y.jar  foo.jsp  bar.jsp  a.jsp  b.html  webapp­1.war  部署视图 运行时视图 OTN 开发人员日  56  过滤类加载器  •  支持首先从应用程序提供的库加载类  •  首先将委托模式由父更改为子  •  作为阻止父提供类的障碍  •  本身不加载类  •  在应用程序需要使用绑定到服务器的框架的其他版本 时很有用  •  Xerces、Spring、Ant、Commons­Logging 等 OTN 开发人员日  57  模块 加载器 模块 加载器 模块 加载器 模块 加载器 模块 加载器 模块 加载器  ... ...  应用程序 (EAR 应用程序和 EAR 库类) 应用程序 (EAR 应用程序和 EAR 库类) 过滤 (过滤列表障碍) 过滤 (过滤列表障碍)  •  过滤类加载器位于应用程序 类加载器和系统类加载器之 间  •  本身不加载类  •  如果类与过滤列表相匹配, 则阻止系统对它们进行加载  •  从父返回  ClassNotFoundException  以便子承担加载任务 系统加载器 系统加载器 过滤类加载器层次结构 OTN 开发人员日  58  过滤类加载器配置  • 在应用程序级部署描述符中指定了从应用程序加载的 包列表   ...    org.apache.xerces.*  org.apache.commons.*  org.apache.log4j.*    ...  OTN 开发人员日  59  •  可以构建自定义类加载器层次 结构  •  在应用程序 (EAR) 中更改类加 载器的层次结构  •  控制模块间的可见性  •  在模块重新部署中可以组织  EAR 中的模块使其更加灵活  •  在 weblogic­application.xml 中 通过   元素指定  EJB1、WAR1 EJB1、WAR1  WAR2 WAR2  EJB3、WAR3 EJB3、WAR3  WAR4 WAR4  EJB4 EJB4  自定义类加载器层次结构 OTN 开发人员日  60  10 应用程序日志记录 OTN 开发人员日  61  使用 java.util.logging 的应用程序  • 使用 java.util.logging 的应用程序级日志记录已得到广 泛采用  •  可以配置标准的处理程序以从命令行对它们进行处理  •  ­Djava.util.logging.config.file  • WebLogic Server 不会自动处理来自应用程序记录器的 日志消息  •  WebLogic Server 创建自身的根级记录器  • 要定向应用程序日志,需要构造一个自定义的处理程 序  •  关联到 WLS 服务器记录器和日志消息 OTN 开发人员日  62  用于 WLS 的 Java 日志记录处理程序 package sab.demo.fastswap.logging;  import java.util.logging.*;  public class WLSServerHandler extends Handler {  final Logger wlsLogger = weblogic.logging.LoggingHelper.getServerLogger();  @Override  public synchronized void setLevel(java.util.logging.Level newLevel)  throws SecurityException {  super.setLevel(newLevel);  }  @Override  public void publish(LogRecord record) {  // Push record into WLS Server Logger  wlsLogger.log(record);  }  } OTN 开发人员日  63  配置日志记录处理程序  • 在 logging.properties 文件中配置日志记录属性 handlers=sab.demo.fastswap.logging.WLSServerHandler  sab.demo.fastswap.logging.WLSServerHandler.level=FINER  TestServlet.level=FINER  CalculatorBean.level=FINER  set JAVA_OPTIONS=%JAVA_OPTIONS%  ­Djava.util.logging.config.file=d:\bea\user_projects\domians\research\wls­  logging.properties 在 setDomainEnv.cmd 中指定 logging.properties 文件 OTN 开发人员日  64  控制台日志浏览器  • 日志消息写入到 server.log 域  •在控制台跟踪或查看日志文件 OTN 开发人员日  65  总结  • WebLogic Server 给开发人员带来许多方便  • 使用 FastSwap 可以极大地缩短开发和测试周期  • 与 Ant 构建环境的简便集成  • 可重复的开发和测试环境创建  • 高级且高度可配置的类加载器选项 OTN 开发人员日  66  更多资源  http://download.oracle.com/docs/cd/E12840_01/wls/docs103/api.html  http://download.oracle.com/docs/cd/E12840_01/wls/docs103/programming/index.html  http://download.oracle.com/docs/cd/E12840_01/wls/docs103/programming/splitcreate.  html  http://download.oracle.com/docs/cd/E12840_01/wls/docs103/config_scripting/index.ht  ml OTN 开发人员日  67 OTN 开发人员日  68
还剩67页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

yue_ch

贡献于2011-12-22

下载需要 15 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf