本文档包含 WebSphere Application Server V5.0 for iSeries 的发行说明。该发行说明包含有关已知问题和解决方法的信息。本文档还包括某些在WebSphere Application Server 文档中讨论的主题的补充信息。
本文档包含 WebSphere Application Server V5.0 for iSeries 的发行说明。该发行说明包含有关已知问题和解决方法的信息。本文档还包括某些在 WebSphere Application Server 文档中讨论的主题的补充信息。此版本替换发行说明的所有较早版本。
将会定期更新这些说明。有关最新的信息,请参见 WebSphere Application Server for iSeries Web 站点。
进行故障诊断时,务必要搜索 WebSphere Application Server for iSeries FAQ(常见问题)数据库。
参见 Installation 文档以获取关于安装产品和创建初始配置的最新的逐步指示信息。
有一个组 PTF 随此产品同时提供。在安装之后和启动 WebSphere Application Server 环境之前,应立即应用该组 PTF。有关更多信息,参见 PTF 部分。
文档
最新的文档可在 WebSphere Application Server for iSeries Web 站点的 documentation 页面上找到。
现在,就可从 WebSphere for iSeries Web 站点下载 WebSphere Application Server for iSeries“文档中心”了。可在本地系统上(而不是以远程方式从 WebSphere for iSeries Web 站点)安装和查看此可下载版本。
下列指示信息描述如何下载和安装 WebSphere for iSeries“文档中心”:
1. 从 WebSphere for iSeries Web 站点上的 Documentation 页面下载“文档中心”的 zip 文件。
2. 在本地系统上创建名为 WAS50BDocs 的新目录。
3. 将下载的 zip 文件的内容解压缩到此新目录中。
然后,您就可通过在浏览器中打开 docs 子目录中的 index.html 页面来访问“文档中心”:
<install_drive>\WAS50BDocs\docs\index.html
修订警告:
WebSphere Application Server - Support Web 站点提供关键问题的个别修订,这些修订未包括在 WebSphere 修订包中。尚未对 WebSphere Application Server V5.0 for iSeries 测试这些修订。除非另有说明,否则不应将这些修订应用于 iSeries 服务器。这些“修订”将包括在产品的正式修订包中。
如果您急需某个“修订”,请与 IBM 服务机构联系。
PTF 信息:
- 组 PTF SF99243(V5R1)和 SF99245(V5R2)是可用的。应用它们的首选时间是在安装 WebSphere Application Server V5.0 for iSeries 之后和在首次启动 Websphere Application Server 环境或创建任何附加 WebSphere 实例之前。
- WebSphere Application Server V5.0 for iSeries 的 PTF 需求在以下产品 Web 站点公布:
经常检查此站点以验证您是否以最新的必需 PTF 运行产品。
注意:对于组 PTF SF99243(V5R1)和 SF99245(V5R2),没有匹配的工作站修订包。
已知问题和限制:
产品安装
WebSphere Application Server for iSeries 安装
1. WebSphere Application Server 的缺省安装选项包括安装 WebSphere MQ V5.3 for iSeries 产品和 WebSphere MQ Classes for Java and JMS V5.3 for iSeries 产品。如果已安装 MQ Series for iSeries 产品或 MA88 MQ Classes for Java 产品的先前版本,则参见以下两段说明以获取重要信息。
o 如果已在系统上安装 MQSeries for iSeries,则必须将它迁移至 WebSphere MQ V5.3 for iSeries,以便将 JMS 与 WebSphere Application Server 配合使用。MQSeries for iSeries V4.2(5769MQ2)和 MQSeries for iSeries V5.1/V5.2(5733A38)在与 WebSphere Application Server 配合使用时是不兼容的。
有关更多信息,参见计划安装
o 如果已在系统上安装 MQSeries classes for Java and JMS(5648C60),则在安装 WebSphere MQ classes for Java and JMS(5639C34)之前必须卸载它。
有关更多信息,参见计划安装
2. 当从 iSeries 服务器的 CD-ROM 驱动器中执行 WebSphere Application Server 的本地安装,而未安装 IBM Developer Kit for Java(TM) (5722-JV1) V1.3(选项 5)时,该安装会立即失败并且无错误消息。有关更多信息,参见安装和运行 WebSphere Application Server 的 iSeries 先决条件
IBM HTTP Server
1. 按以下方式验证指向 washttpadmin.jar 的符号链接在 /QIBM/UserData/Httpa/webapps/HTTPAdmin/Web-inf/lib 中是否存在:
WRKLNK OBJ('/QIBM/UserData/Httpa/admin/webapps/HTTPAdmin/Web-inf/lib/washttpadmin.jar')
如果该链接存在,在项目旁边的选项行上指定选项 9,并验证所有者是否是 QSYS 且 *PUBLIC 是否具有 *RX 权限。
如果该链接不存在,则按以下方式创建它,将所有者更改为 QSYS 并授予公共权限 *RX:
a. ADDLNK OBJ('/QIBM/UserData/WASHttpAdmin/washttpadmin.jar')
NEWLNK('/QIBM/UserData/Httpa/admin/webapps/HTTPAdmin/Web-inf/lib/washttpadmin.jar')
LNKTYPE(*SYMBOLIC)
b. CHGOWN OBJ('/QIBM/UserData/Httpa/admin/webapps/HTTPAdmin/Web-inf/lib/washttpadmin.jar')
NEWOWN(QSYS) RVKOLDAUT(*YES) SYMLNK(*NO)
c. CHGAUT OBJ('/QIBM/UserData/Httpa/admin/webapps/HTTPAdmin/Web-inf/lib/washttpadmin.jar')
USER(*PUBLIC) DTAAUT(*RX) OBJAUT(*NONE)
如果该链接存在,但不具有正确的所有者或权限,则使用以上列表中的命令之一来修订问题。
工作站组件安装
1. 当安装工作站组件时,如果希望使用应用程序汇编工具,则必须选择“应用程序汇编和开发工具”选项及其所有子选项。将自动选择“应用程序服务器”选项。安装所有这些选项会安装为企业应用程序生成已部署的代码所需要的 jar 文件。
2. 不能从 Windows 系统上的 WebSphere Application Server 客户机 CD 中安装可插入的客户机。要解决此问题,执行以下其中一项操作:
o 将用于 Windows 安装映象的 WebSphere Application Server 客户机 CD 复制到本地 temp 目录,并从本地 temp 目录安装它。
o 使用以下选项从命令行手工运行安装程序:
<cd Drive>\nt\install.exe -P OrbPropertiesFileCopy.installLocation="<SUNJrePath>/lib"
其中 <cd Drive> 是 CD 驱动器,<SUNJrePath> 是安装在机器上的 SUN 操作环境 jre 的位置,例如:
F:\nt\install.exe -P OrbPropertiesFileCopy.installLocation="C:/JavaSoft/JRE/1.3.1_04/lib"
3. 让安装目录为空白,则安装过程不能继续进行。如果让安装目录为空白,安装并不会指示必须输入安装目录,但当您单击下一步时,安装不允许您继续执行。
要解决此问题,在安装目录字段中输入目录目的地。然后,您才能够前进到下一个面板。
4. 在卸载之后,不要删除 vpd.properties 文件。如果卸载发生问题或需要清除 WebSphere Application Server 注册表项,执行以下操作:
编辑 vpd.properties 文件。在 Windows 平台上,在目录 C:\WINNT 中找到此文件。在 Linux 平台上,在 /root 目录中找到此文件。如果正在卸载 WebSphere Application Server,则除去包含字符串 WSB 的所有行。如果正在卸载 WebSphere Application Server Network Deployment,则除去包含字符串 WSN 的所有行。如果除了 WebSphere Application Server 以外,还有其它产品使用了 ISMP 进行安装,则不要删除 vpd.properties 文件。
QShell 脚本
1. stopServer 和 stopNode QShell 脚本当前不支持 -timeout 和 -statusport 选项。指定这些选项会导致显示脚本的用法语句。
管理控制台(GUI)和命令行工具
1. 如果管理控制台端口与其它应用程序发生冲突,使用 CHGWASSVR QShell 脚本更改该端口
示例:chgwassvr -instance instanceName -server serverName -admin newPort [ -adminssl newSSLPort ]
有关该脚本的更多信息,参见 chgwassvr 脚本。
2. 管理控制台不支持使用浏览器的“后退”和“前进”按钮。使用这些按钮会导致间歇问题。使用管理控制台面板上的“后退”或“取消”按钮代替。
3. 当通过单击服务器 > 应用程序服务器 > 服务器 > Web 容器 > HTTP 传送 > SSL 传送 > SSL 配置清单 — 单元级别来访问管理控制台中的“安全套接字层(SSL)配置清单”面板时出错,因为指向 SSL 配置清单的链接已断开。要解决此问题,通过单击安全性 > SSL 来访问“SSL 配置清单”面板。
4. 当 J2EE1.2 应用程序不具有 was.policy 文件并且使用 wsadmin 或管理控制台安装该应用程序时,将显示以下消息:
ADMA0080W=ADMA0080W:1.2.x 企业应用程序中包括未设置任何许可权的模板策略文件。在安装企业应用程序后,可以通过编辑位于 $ {user.install.root}/config/cells/(yourCellName)/applications/(yourAppName)/META-INF 目录中的 was.policy 文件来修改企业应用程序的 Java 2 安全性策略。有关 was.policy 的语法,请参考“信息中心”中文档的“动态策略”部分。
消息文本应该是:
ADMA0080W=ADMA0080W:1.2.x 企业应用程序中包括未设置任何许可权的模板策略文件。在安装企业应用程序后,可以通过编辑位于 $ {user.install.root}/config/cells/(yourCellName)/applications/(yourAppName).ear/deployments/(yourAppName)/META-INF 目录中的 was.policy 文件来修改企业应用程序的 Java 2 安全性策略。有关 was.policy 的语法,请参考“信息中心”中文档的“动态策略”部分。
注意 was.policy 文件的路径中的改正。
5. 将 wsadmin 连接至运行以下 AdminApp 命令的远程服务器进程会导致错误:
edit
editInteractive
export
exportDDL
install
installInteractive
uninstall
要解决此问题,执行以下其中一项操作:
o 在以本地方式连接服务器进程的情况下调用 AdminApp 命令。
o 当对远程服务器运行这些命令时,指定 cell 选项。
例如:
$AdminApp uninstall samples {-cell myCellName}
注意:如果 wsadmin 正在从仅具有独立脚本编制客户机安装的系统运行,则此解决方法对于 edit、editInteractive、install 和 installInteractive 命令不起作用。
6. 当在“高级 LDAP 设置”面板中修改任何 LDAP 用户或组过滤器时,建议您单击应用来代替确定。单击确定会使您进入“LDAP 用户注册表”面板,该面板包含先前类型(LDAP 目录类型),而不包含所假定的“定制”类型。因此,如果在此面板(LDAP 用户注册表)中单击确定或应用,将保存旧的 LDAP 目录类型(因此而保存该目录的缺省过滤器),这会导致覆盖对过滤器的更改。要避免这种情况,可以执行以下任何一项操作:
o 在“高级 LDAP 设置”面板中单击应用。然后,要前进至另一个面板,使用左边的导航。如果导航用来访问“LDAP 用户注册表”面板,您应该会发现目录类型更改为定制。
o 在“LDAP 用户注册表”面板中选择定制类型。单击应用然后通过单击“高级 LDAP 设置”面板来更改过滤器。在此方案中,一旦完成更改,就可以单击应用或确定。
7. 管理控制台“轻量级第三方认证”帮助面板不正确。有关正确的信息,参见安全性部分。
工作站工具
1. 当在应用程序级别(EAR 文件)使用 AAT 时,将使安全性角色与为应用程序的嵌入式模块定义的安全性角色同步。如果安全性角色是手工添加至 EAR 文件的,则当保存该文件时可以自动除去安全性角色(如果嵌入式模块不引用该角色或该角色与现有角色有冲突)。在这种情况下,应除去手工添加的角色,但是所有具有相同名称的角色也将会除去。如果仍在嵌入式模块文件中引用该角色,则当保存文件时,将再次自动添加该角色。如果在嵌入式模块文件中添加了重复的角色,则用户应删除具有相同名称的所有角色并再次手工读取正确的角色。
2. 当使用 AAT 来修改会话 bean 时,如果更改 bean 类型(有状态与无状态),则在对同一bean 进行任何其它更改之前,必须单击应用。否则,GUI 上的各种输入字段都会变成不活动的。您将知道它们处于不活动状态,因为它们在 GUI 上已变成灰色。在进行了所有更改之后,再次单击应用来提交更改。
3. 当在应用程序汇编工具中为应用程序客户机模块配置资源引用时,类型字段下拉菜单将 javax.resource.cci.ConnectionFactory 列示为可用的资源引用。此类型不受 J2EE 应用程序客户机运行时支持。受支持的类型是:
o java.net.URL
o javax.mail.Session
o javax.jms.QueueConnectionFactory
o javax.jms.TopicConnectionFactory
o javax.jms.Queue
o javax.jms.Topic
o javax.sql.DataSource
应用程序服务器
1. 当启动服务器时,忽略在服务器的 SystemOut.log 文件中发生的 NMSV0715W 消息。这些消息由其它服务器中的企业 bean 的单元或节点级别配置的 EJB 命名绑定项导致。WebSphere Application Server 运行时应忽略这些项,但改为用 NMSV0715W 消息来标记它们。
数据访问
1. 当创建新的 Websphere Application Server 实例时,将把文件 /QIBM/ProdData/WebAS5/Base/config/templates/system/jdbc-resource-provider-templates.xml 的副本复制到目录 /QIBM/UserData/WebAS5/Base/<instance_name>/config/templates/system/ 中。这是一个可修改的 xml 文件,它为从数据源获取的 JDBC 连接设置缺省定制属性值。将把此文件的 ProdData 版本复制到 UserData 目录,所以新的数据源将使用正确的缺省值。将使用以下格式重命名目录 /QIBM/UserData/WebAS5/Base/<instance_name>/config/templates/system/ 中现有的 jdbc-resource-provider-templates.xml:
jdbc-resource-provider-templates_<ISO date>.BAK
其中 <ISO date> 将具有格式“20030128”。
需要将先前对此文件作出的任何用户修改合并到 jdbc-resource-provider-templates.xml 文件的新版本中。
Java 消息传递服务
1. 当使用 Java 消息服务(JMS)时,会发生类似于以下内容的信息性消息:
2. [10/31/02 9:13:20:438 EST] 6a55451c ConnectionFac I J2CA0107I: Component-managed authentication
3. alias not specified for connection factory or datasource
JMS$TradeBrokerQCF$JMSManagedConnection@224691469
如果命名的连接生成器以 JMSManagedConnection@nnnn 结束,其中 nnnn 是多位数字,则可以忽略该信息性消息。具有此类型的名称的连接生成器由 JMS 服务器在内部创建,它不需要组件管理的认证别名。
XML
1. 在 WebSphere Application Server 4.0.x 上运行的包含 Xerces 解析器例程的程序可能在 WebSphere Application Server 5.0 上不能运行。
2.0.0 以前的 Xerces 的版本,包括随 WebSphere Application Server 4.0.x 一起交付的版本,都不符合 J2EE1.3。为了满足 J2EE1.3 证明约束(DOM2/SAX2/JAXP1.1(没有更高版本)),WebSphere Application Server 5.0 需要使用 XML4J4.0.0(Xerces 2.0 + 缺陷修订)。
在 2.0.0 以前的 Xerces 版本和 2.2 以前的 Xalan 版本中,在 xerces.jar 和 xalan.jar 文件内捆绑 DOM、SAX 和 JAXP API。在最新版本中,已将这些非 apache XML API 移至 XML 公共 apache 项目中的单独 JAR 文件中。规范需要这些公共 XML API,这些 API 包含在 WebSphere Application Server 5.0 j2ee.jar 文件内。
问题的原因是类装入器行为将 J2EE1.3 需要的类与旧的 Xerces 实现的类混合在一起。
要解决此问题,使用随 WebSphere Application Server 5.0 一起交付的版本。
样本应用程序
1. 如果应用程序服务器名称不是 server1,则当运行“点对点”和“发布和预订”样本时,您将获取错误。除完成配置和运行步骤以外,还将需要完成以下步骤来更正该问题。
关于“发布预订”样本:
a. 在应用程序汇编工具中打开 ear 文件 /QIBM/UserData/WebAS5/Base/<your-instance>/installableApps/MDBSamples.ear。
b. 单击应用程序客户机 -> PSSampleClient -> 资源环境引用
c. 对于每个资源(即 jms/news、jms/sport 和 jms/weather),单击绑定选项卡。
d. 编辑 JNDI 名称,以便将 server1 更改为 <your-server-name>,其中 <your-server-name> 是服务器的名称。
关于“点对点”样本:
e. 在应用程序汇编工具中打开 ear 文件 /QIBM/UserData/WebAS5/Base/<your-instance>/installableApps/MDBSamples.ear。
f. 单击应用程序客户机 -> PtoPSampleClient -> 资源环境引用
g. 对于每个资源(即 jms/Q1 和 jms/Q2),单击绑定选项卡。
h. 编辑 JNDI 名称,以便将 server1 更改为 <your-server-name>,其中 <your-server-name> 是服务器的名称。
2. 如果实例未在使用缺省端口作为“自举”和 Soap 连接器端口,则当将 launchclient 命令用于“点对点”和“发布和预订”样本时,需要附加参数来覆盖缺省端口,附加参数是:
-CCBootstrapPort=<boot strap port>
-CCsoapConnectorPort=<soap connector port>
3. 除英语以外的语言的样本图库字体可能偏小,这取决于您在使用的浏览器。要解决此问题,增加浏览器字体设置。
4. 已知 PetStore 问题
a. 创建新帐户会导致重复的密钥异常。在“宠物商店”中,可以用几种方式来创建新帐户。如果从“宠物商店”屏幕选择了“帐户”,则在用户注册之前,将对他们显示注册或创建新帐户的选项。如果在此流中创建新帐户,由于重复的密钥异常,它将失败。要创建新帐户,从“宠物商店”屏幕选择“注册”,可以创建此方案中的新帐户。
b. 当创建新帐户时,未比较密码。当创建新帐户时,必须提供一个密码。未将第一个“密码”字段与第二个“密码(重复)”字段进行比较来获取匹配。
c. 未正确地显示帐户信息。当选择“帐户”时或检出过程中,将显示帐户信息。将交换名和姓,“信用卡名称”显示到期日期,而“到期日期”显示错误的日期。
d. “宠物商店商品”屏幕显示一副画,画中有要购买的产品以及“定价”和“您的标价”。定价高于您的标格。已添加具有更高“订价”且已添加至购物车的商品。
e. 当将一个商品添加至购物车时,将以初始数量 1 添加它。可以在购物车中将该数量调整至更高的数目。如果将相同商品重新添加至购物车,则已调整的数量将重新设置为 1。
f. 大量地重新填充“宠物商店”数据库会由于内部服务器错误而失败(HTTP 500 — 不能显示该页面)。避免使用此选项。
Web 服务
UDDI4J
1. 通用描述、发现和集成 4J(UDDI4J)是一个类库,该类库提供用于与 UDDI 注册表交互作用的 API。
为 /QIBM/ProdData/WebAS5/Base/lib 子目录中的 UDDI4J 提供了两个类库:
o uddi4j.jar 支持 UDDI API 版本 1。提供此类库是为了获取与已使用 UDDI 版本 1 编写的应用程序的兼容性,反对使用此类库中的类。
o uddi4jv2.jar 支持 UDDI 规范版本 2。使用 UDDI4J 的任何应用程序应使用此库中的类来与符合 UDDI 版本 2 的注册表通信。
安全性
1. 以下内容仅适用于定制“信任关联拦截器”(TAI)实现。提供的 WebSeal 实现不受影响。
已将一个方法添加至 com.ibm.websphere.security.WebSphereBaseTrustAssociationInterceptor 类:
abstract int init(java.util.properties)
此方法的目的是将管理控制台的“信任关联设置”面板中的一组完整属性发送至您的实现供您使用。然后,可以在您的实现中使用该组属性。您不再需要使用文件进行配置。
注意:当前,您需要实现此方法,即使您正在使用属性文件。如果仍在通过设置 com.ibm.websphere.security.trustassociation.yourImplType.config 属性来使用属性文件,可以按以下方式实现新的 init 方法:
public int init (java.util.Properties props)
{
//get the props file name
获取属性文件的代码可以不同。此样本使用 com.ibm.websphere.security.trustassociation.types 属性来定义属性文件。
String type = props.getProperty("com.ibm.websphere.security.trustassociation.types");
String propsfile=props.getProperty("com.ibm.websphere.security.trustassociation."+type+".config");
if (propsfile != null)
return init(propsfile); //call the init(String) method which should have already been implemented
else
return -1;
}
建议的方法是使用“信任关联设置”面板或脚本编制来以您设置所有 TAI 相关属性的相同方式来设置您的实现所需要的配置数据。然后,一起设置所有“信任关联”相关属性。所有这些属性都将被传送至 init(java.util.Properties) 方法,以便可以在需要时使用它们。
2. 当使用 Lotus Domino LDAP 服务器时,需要设置有效的基本“专有名称”(DN)。它并不像文档所说明的那样是可选的。没有基本 DN,您就无法使用 Domino Server 启用安全性。如果设置在两端不匹配,当使用 Domino 时在 WebSphere 配置中具有基本 DN 可以影响与其它 Domino 服务的互操作性。
3. 当启用安全性时,管理控制台“表单”登录面板仅接受由数字或字母组成的用户标识。不允许使用诸如标点符号或其它符号的字符。这是临时限制,限于管理控制台和系统管理子系统。WebSphere 安全性子系统不具有此限制。
要解决此问题,当启用安全性时,使用仅由字母和数字组成的管理用户标识。
4. IBM Java 安全套接字扩展(JSSE)当前在 applet 内不受支持。
5. 如果将 Internet Explorer 的某些版本与 HTTPS 配合使用,当访问应用程序时,可能发生以下问题:
1. 当发生从 HTTP 至 HTTPS 的自动重定向时,“页面无法显示”消息显示在浏览器中。
2. 当直接使用 HTTPS 连接来访问应用程序时,可能会将该连接定向至 HTTP 连接。显示一条消息,指示页面同时包含安全项和非安全项。单击是会导致显示“页面无法显示”消息。
要解决此问题,禁用 keep-alive 支持:
3. 打开管理控制台。
4. 单击服务器 > 应用程序服务器 > 服务器 > Web 容器 > HTTP 传送。
5. 单击端口 9443 或用于 HTTPS 连接的任何端口的主机。
6. 单击定制属性。
7. 单击新建以定义新的属性。
8. 在名称字段中输入 MaxKeepAliveConnections。
9. 在值字段中将值设置为 0(零)。
10. 单击应用或确定。
11. 单击保存。
6. 在 app.policy 和 was.policy 文件中指定的授权项必须已定义代码库。如果指定了授权项而没有代码库,则未正确装入策略文件,且应用程序可能失败。如果目的是将许可权授予所有应用程序,则可以使用“file:${application}”作为授权项中的代码库。
7. 当前,安全性管理器不对非系统线程检查 modifyThread 和 modifyThreadGroup 许可权。
可以使用 Web 应用程序和 EJB 应用程序代码来创建线程并访问以下线程类方法:stop、suspend、resume、setPriority、setName 和 setDaemon。
允许 Web 和 EJB 应用程序代码创建或修改线程可能对容器的其它组件有负面影响,并可能影响容器管理企业 bean 生命周期和事务的能力。
8. 当使用 LocalOS UserRegistry 时,Web 客户机证书当前不受支持。然而,Java 客户机证书认证对于 LocalOS 不起作用。Java 客户机证书认证将证书域名的第一个属性映射至 LocalOS UserRegistry 中的用户标识。即使 Java 客户机证书工作正常,SystemOut.log 文件中仍显示以下错误:
SECJ0337E:mapCertificate 方法不受支持
该错误用于 Web 客户机证书,但也对 Java 客户机证书显示。对于 Java 客户机证书,可以忽略此错误。
9. 当在“CSIv2 认证出站”面板上指定标识断言时,还必须在“CSIv2 认证出站”面板上选择支持或需要基本认证。这允许提交服务器标识和标识记号,以便接收服务器可以信任发送服务器。不指定支持或需要基本认证,则不能建立信任,且标识断言将失败。
10. 当定义 JAAS 登录配置项时,不要在别名中使用正斜杠字符(/)。JAAS 登录配置解析器不能处理正斜杠字符。
11. 如果在管理控制台中导航至安全性 > JAAS 配置 > 应用程序登录 > 应用程序登录配置,并尝试在该面板上修改现有的别名,则单击应用代替确定来保存更改。单击确定不会保存 security.xml 文件中的新更改。
12. “信息中心”文章“开发定制用户注册表”指示通过设置属性 WAS_UseDataSource,定制注册表可以使用数据源。这是不正确的,此配置不受支持。您仍可以使用 JDBC 连接来连接至数据库。
13. javax.security.auth.Subject.getSubject(java.security.AccessControlContext) 在 AccessController.doPrivileged() 内不起作用。可以用 Subject.getSubject() 调用在 Subject.doAs() 块内检索主题。然而,如果在 Subject.doAs() 内有 AccessController.doPrivileged(),则此方法不起作用。在以下示例中,s1 等于 s,但 s2 为空:
AccessController.doPrivileged(...) 调用不仅会截断“主题”传播,而且还会减少 PrivilegedAction 的许可权。如果为“主题”中的主体定义了 JAAS 安全性策略,则 PrivilegedAction 不运行。
14. AccessController.doPrivileged() not only truncate the Subject propagation, also reduce the
15. permissions, it does not includes the JAAS security policy defined for the principals in the Subject.
16. Subject.doAs(s, new PrivilegedAction() {
17. public Object run() {
18. System.out.println("Within Subject.doAsPrivileged()");
19. Subject s1 = Subject.getSubject(AccessController.getContext());
20. AccessController.doPrivileged(new PrivilegedAction() {
21. public Object run() {
22. Subject s2 = Subject.getSubject(AccessController.getContext());
23. return null;
24. }
25. });
26. return null;
27. }
28. });
参见“信息中心”,以获取关于如何使用 WSSubject 代替“主题”来使 WebSphere Application Server 凭证与上下文的线程关联的信息。
29. 管理控制台“轻量级第三方认证”帮助面板不正确。使用此页面来配置“轻量级第三方认证”(LTPA)设置。
要查看此管理控制台页面,单击安全性 > 认证机制 > LTPA。如果您是第一次配置安全性,则仅需要密码。一旦输入密码,则单击应用。单击单一注册(SSO)并输入域名。确保启用了 SSO。单击应用。要完成安全性设置,确保设置了适当的注册表,并从“全局安全性”面板中单击应用。当启用了安全性且其中的任何属性发生更改时,转至“全局安全性”面板并单击应用来验证更改。
配置选项卡
生成密钥
指定服务器是否将生成新的 LTPA 密钥。
当使用 LTPA 作为认证机制首次打开安全性时,将使用在面板中输入的密码自动生成 LTPA 密钥。如果需要使用先前设置的密码来生成一组新的密钥,单击生成密钥。如果使用新密码,则不要单击此按钮。一旦输入新密码并单击确定或应用,将生成一组新的密钥。无论何时生成一组新的密钥,都将在您保存它们之后才使用它们。
导入密钥
指定服务器是否将导入新的 LTPA 密钥。
要在跨多个 WebSphere 域(单元)在 WebSphere 产品中支持单一注册(SSO),在这些域之间共享 LTPA 密钥和密码。可以使用导入密钥按钮来从其它域导入 LTPA 密钥。应事先已将 LTPA 密钥从单元之一导出至文件。为了导入一组新的 LTPA 密钥,输入适当的密码和 LTPA 密钥所在的文件名。仅单击导入密钥,不要单击确定或应用。
导出密钥
指定服务器是否将导出 LTPA 密钥。
要在跨多个 WebSphere 域(单元)在 WebSphere 产品中支持单一注册(SSO),在这些域之间共享 LTPA 密钥和密码。可以使用导出密钥按钮来将 LTPA 密钥导出至其它域。
要导出 LTPA 密钥,确保系统正在运行,并启用了安全性且使用 LTPA。在密钥文件名字段中输入文件名,并单击导出密钥。加密的密钥将存储在指定的文件中。
密码
指定密码来加密或解密 LTPA 密钥。当将这些密钥导入其它 WebSphere Application Server 管理域配置(如果有的话)以及为 Domino Server 配置 SSO 时使用此密码。
一旦生成或导入了密钥,将使用它们来加密或解密 LTPA 记号。无论密码何时更改,当单击确定或应用时将自动生成一组新的 LTPA 密钥。仅当您保存时才将使用这组新的密钥。
确认密码
指定用来加密或解密 LTPA 密钥的确认密码。
当将这些密钥导入其它 WebSphere Application Server 管理域配置(如果有的话)以及为 Domino Server 配置 SSO 时使用此密码。
超时
指定 LTPA 记号将到期的时间段(分钟)。确保此时间段比在“全局安全性”面板中配置的高速缓存超时长。
密钥文件名
指定在导入或导出密钥时使用的文件名。
输入全限定密钥文件名,并单击导入密钥或导出密钥。
30. 当创建“安全性中心”中的“Java 认证和授权服务”(JAAS)登录配置项时将把它传播至服务器运行时,而不是在保存配置时传播。
然而,未从服务器运行时中除去已删除的 JAAS 登录配置项。要除去此项,必须保存新配置,并停止和重新启动服务器。
31. 关于为信任关联开发定制拦截器需要进行下列改正:“此任务的步骤”的步骤 2 应该是:通过在管理控制台的“信任关联”面板中设置属性来配置信任关联。这涉及在“拦截器”面板中设置实现类文件名以及在“定制属性”面板中设置您的实现所需要的属性。在配置属性后,如果已将 WebSphere 提供的类 com.ibm.websphere.security.WebphereBaseTrustAssociationInterceptor 设置为子类并实现了所有必需的方法,则将把这些属性传送至您的实现。有关此内容的更多信息,参见“使定制拦截器成为可配置的”部分。“使定制拦截器成为可配置的”部分应该是:要允许配置定制拦截器,将 WebSphere 提供的类 com.ibm.websphere.security.WebSphereBaseTrustAssociationInterceptor 设置为子类并提供下列方法的实现:
· abstract public int init(String propsfile);
在 WebSphere Application Server V5 中,可以使用管理控制台或脚本编制来设置您的实现所需要的属性。因此,不需要使用文件也能获取任何 TAI 配置信息。建议的方式是在“信任关联设置”面板中而不是在文件中设置所有必需的属性。然后,需要按如下所述实现 init(java.util.Properties) 并获得此方法(init(String propsfile))的哑实现,例如:return -1。
注意:在 5.0 中,仅调用 init(java.util.Properties) 方法。因此,如果仅实现此方法(init(String)),则不实现 init(java.util.Properties) 方法就无法编译或使用先前的实现版本。
init 方法读取为拦截器指定的配置文件。该配置文件是通过使用属性在 trustedservers.properties 文件中指定的,其名称由模式 com.ibm.websphere.trustassociation.<proxyname>.config 确定。例如,称为 myProxy 的代理的属性名是 com.ibm.websphere.trustassociation.myproxy.config,对于代理类型 webseal36,属性名是 com.ibm.websphere.trustassociation.webseal36.config。属性的值是拦截器的配置文件的名称。
· abstract public int init(java.util.Properties props);
这是 WebSphere Application Server 的新的 abstract 方法。abstract 方法的目的是将“信任关联设置”面板中的一组完整属性发送至您的实现。建议不要使用文件进行配置。添加此方法已导致先前的客户 TAI 实现中断,因为它们未实现此方法。在解决此问题之前,应由定制 TAI 实现程序来实现此方法。如果正在使用先前的 TAI 实现并且仍要使用文件进行配置,则类似于以下示例来实现此方法:
· public int init (java.util.Properties props)
· {
· //get the props file name. This depends on how you set up the config file
· // name property. In this sample we use the types property as used in the
· //previous versions.
· String type = props.getProperty("com.ibm.websphere.security.trustassociation.types");
· String propsfile =
· props.getProperty("com.ibm.websphere.security.trustassociation."+type+".config");
· if (propsfile != null)
· return init(propsfile);
· //call the init(String) method which should have already been implemented
· else
· return -1;
· }
· abstract public void cleanup(); 该 cleanup 方法执行拦截器的必要终止工作。
32. 以下是几条发行说明,有关 WebSphere Application Server 5.0 如何暴露 JAAS Subject 对象和 WSPrincipal 接口。
. 由 WSLoginModuleImpl 实例和 WSClientLoginModuleImpl 实例生成的 Subject 对象包含实现 WSPrincipal 接口的主体。WSPrincipal 对象的 getCredential() 方法返回实现 WSCredential 接口的对象。还可以在主题实例的 PublicCredentials 列表中找到 WSCredential 对象实例。建议从 PublicCredentials 列表中而不是使用 getCredential() 方法来检索 WSCredential 对象。
a. WSSubject 类的 getCallerPrincipal() 方法返回一个字符串来表示调用程序的安全性标识。注意,该返回类型不同于 EJBContext 接口的 getCallerPrincipal 方法的返回类型,它是 java.security.Principal。“信息中心”文章“开发自己的 J2C 主体映射模块”错误地声明 WSSubject getCallerPrincipal() 方法返回 com.ibm.websphere.security.auth.WSPrincipal 对象。
b. 由 J2C DefaultPrincipalMapping 模块生成的“主题”包含资源主体和 PasswordCredential。在当前的实现中,资源主体表示调用程序。
33. Java 2 安全性在 WebSphere Application Server V5 中受支持,但在缺省情况下禁用此安全性。然而,如果在配置安全性时也启用全局安全性,则将自动启用 Java 2 安全性。尽管因为启用 WebSphere 全局安全性的副作用而自动启用该安全性,但可以选择禁用该安全性。可以相互独立地配置 Java 2 安全性和 WebSphere 全局安全性。而且,禁用全局安全性不会自动禁用 Java 2 安全性。您需要显式地禁用 Java 2 安全性。
如果应用程序或应用程序使用的第三方的库未准备好 Java 2 安全性,则启用 Java 2 安全性会导致问题。可以在 SystemOut.log、SystemError.log 或跟踪日志中将这些问题标识为 Java 2 安全性 AccessControlException。如果对应用程序的 Java 2 安全性是否准备好有疑问,则开始就禁用 Java 2 安全性来安装应用程序,并验证它是否正常工作。
如 J2EE 1.3 规范中所述,WebSphere Application Server 支持建议的 Java 2 安全性许可权策略。此限制性策略是缺省策略。可以授予附加许可权,但不能作出更多限制,因为将从 WebSphere Application Server 内部生成 AccessControlException。有关 Java 2 安全性和动态策略的更多信息,参见文档。
34. 当使用管理控制台或 wsadmin 进行应用程序安装时,步骤“对 1.x EJB 的未受保护的方法选择方法保护”之一允许通过将“全部拒绝”角色分配给 EJB 1.x 的所有未受保护的方法来保护它们。但是,未将“全部拒绝”角色分配给未受保护的方法,即使用户指定要这样做。要解决此问题,使用应用程序组件工具首先将“全部拒绝”或适当的角色分配给所有未受保护的方法,然后安装应用程序。
35. 必须在指定了 JAAS 配置文件的情况下调用 Java 客户机程序,该客户机程序使用 Java 认证和授权服务(JAAS)进行认证。WebSphere 产品提供缺省 JAAS 配置文件 wsjaas_client.conf,该文件在 <USER_INSTALL_ROOT>/properties 目录中。按如下方式在 /QIBM/ProdData/WebAS5/Base/bin/launchClient 中设置此配置文件:
-Djava.security.auth.login.config={USER_INSTALL_ROOT}/properties/wsjaas_client.conf
如果正在运行 Java 瘦客户机应用程序并且未使用 launchClient 来调用该 Java 客户机应用程序,则确保使用 -Djava.security.auth.login.config 标志将适当的 JAAS 配置文件传送至 Java 虚拟机。
36. 当使用管理控制台或 wsadmin 进行应用程序安装时,步骤“对 1.x EJB 的未受保护的方法选择方法保护”之一允许通过将“全部拒绝”角色分配给 EJB 1.x 的所有未受保护的方法来保护它们。但是,未将“全部拒绝”角色分配给未受保护的方法,即使用户指定要这样做。
要解决此问题,使用应用程序组件工具首先将“全部拒绝”或适当的角色分配给所有未受保护的方法,然后安装应用程序。
日志分析器
1. 第一次启动日志分析器时或在删除用户的日志分析器首选项文件后,以下消息显示在日志分析器的外壳程序窗口中:
不能打开 waslogbrsys 的输入流
此消息是一条信息性消息。因为此消息对日志分析器的执行没有影响,所以可忽略此消息。
2. 对于 Windows 平台,只可以使用操作系统的缺省因特网浏览器来访问日志分析器帮助文件。不能使用任何因特网浏览器来访问这些帮助文件,尽管存在一些选项允许您选择 Netscape 或 Internet Explorer 和设置浏览器的位置以显示 HTML 帮助文件。
对于 UNIX 平台,通过在工具的首选项对话框中显式设置浏览器的可执行文件的位置,可以使用任何因特网浏览器(如 Netscape Navigator)来访问这些帮助文件。未使用表面上允许选择 Netscape 或 Internet Explorer 作为浏览器来显示 HTML 帮助文件的选项。
要在 UNIX 平台上指定浏览器:
在日志分析器工具中,选择文件 > 首选项。在日志分析器的首选项对话框中,从常规文件夹中选择帮助。在浏览器位置字段中设置因特网浏览器的可执行文件的路径。
工作量管理
1. 当调用用于运行瘦应用程序客户机的 Java 命令时,使用下列参数:
对于 Windows 平台:-Xbootclasspath/p:%WAS_BOOTCLASSPATH%
对于 UNIX 平台:-Xbootclasspath/p:$WAS_BOOTCLASSPATH
对于 iSeries 平台:$JAVA_FLAGS_EXT
在安装 WebSphere Application Server 客户机时,将在 setupClient.bat(Windows 平台)或 setupClient.sh(UNIX 平台)中设置 WAS_BOOTCLASSPATH 环境变量。
对于 iSeries WebSphere Application 客户机安装,使用 setupClient 脚本来设置 JAVA_FLAGS_EXT 环境变量。
在安装 WebSphere Application Server 时,将在 setupCmdLine 脚本中设置 WAS_BOOTCLASSPATH 环境变量。
性能数据和工具
1. Java 虚拟机(JVM)数据类别中的总内存计数器是 BoundedRangeStatistic 类型。然而,在此发行版中未实现 upperBound 和 lowerBound。
本地语言版本问题/限制
1. 对于包含变音符号(例如,德语“fur”,其中,“u”包括一个元音变化)的 Latin 1 词汇,在管理控制台中的帮助搜索不会返回搜索结果。要解决此问题,在搜索词汇中使用字符的十进制表示法(例如“für”)。
2. 以下是工作站组件的已知问题或限制:
a. 不能通过启动板访问繁体中文和德语的自述文件和 PDF 安装。可以通过任何 Web 浏览器查看这些文件。
繁体中文的自述文件位于:
<cd drive>\readme\readme_zh_tw.html
繁体中文的安装 PDF 位于:
<cd drive>\doc\installguide_zh_tw.pdf
德语的自述文件位于:
<cd drive>\readme\readme_de.html
德语的安装 PDF 位于:
<cd drive>\doc\installguide_de.pdf
b. “应用程序组件工具”、“应用程序资源客户机工具”和“Tivoli 性能查看器”的帮助链接显示文件的英语版本。要解决此问题,将首选语言版本的路径更改为分别显示适当的语言(可能的话,包括语言列表)列表(如果路径不相同)。
c. 以下步骤是一些解决方法,用于在本地语言版本操作系统上评估 WebSphere Application Server 和 WebSphere Application Server Network Deployment V5。
§ Windows NT:
1. 从 NT 控制面板打开区域设置。
2. 在区域设置中将设置更改为英语(美国),然后选择设置为系统默认地区复选框。
3. 在输入地区中添加英语(美国),并将“默认输入地区设置”为英语。
4. 在区域设置属性窗口中单击确定。
5. 使用英语语言环境设置重新启动机器。
6. 安装 WebSphere Application Server V5。
注意:在完成评估之前,不要将语言环境设置更改为原始的非英语设置。
§ Windows 2000:
1. 从 Windows 2000 控制面板中打开区域选项。
2. 在常规中将设置您的区域设置(位置)更改为英语(美国),单击设置默认值,然后将系统区域设置更改为英语(美国)。
3. 在输入法区域设置中添加英语(美国),并将输入法区域设置的默认值设置为英语。
4. 在区域选项窗口中单击确定。
5. 使用英语语言环境设置重新启动机器。
6. 安装 WebSphere Application Server V5。
注意:在完成评估之前,不要将语言环境设置更改为原始的非英语设置。
§ AIX 4.3.3 或 AIX 5.1:
§ 打开终端,并在安装 WebSphere Application Server V5 之前运行以下命令。
# export LANG=en_US
§ 注意:每次打开新的终端时,都必须调用以上命令。
§ Solaris 操作环境 8:
§ 打开终端,并在安装 WebSphere Application Server V5 之前运行以下命令。
§ # LANG=en_US
# export LANG
§ 注意:每次打开新的终端时,都必须调用以上命令。