部署
本节详细说明了部署描述符,打包和部署描述符处理 Java EE 技术兼容的容器和产品的要求,包括对 JSP 和 Web 服务的支持。
部署描述符元素
以下附加元素存在于 Web 应用程序部署描述符,用于满足 Web 容器开启JSP 页面的要求,或作为 Java EE 应用服务器的一部分。它们不需要由希望仅支持Servlet 规范的容器支持:
- jsp-config
- 用于描述资源引用的语法 (env-entry, ejb-ref, ejb-local-ref, resource-ref, resource-env-ref)
- 指定消息目的地的语法 (message-destination, message-destination-ref)
- 引用Web Service (service-ref)
- 引用持久化上下文(persistence-context-ref)
- 引用持久化单元 (persistence-unit-ref)
这些元素的语法现在由Java服务器页面(JavaServer Pages)规范 2.2版本,和 Java EE 规范控制。
打包和JAX-WS组件部署
Web 容器可以选择支持运行实现 JAX-PRC 和/或 JAX-WS 规范定义的Web服务端点(endpoint)编写的组件。需要Web容器嵌入一个Java EE符合的实现来支持JAX-RPC和JAX-WS Web Service组件。本节描述了Web容器包括也支持JAX-RPC和JAX-WS的产品的打包和部署模型。
JSR-109 [http://jcp.org/jsr/detail/109.jsp]定义了用于打包Web service接口与它关联的WSDL描述和关联的类的模型。它定义了一种机制用于启用了JAX-WS和JAX-RPC的容器链接到一个实现了这个Web service的组件。一个JAX-WS或JAX-RPC Web service实现组件使用JAX-WS和/或JAX-RPC规范定义的API,其定义了它与启用了JAX-WS 和/或 JAX-RPC的Web容器之间的契约。它被打包到WAR文件。Web service开发人员使用平常的<servlet>
声明来声明这个组件。
启用了JAX-WS和JAX-RPC的Web容器必须支持开发人员在使用的Web部署描述符中定义用于端点实现组件的如下信息,使用与HTTP Servlet组件使用的Servlet元素相同的语法。子元素用于以如下方式指定端点信息:
- servlet-name元素定义可用于找出WAR中的处于其他组件中的这个端点描述的逻辑名字
- servlet-class元素提供这个端点实现的全限定Java类名
- description 元素可以用于描述该组件,并可能显示在一个工具中
- load-on-startup元素指定Web容器中的组件相对于其它组件的初始化顺序
- security-role-ref元素可以用于测试是否已通过身份认证的用户在一个逻辑安全角色中
- run-as元素可以用于覆盖该组件到EJB调用的身份传播
由开发人员定义的用于这个组件的任何Servlet初始化参数可能被容器忽略。此外,启用了JAX-WS和JAX-RPC的Web组件继承了用于定义如下信息的传统Web组件机制:
- 使用Servlet映射技术映射组件到Web容器的URL命名空间
- 使用安全约束在Web组件上授权约束
- 能够使用servlet过滤器提供底层(low-level)字节流支持,用于使用过滤器映射技术操纵JAX-WS和/或JAX-RPC消息
- 任何与组件关联的HTTP 会话的超时特性
- 链接到存储在JNDO命名空间的Java EE对象
所有上述要求可使用定义在8.2节的“可插拔性”的插拔机制得到满足。
处理部署描述符的规则
符合 Java EE 技术实现一部分的容器和工具,需要根据 XML schema 验证部署描述符结构的正确性。建议验证,但对于不符合 Java EE 技术实现的web容器和工具不是必须的。