5. 不受支持的功能

JBoss EAP 目前不支持下列功能。
RHEL 7 上 Apache 的 mod_jk 和 mod_cluster
RHEL 7 上可通过 RHN 频道安装的 Apache HTTP 服务器带来了和 mod_clustermod_jk 不兼容的问题,且没有支持服务。而 JBoss EAP 附带的 Apache HTTP 服务器却享有所有的支持服务。
mod_rt 和 mod_snmp
JBoss EAP 6 的 Apache HTTP 服务器附带的 mod_rt (mod_rt.so) 和 mod_snmp (snmpmonagt.so) 模块不享有支持服务。
您可以在 Enterprise Web Server 2.1 的文档里找到关于对这些模块的支持的更多信息。
STOMP 协议和 HornetQ
HornetQ 对 STOMP 协议提供社区级别的支持。这个协议没有接受 Red Hat 的测试,所以不享有 JBoss EAP 的支持服务。
REST 协议和 HornetQ
HornetQ 对 REST 协议提供社区级别的支持。这个协议没有接受 Red Hat 的测试,所以不享有 JBoss EAP 的支持服务。
Infinispan API
JBoss EAP 6 里不支持直接使用 Infinispan API。Infinispan 被用作 JBoss EAP 6 内部不同群集技术的实现细节。直接使用 Infinispan API 需要订阅 JBoss Data Grid。
JDK 6 的 IPv6 限制
下面的 IPv6 限制是 JDK 6 造成的,并非 JBoss EAP 6 的问题。
  • 在 Microsoft Windows 服务器上,JDK 6 只有一部分的 IPv6 实现。这个实现不足以运行 JBoss EAP 6。Microsoft Windows 服务器上对 IPv6 的完整支持要求 JDK 7。
  • 在 RHEL 上,Oracle JDK 6 里的一个程序错误导致在包含 zone-id 的客户(建立连接的网络端点)上指定的任何地址都会失败。要使用 zone-id,要么升级到 JDK 7,要么使用 RHEL 里的 IcedTea/OpenJDK 6,且不要展示这个错误。关于这个错误的更多信息,请参考 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6800096https://issues.jboss.org/browse/JBPAPP-8833
JTA 事务外部的 JPA 2.0 内容填充
扩展持久性上下文(Extended Persistence Contexts,XPC)的填充没有考虑事务的存在,所以 XPC 总是被填充。这种行为不符合 JPA 2.0 规格。我们修改了 XPC 的处理,当没有活动事务时,XPC 的填充将被忽略且被调用的 Bean 将有自己的持久性内容而不是 XPC。
如果您的应用程序希望在 JTA 事务外填充 XPC,您需要考虑是否修改应用程序。关于如何修改应用程序的说明,请参考《JBoss EAP 6 移植指南》。
JBoss EAP 5 提供了一个系统属性(JBPAPP-923.alwaysPropagate)来启用这个行为。这个系统属性在 JBoss EAP 6 里是不可用的。
关于这个决定的更多信息,请参考 https://issues.jboss.org/browse/AS7-1663
PicketLink 子系统
JBoss EAP 6.3 不支持 PicketLink 子系统。
STS 客户池
PicketLink 在服务器上提供一个 STS 客户池。这消除了创建 STS 客户的瓶颈。
需要 STS 客户来获取 SAML 票据的登录模块可以利用客户池。
可以利用 STS 客户池的登录模块:
  • org.picketlink.identity.federation.core.wstrust.auth.STSIssuingLoginModule
  • org.picketlink.identity.federation.core.wstrust.auth.STSValidatingLoginModule
  • org.picketlink.trust.jbossws.jaas.JBWSTokenIssuingLoginModule
通过 initialNumberOfClients 选项可以配置客户池里每个登录模块的的默认客户数量。
STSClientPoolFactory 类 org.picketlink.identity.federation.bindings.stspool.STSClientPoolFactory 为应用程序提供了客户池功能。

使用 STSClientPoolFactory

STS 客户会插入子池且以它们的 configuration 为键。获取 STSClientPool 实例并根据配置初始化子池,可以指定初始的 STS 客户或使用默认的数量。
final STSClientPool pool = STSClientPoolFactory.getPoolInstance();
pool.createPool(20, stsClientConfig);
final STSClient client = pool.getClient(stsClientConfig);
当您使用完客户后,您可以将其退回池里:
pool.returnClient();
根据给定的配置检查子池是否已经存在:
if (! pool.configExists(stsClientConfig) {  
    pool.createPool(stsClientConfig);  
}
启用 PicketLink Federation 子系统时,为某个部署创建的所有客户池都会在卸载过程中自动销毁。如要手动销毁池,可用:
pool.destroyPool(stsClientConfig);
Tanuki Service Wrapper
JBoss EAP 6 不支持 Tanuki Service Wrapper。更多信息请参考 https://issues.jboss.org/browse/JBPAPP-8651
Microsoft SQL Server 2008 上的 XA 恢复
Microsoft SQL Server 2008 R1 里无法使用 XA 恢复。这个功能可以用于 Microsoft SQL Server 2008 R2 SP2。相关详情请参考:
MySQL 上的 XA 恢复
MySQL JDBC 驱动没有正确实现 XA 恢复,当和数据库的连接停止时它会返回不正确的错误代码。
JBoss OSGi
JBoss OSGi 是一个 OSGi 规格的实现,它已从技术预览降为 Unsupported。其他信息请参考 https://access.redhat.com/site/solutions/362814
Quickstarts
因为 OSGi 从未被支持过且已从产品里删除,所以我们也从 JBoss EAP 6.3 附带的例程里删除了 helloworld-osgi quickstart。
wicket-warwicket-ear quickstarts 依赖 seam-conversation-weld.jar。因为 Seam 仍不享有支持服务,所以这些 Quickstart 例程也从 JBoss EAP 6.3 附带的例程里删除了。