Apusic Studio开发指南
  Apusic标准工程介绍
    概述
    目录结构
    Apusic系统工程简介
    操作
      新建Apusic标准工程
      新建模块
      部署
      导出EAR文件
  EJB开发介绍
    概述
    EJB模块
      新建EJB模块
      如何引用外部jar包
    新建会话Bean
  Web开发
    概述
      Web开发环境
      Web工程
    可视化开发
      标签栏
      图形编辑器和代码编辑器
      属性视图
      大纲
    布局组件
    Managed Bean介绍
      概述
      创建Managed Bean
      使用Managed Bean
  示例
    Hello Duke
      前言
      Step By Step
    CRUD
      前言
      Step By Step
Apusic应用服务器文档
  Apusic应用服务器5.1概览
    Apusic应用服务器5.1技术概览
      概述
      体系结构
        Apusic服务器、Apusic域和Apusic实例
        Apusic体系结构组成
      Apusic Core内核
      容器
        Web Container
          JSP/Servlet容器
          JSF引擎
          Portlet容器
          虚拟主机
          Http Connector
          WebDav
        EJB Container
        Client Container
        容器Session管理
          Http Session
            In-memory Cache
            存储
            Session Failover
            Session Stick
            Session Timeout
          Stateful Session Bean
      基础服务
        JCA Services
        Naming
        JTA
        死锁检测
        并发控制
        JDBC
        JDBC 语句缓存
        连接池
        JMS
        JavaMail
        JMX
      Web Services
        Web Services引擎
          JAX-WS 规范
          对Java EE 5.0的支持
          Apusic应用服务器的消息安全机制
        UDDI
      安全框架
        JAVA授权和鉴定服务(JAAS)
        JavaEE容器的授权合约(JACC)
        Apusic Security Extensions
        Apusic SSO
        身份鉴定
        授权
        加密
        安全数据存储
      管理与监控
        管理接口
        管理工具
          Apusic管理控制台
          Web管理控制台
          Shell Script
      集群服务
        Web集群
        JNDI集群
        EJB集群
        JMS集群
          消息路由
          消息队列
      技术汇总
      Apusic Platform
        Apusic Studio
        Apusic消息中间件
    Apusic应用服务器5.1新特性
  安装与管理
    安装Apusic5.1应用服务器
      系统要求
      安装
        获取Apusic应用服务器安装包
        Windows下基于图形界面的安装
        压缩包的安装
      安装后的工作
        了解Apusic应用服务器的目录结构
        运行服务器
        启动远程管理工具
        启动并访问应用服务器信息中心
        使用firststep工具
        关闭服务器
        卸载服务器
      注册
        Apusic 应用服务器开发版
        注册Apusic 应用服务器正式版
    管理Apusic应用服务器
      启动和停止服务器
        命令行启动或停止服务器
          使用startapusic启动脚本
        开始菜单(限于Windows)
        Windows系统服务(限于Windows)
        使用firststep工具启动服务器
      配置Classloader
        Classloader的基本概念
          类装载的方式
          一个基本的Classloader的层次结构
          基本的Classloader
          自定义Classloader
          Caller Classloader和线程上下文Classloader
          JVM中类的唯一性
        Apusic的Classloader体系
          JavaEE应用对Classloader的要求
          Apusic的Classloader和它们的层次结构
          ServletClassLoader的特性
            类的动态加载
            ServletClassLoader的多层结构
            Session中对象的类动态装载
            类装载的Web优先策略
          类装载查看服务
      日志服务
        理解日志服务子系统
          日志管理器(LogManager)
          日志级别
          日志记录器对象(Logger)
          日志输出(Handler)
        管理与配置
          编辑logging.xml文件
          记录客户端IP
      基于JMX的可植入服务配置
        理解JMX
        可植入服务命名
          域名(domain name)
          标识属性(key attribute)
          命名的字符串表示
        配置和管理可植入服务
      线程池服务配置
        默认的公共线程池配置
        多路复用线程池配置
        WebServer线程池配置
        JMS线程池配置
        ORBWorker线程池配置
      管理多路复用
        理解多路复用
        管理与配置
          apusic.conf文件中相关配置属性说明
          SSL配置
            TLS/SSL简介
            建立自己的认证授权机构CA
            生成服务器端证书
            颁发并发布个人证书
            配置服务器允许双向认证
            测试双向认证
      管理Apusic Web服务器
        管理与配置
        配置Web应用
          部署Web应用
          配置web上下文根路径
        配置虚拟主机
        WebDAV配置
      管理Session服务
        管理与配置
        管理Session失效时间
      使用Apache作为Web代理
        HTTP Proxy
        AJP Proxy
      使用Microsoft IIS作为Web代理
        理解ACP(Apusic Connector Protocol)
        安装
        管理与配置
      管理JDBC服务
        理解数据库连结池
        数据库连结池管理与配置
          编辑datasources.xml文件
            datasource元素
            property
            remote-acl
            结果集缓存
            语句缓存
            连接失效检测
        活动连接监控
        JDBC事件监控
      消息服务配置
        理解Apusic消息服务
        消息路由与存储
          配置消息存储目录
          配置消息路由
            理解消息路由
            配置和管理路由
        管理消息服务
          配置连接工厂
          配置消息目的地(Destination)
            配置消息队列
            配置消息主题
          安全相关配置
            安全角色
            消息目的地(Destination)访问许可
            范例
      管理事务服务
        配置事务服务
      管理命名服务
        配置命名服务
      管理应用服务器域
        应用服务器域的概念
        应用服务器域的管理
      应用服务器安全提供程序
        安全框架介绍
        内置安全提供程序
          文件存储配置
          JDBC存储配置
          LDAP存储配置
        自定义安全提供程序
          实体信息的存储与读取
          实现身份验证提供程序
          实现授权提供程序
          配置映射
      管理集群
        集群的基本概念及相关术语
          可扩展性(Scalability)
          可用性(Availability)
          可靠性(Reliability)
          失效转移(Fail-Over)
          负载均衡(Load Balance)
          会话粘滞(Session Stick)
          幂等性(Idempotent)
        J2EE集群
          负载均衡
          失效转移
        Apusic集群
          Web集群
            Apusic负载均衡
              负载均衡策略
              Apusic负载均衡器的Session 复制策略
              失效转移
              配置负载均衡
            第三方负载均衡
              Session复制策略
              Session的存储
              配置Web集群
              Web集群失效转移
            Apusic Session复制粒度
            Web集群方案
          JNDI集群
            本地JNDI和JNDI集群
            JNDI 负载均衡和JNDI失效恢复
            JNDI集群配置
          EJB集群
            EJB负载均衡和EJB高可用性
            EJB集群配置
            EJB集群实践
          JMS集群
            消息路由
              理解Apusic消息服务
              配置消息路由与存储
              管理消息服务
            集群队列
              配置集群队列
              使用集群队列
      配置和管理工具
        appctl工具
        apclient工具
        firststep工具
        dep工具
        AdminMain工具
          选项
          用法
          关于服务的说明
        JSPC工具
      使用Jconsole监控
        用Jconsole监控和操作Apusic应用服务器
      附录:jserv.conf
      附录:缺省的apusic.conf配置文件
      附录:缺省的datasources.xml配置文件
      附录:缺省的jms.xml配置文件
      附录:缺省的logging.xml配置文件
      附录:缺省的server.xml配置文件
      附录:缺省的auth.cfg配置文件
      附录:缺省的clientauth.cfg配置文件
      附录:缺省的acp_isapi.properties配置文件
  Web开发手册
    Apusic JSP 开发
      JSP概述
        什么是JSP
        JSP如何处理请求
      Apusic JSP变动及其升级
        从JSP2.0到JSP2.1的主要变动
          JSP 2.1支持统一表达语言Unified Expression Language
        从JSP1.2到JSP2.0的主要变动
          JDK要求
          JSP 2.0支持表达语言expression language
          JSP 2.0中加入了JSP fragment
          JSP 2.0中加入了SimpleTag
      Apusic JSP开发指南
        JSP页面的生命周期
        初始化和结束一个JSP页面
        创建静态内容
        创建动态内容
          使用内置对象
          对象的作用范围
          JSP元素(Element)
            伪指令元素 (Directive Elements)
            动作元素 (Action Elements)
            脚本元素 (Scripting Elements)
        表达式语言
          使表达式语言失效
          使用表达式语言
          变量
          文字
          操作符
          保留关键字
          举例列表
        使用JavaBeans
          JavaBeans 设计惯例
          创建和使用JavaBeans
          设置JavaBeans的属性
          得到JavaBeans 的属性
        在JSP页面中包含其他内容
        传递控制到其他Web组件
        在JSP页面中包含Applet
        使用Apusic JSP预编译
    Apusic Http Servlets 开发
      Http Servlets 概述
        什么是Servlet
        使用Servlet的目的
        Servlet开发概述
        Servlet与JavaEE
        Servlet API参考
      Apusic Http Servlets变动及其升级
        从Servlet2.4到Servlet2.5的主要变动
          依赖于J2SE5.0
          支持注解(Annotation)
          更便利的web.xml的配置
            servlet名称通配符
            在servlet映射中使用多个url-pattern标签
            HTTP方法名称
        从Servlet2.3到Servlet2.4的变动
          Servlet 2.4版使用XML Schema作为部署描述文件定义
          Servlet 2.4版在加入了ServletRequest监听器
          Servlet 2.4版增强了请求分发器的过滤功能
          Servlet 2.4版可以定义网站的字符编码方式
      Apusic Http Servlets编程初步
        Servlet生命周期
        编写一个基本HTTP Servlet的步骤
        高级特征
      Apusic Http Servlets编程进阶
        初始化Servlet
        使用注解
          @Resource与@Resources
          @PostConstruct与@PreDestroy
          @EJB
          @WebServiceRef
          @Persistence系列注解
          @DeclareRoles
          @RunAs
        编写Service方法
          取得客户端请求
          提供HTTP响应
        处理多线程情况
        维护客户端状态
          访问Session
          使属性和Session相关联
          Session管理
          Session跟踪
        访问Servlet环境(Servlet Context)
        使用Apusic Services
        调用其他Web资源
          包含其他Web资源
          传递控制给其他Web组件
        结束一个Servlet
      Apusic Http Servlets高级开发
        Servlet Filtering
          编写过滤器类
          定制请求和响应
          映射过滤器
        Application Events
          配置事件监听类
          编写事件监听类
          事件监听类模板
    JSP扩展标记
      JSP 扩展标记介绍
      使用扩展标记
        声明扩展标记
        扩展标记的类型
      定义扩展标记
        标记库描述符
        标记处理类(Tag Handlers )
        简单标记
        带属性的标记
        带标记体的标记
        定义脚本变量的标记
        协作标记
      标记处理类如何被调用
    Apusic JSF
      什么是JavaServer Faces?
      JSF页面的生命周期
        重建视图阶段(Restore View Phase)
        应用视图值阶段(Apply Request Values Phase)
        处理校验阶段(Process Validations Phase)
        更新模型值阶段(Update Model Values Phase)
        调用应用阶段(Invoke Application Phase)
        显示应答阶段(Render Response Phase)
      UI组件模型
        UI组件类
        组件显示模型
        转换模型
        事件和监听器模型
        校验模型
      导航(Navigation)模型
      Backing Bean管理
      更多参考:
  EJB开发手册
    Apusic Enterprise JavaBeans 简介
      Enterprise JavaBean简介
        作为组件模型的EJB
          特征
          使用EJB组件模型的优势
        EJB组件模型
          客户端类型
          EJB组件模型的组成部分
            EJB的组件接口
            HOME接口
            Enterprise Bean类
            部署描述文件
        EJB的类型
      Session Bean
        什么是Session Bean
        Session Bean的生存时间
        会话状态
          无状态的Session Bean
          有状态的Session Bean
      Entity Bean
        什么是Entity Bean
          Session Bean与Entity Bean
            持久性
            共享访问
            Primary Key
            关系
          容器管理持久性(Container-managed Persistence,CMP)
            抽象模式(Abstract Schema)
          容器管理关系(Container-managed Relationship,CMR)
          容器管理关系的方向
        Entity Bean的特征
          持久性
          持久业务数据的对象表示
          表示相同的底层数据的多个Entity Bean实例
          可查找的Entity Bean
      Message-driven Bean
        Message-driven Bean 的产生原因
        Message-driven Bean 作为一般的JMS 使用者(consumer)
        Message-driven Bean 与其他Enterprise Bean
      使用接口定义客户访问
        远程访问
        本地访问
        本地接口与容器管理关系
        方法参数和返回值
        远程还是本地
        执行效率与组件接口类型
      Enterprise Bean的内容
      EJB组件模型的灵活性
      何时使用EJB组件
    会话Bean
      会话Bean
        容器与会话Bean
        会话Bean的会话状态
          有状态Session Bean实例的钝化与激活
          会话状态
          事务操作与状态域
      组件模型单元
        Home接口
          远程Home接口
            编写远程Home接口的规则
            代码范例
          本地Home接口
            编写本地Home接口的规则
            代码范例
        业务(组件)接口
          远程接口
            必须遵守的的规则
            代码范例
          本地接口
            必须遵守的规则
        组件类
          在组件类中使用注解
            @Resource注解
            @PostCreate注解
            @Remove与@PreDestroy注解
            @PrePassivate与@PostActivate注解
          javax.ejb.SessionBean接口
            setSessionContext
            ejbRemove
            ejbPassivate与ejbActivate
          SessionContext接口
          可选的SessionSynchronization接口
          串行化的会话Bean方法调用
          业务方法必须遵守的规则
          代码范例
      生存周期
        有状态Session Bean的生存周期
        无状态Session Bean的生存周期
    Message-driven Bean
      Message-driven Bean
        Message-driven Bean与EJB容器、客户端、消息系统
      组件模型单元
        组件类
          javax.ejb.MessageDrivenBean接口
          javax.jms.MessageListener接口
          javax.ejb.MessageDrivenContext接口
          串行化的调用
          消息处理的并发
          Message-driven Bean方法的事务上下文
          消息接收确认(Message Acknowledgement)
          指定队列(Queue)或主题(Topic)
          异常处理
          遗漏的PreDestroy调用
        必须遵守的规则
          组件类
          onMessage方法
          ejbRemove方法
      生存周期
    Entity Bean
      概览
        数据的对象视图
        组件结构
        Primary Key
      客户端
        JNDI
        远程客户
        本地客户
      容器与Entity Bean
        通过JNDI定位远程Home接口
        通过JNDI定位本地Home接口
      组件模型
        Home接口
          远程Home接口
            create方法
            finder方法
            Remove方法
            Home方法
          本地Home接口
            create方法
            finder方法
            Remove方法
            Home方法
        Primary Key
        组件接口
          远程接口
          本地接口
        组件类
      生存周期
    Bean管理持久性的Entity Bean
      概述
      Bean管理持久性的Entity Bean
        打开与释放资源
        实例的创建
        实例状态与持久存储
        实例的清除
      必须遵守的规则与范例
        组件类
          ejbCreate方法
          ejbPostCreate方法
          ejbRemove方法
          finder方法
          业务方法
          Home方法
        Home接口
        组件接口
      异常处理
        系统级异常
        应用级异常
        组件异常类型
    容器管理持久性的Entity Bean
      概述
      容器管理持久性的Entity Bean
        CMP模型
        例子说明
        抽象持久性模式(Abstract persistence schema)
          容器管理持久性域(cmp-field)
          容器管理关系(cmr)与容器管理关系域(cmr-field)
          辅助值对象(dependent value object)
          自动建表与自动生成主键
            自动建表
            自动生成主键
          装载单元
          关系的赋值语义
            使用java.util.Collection API更新关系
            使用setter方法更新关系
        Primary Key
        实例的清除
          remove方法
          级联(cascade)移除
        Finder方法
          单个对象的查找
          多个对象的查找
          容器自动生成查询
        Select方法
          返回单个对象的select方法
          返回多个对象的select方法
        实例的生存周期与开发中的约定
          实例的生存周期
          开发中的约定
      必须遵守的规则
        类与接口
        组件类
        辅助类
        ejbCreate方法
        ejbPostCreate方法
    EJB QL
      概述
      定义
        抽象持久类型与查询范围
        命名
        范例
        返回值类型
        FROM子句与定位声明
          标识符(Identifier)
          标记变量(indentification variables)
          范围变量声明
          集合成员变量声明
          范例
          路径表达式
          WHERE子句与条件表达式
            字面值(literals)
            标记变量(indetification variable)
            路径表达式
            输入参数
            条件表达式构成
            运算符与优先级
            BETWEEN表达式
            IN表达式
            LIKE表达式
            NULL比较表达式
            空集合比较表达式
            集合成员表达式
            功能表达式
        SELECT子句
        ORDER BY字句
        NULL值
        相等语义
        查询语句的限制
      范例
        简单查询
        使用关系的查询
        使用输入参数的查询
        定义select方法的查询
        EJB QL与SQL
      EJB QL BNF
    Java Persistence API
      概览
      实体
        什么是实体
        实体类的一些需求
        持久类的持久值域与持久属性
        持久值域
        持久属性
        实体的主键
        主键类
      实体的关系
        实体关系的多重性
        实体关系的方向
          双向关系
          单向关系
          查询与关系方向
          级联删除关系
        实体的继承关系
          抽象实体
          映射超类(Mapped superclass)
          非实体超类
        继承结构映射策略
          单表映射继承结构策略
          单表映射具体实体类策略
          子类连接策略
      管理实体
        实体管理器Entity Manager
          容器管理的实体管理器
          应用管理的实体管理器
          使用EntityManager查找实例
        管理实体实例的生存周期
          持久化实体实例
          清除实体实例
          同步实体数据到数据库
        创建查询
        查询中的命名参数
        查询中的顺序参数
      持久单元
        persistence.xml文件
    Java持久查询语言
      新特性
        批量更新与删除
        连接操作
          内连接(关系连接)
          左连接(LEFT JOIN)
          获取连接(FETCH JOIN)
        GROUP BY和HAVING子句
        投影
        SELECT子句中的构造表达式
        子查询
        查询中的命名参数
      Java持久查询语言BNF
    EJB的环境
      概述
      环境项(environment entry)
        访问环境项
        设置环境项
      EJB引用
        访问EJB引用
        声明EJB引用
          ejb-link
      资源管理器的连接创建器引用(resource manager connection factory reference)
        使用资源管理器的连接创建器引用
        声明连接创建器引用
        引用的映射
        访问引用
        标准的连接创建器类型
      资源环境引用(resource environment references)
        声明资源环境引用
        访问资源环境引用
      javax.transaction.UserTransaction接口
    EJB的事务
      概述
      客户端事务与未指明的事务上下文
      EJB的事务划分
        Bean管理事务(程序型的事务划分)
          使用Bean管理事务的限制
          事务上下文
        容器管理事务(声明型的事务划分)
          setRollbackOnly与getRollbackOnly方法
          使用JMS API的考虑
          事务属性
            NotSupported
            Required
            Supports
            RequiresNew
            Mandatory
            Never
          必须遵守的规则
      使用Bean管理事务与容器管理事务