connect refusedion refused 怎么解决

Sun GlassFish Enterprise Server 的已知问题和限制 (Sun GlassFish Communications Server 2.0 发行说明)
&& 第 4 章
Sun GlassFish Enterprise Server 的已知问题和限制Sun GlassFish Communications Server 2.0 发行说明第 4 章
Sun GlassFish Enterprise Server 的已知问题和限制
本章介绍 Sun GlassFish Enterprise Server 2.1.1 软件的已知问题和相应的解决方法。这些问题也会特别地影响到 Sun GlassFish Enterprise Server 2.1 上构建的 Communications Server。如果汇总说明未指明特定平台,则所有平台都可能出现此问题。本部分信息按以下内容进行组织:
本节介绍已知的管理问题和相应的解决方法。
Communications Server 不检测与群集的心跳端口的冲突(问题号 1967)
创建群集时,Communications Server 会随机分配一个介于 1026 到 45556 之间的心跳端口。对于默认群集(由 Communications Server 安装创建的默认群集),会在 0 到 45556 之间选择一个随机数。群集创建过程不会精确检测心跳端口是否正被另一个服务使用。
如果自动群集创建配置选择了一个心跳端口,该端口与正在使用它的另一个服务冲突,请将群集心跳端口更新为系统未使用的端口。
要更改群集的心跳端口,请使用下面的 asadmin 命令:
asadmin set 群集名称.heartbeat-port=新端口号
域创建操作在运行 64 位 Linux 的 NFS 服务器上停止(问题号 1961)
当尝试在安装了网络文件系统 (NFS) 的文件系统(NFS 服务器运行 64 位 Linux)上创建域时,asadmin create-domain 命令可能会失败。
没有已知的解决方法。
轮转大型日志文件时发现性能下降 (6718611)
在轮转大型日志文件时,发现响应时间稍有增加。
可以通过修改日志程序设置中的&文件轮转限制&和&文件轮转时间限制&值,最大程度地减少性能降低情况。这些属性的值取决于您的应用程序和环境。
无法对 IBM MQ 部署通用 RA 资源适配器(问题 6605)
对 IBM Message Queue 产品部署通用 RA 适配器失败。server.policy 文件中授予的权限如下所示。
permission java.util.logging.LoggingPermission "control";
permission java.util.PropertyPermission "*", "read,write";
将 server.policy 文件中的权限更改为如下所示:
grant codeBase
"file:${com.sun.aas.installRoot}/lib/install/applications/adminapp/-" {
permission java.util.logging.LoggingPermission "control";
独立实例有时会从其他实例获取文件 (6698604)
在某些情况下,安装在 DAS 上的预期要与特定实例同步的文件实际上会发送到其他实例。
没有已知的解决方法。
来自 start-cluster 命令的启动消息太详细 (6728317)
即使在启动过程中非关键组件失败,asadmin start-cluster 命令也会显示过多消息。请参见非关键元素(与群集中的实例相关)失败时的以下示例命令输出:
./asadmin start-cluster --port 9898 cluster1
Please enter the admin user name&admin
Please enter the admin password&
The clustered instance, instance2, was successfully started.
error 0 [#|T14:58:16.496+0200|WARNING|sun-appserver9.1|javax.jms|
_ThreadID=10;_ThreadName=
_RequestID=90bbbe3a-d654-e317d945a4a;|[C4003]:
Error occurred on connection creation [localhost:37676]. - cause:
java.net.ConnectException: Connection refused|#]
error 1 [#|T14:58:17.517+0200|WARNING|sun-appserver9.1|javax.jms|
_ThreadID=10;_ThreadName=
_RequestID=90bbbe3a-d654-e317d945a4a;|[C4003]:
Error occurred on connection creation [localhost:37676]. - cause:
java.net.ConnectException: Connection refused|#]
error 2 [#|T14:58:30.596+0200|WARNING|sun-appserver9.1|
javax.enterprise.system.container.ejb|
_ThreadID=13;_ThreadName=pool-1-thread-4;TimerB
_RequestID=-df06-4a3e-902a-0c40b4b6
|EJB5108:Unable to initialize EJB Timer Service.
The likely cause is the database has not been
started or the timer database table has not been created.|#]
error 3 [#|T14:58:32.512+0200|WARNING|sun-appserver9.1|
javax.enterprise.resource.resourceadapter|_ThreadID=10;_ThreadName=
__CallFlowP_RequestID=90bbbe3a-d654-e317d945a4a;|
RAR5005:Error in accessing XA resource with JNDI name [__CallFlowPool] for recovery|#]
The clustered instance, instance1, was successfully started.
error 0 [#|T14:58:21.117+0200|WARNING|sun-appserver9.1|
javax.enterprise.system.container.ejb|
_ThreadID=13;_ThreadName=pool-1-thread-4;TimerB
_RequestID=ac-494b6a9fb5;
|EJB5108:Unable to initialize EJB Timer Service. The likely cause is the database has
not been started or the timer database table has not been created.|#]
error 1 [#|T14:58:23.106+0200|WARNING|sun-appserver9.1|
javax.enterprise.resource.resourceadapter|
_ThreadID=10;_ThreadName=__CallFlowP
_RequestID=b41d76fa--a2ae-83bf242d3e7a;
|RAR5005:Error in accessing XA resource with JNDI name [__CallFlowPool] for recovery|#]
Command start-cluster executed successfully.
没有已知的解决方法。可忽略这些(异常)消息。
如果 domain1 不存在,package-appclient 脚本无法运行 (6171458)
默认情况下,在 as-install/lib/package-appclient.xml 中有一个用于 domain1(由 asenv.conf 来指向)的 AS_ACC_CONFIG 变量的硬编码值。如果删除 domain1 并创建新域,将不会用新域名更新 AS_ACC_CONFIG 变量,从而导致 package-appclient 脚本失败。
执行以下操作之一:
保持 domain1 不变,围绕它创建其他域。
删除 domain1 并用新域名替换 as-install/lib/package-appclient.xml 中用于 domain1 的硬编码值。
如果 domain1 不存在,则每次创建新域时,都必须执行此操作。
不支持使用其他 JMX 代理启动 Application Server (6200011)
J2SE 1.4.x, 5.0 或更高版本可以在 Application Server 上进行配置。J2SE 5.0 平台的完整功能是可以启动 JMX 代理。在服务器启动时,如果您明确设置了系统属性,此功能将被激活。
示例值包括:
name="com.sun.management.jmxremote" value="true"
name="com.sun.management.jmxremote.port" value="9999"
name="com.sun.management.jmxremote.authenticate" value="false"
name="com.sun.management.jmxremote.ssl" value="false"
在配置了 JMX 属性并启动服务器之后,将在 Application Server 虚拟机中启动新的 jmx-connector 服务器。此过程的副作用是会对管理功能造成不利影响,并且 Application Server 管理控制台和命令行界面可能会产生异常结果。出现此问题的原因在于内置 jmx-connector 服务器与新的 jmx-connector 服务器之间存在一些冲突。
如果使用 jconsole(或任何其他 JMX 兼容客户机),请考虑重新使用标准的 JMX Connector Server,它在 Application Server 启动时启动。
当服务器启动时,server.log 中会出现类似于如下所示的一行。您可以连接到其中指定的 JMXService URL,并在成功提供证书后执行相同的管理/配置操作,例如:
[#|T17:49:08.203-0800|INFO|sun-appserver-ee8.1|
javax.enterprise.system.tools.admin|_ThreadID=10;|ADM1501:
Here is the JMXServiceURL for the JMXConnectorServer:
[service:jmx:rmi:///jndi/rmi://hostname:8686/management/
rmi-jmx-connector]. This is where the remote administrative
clients should connect using the JSR 160 JMX Connectors.|#]
文档中未介绍 .asadmintruststore 文件 (6315957)
文档中未介绍 .asadmintruststore 文件。如果服务器管理员的主目录中不包含此文件,在升级该服务器上的某些应用程序时可能会出现严重错误。
如果可能,应该由安装服务器的用户运行 asadmin start-domain domain1 命令。
如果不是由该用户运行的,应将 .asadmintruststore 从安装用户的主目录移动或复制到运行用户的主目录中。
请注意,如果将该文件从安装用户的主目录移动(而非复制)到运行用户的主目录,可能会出现错误 10428 和 6312869 所述的应用程序升级问题,原因是升级/安装用户(通常是 Java ES 中的超级用户)的主目录中不再具有 .asadminstruststore 文件。
由于在访问 JMS 代理时超时,无法启动群集实例 (6523663)
Communications Server 群集实例的默认 MQ 集成模式为 LOCAL。如果将 Communications Server 安装在长(即 "not short")位置 (PATH) 上,当群集实例启动时,imqbrokerscv.exe 会崩溃。此问题是 imqbrokersvc 中的内存分配问题。
必须将群集实例的 JMS 服务类型从默认的 LOCAL 更改为 REMOTE。在此配置中,所有实例都指回 DAS 代理。请遵照下面的说明,以 REMOTE 模式配置群集。
注 & 使用 REMOTE 模式时,所有实例都使用一个代理 (DAS),因此当 Communications Server 群集启动时,不会创建任何代理群集。有关更多信息,请参见
一页上 4.1 节第 iii 部分中的&自动群集&。上述功能将不可用!
使用命令行开始之前根据您的环境修改端口和密码文件。请注意,在以下说明中,群集名称为 racluster,DAS 管理端口为 5858,DAS JMS 端口为 7676。
修改群集配置,将 JMS 类型更改为 REMOTE。
as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \
as-install/bin/password_file racluster.jms-service.type=REMOTE
创建对应于 DAS JMS 主机的 JMS 主机。
as-install/bin/asadmin.bat create-jms-host --port 5858 --user admin --passwordfile \
as-install/bin/password_file --target racluster --mqhost localhost --mqport 7676 \
--mquser admin --mqpassword admin dashost
将默认的 JMS 主机设置为在上一步骤中创建的 DAS JMS 主机。
as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \
as-install/bin/password_file racluster.jms-service.default-jms-host=dashost
使用管理 GUI
转至&配置&-& "cluster-name-config" -&&Java 消息服务&-&&JMS 主机&。
单击&新建&以创建新的 JMS 主机,将其命名为 dashost。
输入对应于 DAS JMS 服务的配置设置,默认设置如下所示:
主机名:localhost
端口: 7676
管理员用户: admin
密码: admin
根据您的 DAS JMS 服务修改这些设置。
导航回&Java 消息服务&选项卡,并将 JMS 服务类型更改为 REMOTE(默认为 LOCAL)。
从 "default-jms-host" 下拉式列表中,选择 "dashost"。
保存更改,然后启动节点代理或群集。
无法在 Netscape 8.1.3、Mozilla 1.7 和 Safari 2.0.4 浏览器中显示 jmaki 图表 (6543014)
当尝试使用某些不支持的浏览器显示&日志统计信息监视&页中的图表时,可能会抛出以下错误:
Error loading jmaki.widgets.jmaki.charting.line.Widget : id=form1:jmaki_chart11
Script: http://easqelx5.:4848/resources/jmaki/charting/ \
line/component.js (line:5437).
Message: area.initialize is not a function
使用支持的浏览器。有关 Communications Server 支持的浏览器的列表,请参阅。
在 AIX 中使用自定义主密码时 create-domain 命令失败 (6628170)
在 AIX 操作系统上,尝试使用自定义主密码创建域失败,同时显示以下错误:
keytool error (likely untranslated): java.lang.NullPointerException
Enter keystore password:
New keystore password:
应用程序客户机
本节介绍已知的应用程序客户机问题和相应的解决方法。
封装在应用程序客户机归档文件中的库 JAR 将覆盖 MANIFEST 文件 (6193556)
如果在您的客户机 JAR 中具有顶层 JAR 文件(在此情况下,为 reporter.jar),则当您部署客户机 JAR 时,该 JAR 的 MANIFEST 文件将覆盖客户机 JAR 的 MANIFEST 文件。
目前尚无解决方法。
ACC 始终尝试连接到 localhost:3700 (6527987)
应用程序客户机始终尝试连接到 localhost:3700。问题在于在调用客户机代码之前,需要读取多个系统属性。
将以下各项设置为系统属性(JAVA_CMD 中的 -D)。请勿在应用程序客户机代码中设置它们:
org.omg.CORBA.ORBInitialHost = server-instance-host
org.omg.CORBA.ORBInitialPort = server-instance-port
ASQuickStartup 中断了 SocketChannel.keyFor(),返回 null 而不是 SelectionKey(问题跟踪器 3027)
在多个选择器上注册 SocketChannel 时,执行 socketChannel.keyFor(lastRegisteredSelector) 会返回 null 而不是 SelectionKey。
此问题与 JDK 错误 (6562829) 相关,希望在 6.0 U3 中得以修正。Communications Server 中已包括解决方法,会在调用 keyFor API 之前打开选择器。这样可使 keyFor 继续作用,直至 JDK 错误得以修正。
捆绑的 Sun JDBC 驱动程序
本节介绍已知的捆绑的 Sun JDBC 驱动程序问题和相应的解决方法。
PreparedStatement 错误 (6170432)
如果应用程序在一个事务中生成 3000 个以上 PreparedStatement 对象,DB2 可能会发生以下错误:
[sunm][DB2 JDBC 驱动程序] 不再有可用语句。请使用更大的 dynamicSections 值重新创建软件包。
解决方法 1
将以下属性添加到连接池定义中,以使驱动程序可以重新绑定具有较大动态段值的 DB2 软件包:
createDefaultPackage=true replacePackage=true
dynamicSections=1000
可能抛出的与上述 PrepardStatement 错误相关的另一条错误消息为:
[sunm][DB2 JDBC 驱动程序][DB2] 虚拟存储或数据库资源不可用。
解决方法 2
增大 DB2 服务器的配置参数 APPLHEAPSZ。最佳值为 4096。
隔离级别为 TRANSACTION_SERIALIZABLE。如果应用程序使用隔离级别 TRANSACTION_SERIALIZABLE 并使用上面建议的某个参数,该应用程序可能会在获取连接时挂起。
解决方法 3
要为连接设置所需的隔离级别,必须以同一隔离级别创建相应的连接池。
重新引导计算机或启动 Application Server 之后,无法启动 Java DB (6515124)
重新引导主机系统或 Solaris 区域或者启动 Communications Server 之后,捆绑的 Java DB 数据库无法自动重新启动。这不是错误,而是任何捆绑的应用程序或第三方应用程序的预期行为。问题在于必须在 Communications Server 实例之前启动 Java DB。
重新引导主机或 Solaris 区域之后,请务必在启动 Communications Server 之前启动 Java DB,例如:
/opt/SUNWappserver/appserver/bin/asadmin start-database
在群集上,自动部署有时失败 (6610527)
在配置为支持群集的域中,计时问题有时会导致自动部署失败。在不支持群集的域中未发现此问题。
使用以下解决方法之一:
按以下方法使用自动部署:
按顺序自动部署各个应用程序。
在各个应用程序的自动部署之间引入延迟。
使用管理控制台 GUI 或命令行手动部署应用程序。
JSP 编译不使用特定于应用程序的类加载器 (6693246)
JSP 编译不使用特定于应用程序的类加载器(applibs 或 --libraries)。因此,引用这些 JAR 的 JSP 无法进行编译。
没有已知的解决方法。
本节介绍已知的文档问题和相应的解决方法。
Javadoc 不一致(各种 ID)
缺少多个 AMX 接口和方法的 Javadoc 或该 Javadoc 不正确:
ConnectorConnectionPoolStats
和 AltJDBCConnectionPoolStats 中缺少用于获取 NumConnAcquired 和
NumConnReleased 统计信息的 getter 方法。这些 getter 方法将以 getNumConnAcquired() 和 getNumConnReleased() 的形式添加到将来的版本中。
在 EJBCacheStats 中调用以下方法时将抛出异常: getPassivationSuccesses()、getExpiredSessionsRemoved()、getPassivationErrors() 和 getPassivations()。在以后的版本中将修复此问题。
服务器启动后,可能需要几秒钟才能注册和使用所有的 AMX MBean。在以后的版本中,将可以确定完全装入 AMX MBean 的时间。
常量 XTypes.CONNNECTOR_CONNECTION_POOL_MONITOR 的拼写有误 ("NNN")。在以后的版本中将纠正此问题。
捆绑的 ANT 抛出 java.lang.NoClassDefFoundError (6265624)
线程 "main" 中会抛出以下异常:java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher。
建议不要对 Communications Server 外的对象使用捆绑的 ANT。
Resouce Injection 在 HandlerChain 中不起作用 (6750245)
EJB 初始化顺序导致 Resouce Injection 在 HandlerChain 中不起作用。
没有已知的解决方法。
Java EE 教程
使用管理控制台创建资源时,使用&目标&选项卡将服务器指定为目标。如果使用命令行或 asant 目标,则该服务器为默认目标,无需其他操作。
Java 持久性
TopLink 期望 Collection 字段/属性可复制(问题跟踪器 556)
如果 java.util.Arrays.asList() API 用于将 Object[] 转换为 Collection,则 JDK 将返回不可复制的 java.util.ArrayList 的实现。这将导致以下异常:
The method invocation of the method [protected native java.lang.Object
java.lang.Object.clone() throws java.lang.CloneNotSupportedException] on the object
[[pkg.A id = xxx]], of class [class java.util.Arrays$ArrayList], triggered an
exception. Internal Exception: java.lang.reflect.InvocationTargetException Target
Invocation Exception: java.lang.CloneNotSupportedException:
java.util.Arrays$ArrayList
上已跟踪该问题。
使用其构造函数创建其他集合,例如:
myCollection = new ArrayList(java.util.Arrays.asList(a))
GenerationType.IDENTITY 和与 SyBase 一起使用的 DataDirect 驱动程序(问题跟踪器 2431)
如果与 SyBase 一起使用 DataDirect 驱动程序,则尝试插入使用 GenerationType.IDENTITY 的实体失败。由于 DataDirect 驱动程序为每一个参数化的预处理语句创建一个存储过程,因此该尝试失败。
在 domain.xml 文件中,在相应的数据源上设置属性 PrepareMethod=direct。
生命周期管理
本节介绍已知的生命周期管理问题和相应的解决方法。
设置 ejb-timer-service 属性会导致 set 命令失败 (6193449)
将 ejb-timer-service 属性 minimum-delivery-interval 设置为 9000 之后,如果尝试将 ejb-timer-service 属性 redelivery-interval-in-mills 设置为 7000,则会导致 set 命令失败并显示以下错误:
[echo] Doing admin task set
[exec] [Attribute(id=redelivery-interval-internal-in-millis) :
Redelivery-Interval (7,000)
should be greater than or equal to Minimum-delivery-interval-
in-millis (9,000)]
[exec] CLI137 Command set failed.
minimum-delivery-interval 是传送相同周期计时器之间的最小时间间隔。
redelivery-interval-in-mills 是计时器服务在 ejbTimeout 失败后再次尝试传送之前等待的时间。
问题在于描述重新传送时间间隔属性与最小传送时间间隔属性之间关系的逻辑不正确,使您无法使用 GUI 或 CLI 来设置使最小传送时间间隔大于重新传送时间间隔的任何值。
必须始终将 minimum-delivery-interval-in-millis 设置为等于或大于 ejb-timer-service 属性 redelivery-interval-in-millis。Application Server 在确认 redelivery-interval-in-millis 的值是否大于 minimum-delivery-interval-in-millis 的值时使用了错误的验证检查,这是产生上述问题的原因。
使用这些属性的默认值,如下所示:
minimum-delivery-interval(default)=7000
redelivery-interval-in-millis(default)=5000
使用其他的值将导致产生错误。
当列出非 DAS 配置中的 JMS 物理目的地时,会抛出错误 (6532532)
如果要尝试使用 default-config 查看 JMS 物理目的地,将会出现错误消息。
这是预期行为。在 Communications Server 2.0 中,default-config 是配置信息的模板,因此,无法针对 default-config 执行 JMS 操作(例如 list 和 create)。但是,可以针对群集或独立实例的配置执行这些 JMS 操作。
仅 Win2003:非分页池泄漏内存,破坏 tcp 栈和丰富访问测试 (6575349)
(仅 Windows 2003)在 Windows 2003 系统上,当执行丰富访问功能时,会出现内存泄漏。出现此问题是因为 Win32 非分页池不断增长,最终破坏整个 TCP/IP 栈。出现故障后,TCP/IP 栈将保持可恢复状态,并且仅可通过重新引导 Windows 2003 系统对其进行恢复。
有两种方法可以解决该问题:
通过配置 domain.xml http-listener 属性 blocking-enabled="true" 使用 Grizzly 阻塞模式,或者添加以下 http-listener 属性:
&property name="blocking" value="true"/&
使用 Windows Vista 或 Windows XP。
本节介绍已知的日志记录问题和相应的解决方法。
设置 access,failure 的调试语句会导致 Application Server 启动挂起 (6180095)
为 JVM 设置 java.security.debug 选项会导致服务器实例的启动停止并死锁;例如,在 domain.xml 中进行以下设置将导致出现此问题:
&jvm-options&-Djava.security.debug=access,failure&/jvm-options&
目前尚无解决方法。请避免设置此标志。
Message Queue
本节介绍已知的 Java Message Queue 问题和相应的解决方法。
在某些与时间相关的情况下,JMS 重新连接无法成功完成(81、08728)
多种问题均可导致在与时间相关的情况下重新连接失败。
可以通过以下方法解决这些问题:
重新启动相关的代理
重新启动相关的 Application Server 实例
如果 MQ 代理未启动,服务器就不会启动 (6740797)
在将 JMS 配置为 REMOTE 的情况下,如果 MQ 代理未启动,Enterprise Server 将无法启动。
按以下方式设置以下 JVM 选项:com.sun.enterprise.jms.CONNECT_MQ_LAZILY=true。设置此 JVM 选项后,如果 MQ 代理未启动,您可以启动 Communications Server。不过,建议您在启动服务器之前启动 MQ。
在 Linux 上,MQ 代理无法与群集配置文件一起启动 (6524871)
在 Linux 系统上,创建具有群集配置文件的域之后,可能会遇到 java.lang.OutOfMemoryError: heap space 错误,并且服务器实例可能会因为 MQ 代理未启动而无法重新启动。出现此情况之后,系统便永不会恢复。问题在于 /etc/hosts 文件配置错误;具体而言,服务器主机名称正在指向回送地址 127.0.0.1。
按照设计,MQ 代理群集无法在网络设备配置为指向回送地址的情况下启动。这不是错误。解决方法是确保 Communications Server 主机的 /etc/hosts 文件不指向 127.0.0.1。
在升级之前加载 imqjmsra.jar 会导致新旧类不匹配 (6740794)
在 Application Server 启动期间,服务器会检查 Message Queue 版本。如果 Message Queue 版本不正确,则服务器将使用 imqjmsra.jar 进行升级。Application Server 只有在下一次重新启动后才能使用该升级 JAR 及其类。只有在单独升级 Message Queue 或单独修补应用服务器时,才会出现该情况。该情况有时会导致 Application Server 无法启动。
需要在同一修补级别维护 Message Queue 和 Application Server,或重新启动 Application Server。
本节介绍已知的监视问题和相应的解决方法。
某些 HTTP 服务监视统计信息未提供有用的信息,应该被忽略 (6174518)
在查看 HTTP 服务的某些元素的监视统计信息时,提供的某些值与当前值不对应或始终为 0。具体而言,以下 HTTP 服务统计信息不提供适用于 Application Server 的信息,应该忽略:
http-service
load1MinuteAverage
load5MinuteAverage
load15MinuteAverage
rateBytesTransmitted
rateBytesReceived
pwc-thread-pool(元素)
在以后的版本中,将删除这些监视器并将其替换为更适当的信息。
从管理 UI 打开 JNDI 浏览会在 server.log 中转储大量异常 (6591734)
从管理 GUI 打开 JNDI 浏览器时,会抛出许多异常。
目前尚无解决方法。
对于繁体中文、简体中文和西班牙语,无法使用 asadmin
monitor 命令来监视 JVM (7076)
在繁体中文、简体中文和西班牙语区域设置下运行 asadmin monitor --type jvm server 会抛出异常。
请从&管理控制台&查看 JVM 信息,或者在英语区域设置下运行 asadmin
monitor 命令。
本节介绍与 Communications Server 及 Web 应用程序安全性和证书相关的已知问题和相应的解决方法。
在重负载情况下 SSL 方案中出现 OutofMemory 错误(JDK 6 问题 23)
JDK6 Sun PKCS11 提供程序中的 JDK 错误(请参见:https://jdk6.dev.java.net/issues/show_bug.cgi?id=23)可能会导致在重负载情况下运行某些 SSL 方案时出现 OutOfMemoryError。
如果遇到该问题,请从 JRE 安装中的 java.security 文件删除 sun.security.pkcs11.SunPKCS11 提供程序。
SSL 终止不起作用 (6269102)
SSL 终止不起作用;如果为 SSL 终止配置了负载平衡器(硬件),则 Communications Server 会在重定向过程中将协议从 https 更改为 http。
在硬件负载平衡器与 Communications Server 之间添加软件负载平衡器。
SSL 出现套接字连接泄漏 (6492477)
由于 JVM 错误,在 HTTP 侦听器上将 security-enabled 设置为 true 时,某些 JDK 版本会出现泄漏问题。具体而言,产生此错误的步骤如下:
在 HTTP 侦听器上,将 security-enabled 设置为 true:
&http-listener acceptor-threads="1" address="0.0.0.0"
blocking-enabled="false" default-virtual-server="server" enabled="true"
family="inet" id=" http-listener-1" port="8080" security-enabled="true"
server-name="" xpowered-by="true"&
对在快速查找测试结束时停止域做出注释。
运行快速查找测试。
检查套接字使用情况:
netstat -an | grep 8080
以下显示的是处于使用状态的内容:
GlassFish 站点
上已跟踪该问题。
升级到最新的 JDK 版本。
本节介绍已知的 Web 容器问题和相应的解决办法。
在 Windows 上,使用 --precompilejsp=true 部署应用程序会锁定应用程序中的 JAR 文件,从而导致以后的取消部署或重新部署失败 (5004315)
如果您在 Windows 上部署应用程序时要求预编译 JSP,则以后尝试取消部署该应用程序或重新部署该应用程序(或任何具有相同模块 ID 的应用程序)的操作将不会按预期进行。出现此问题的原因是:JSP 预编译会打开应用程序中的 JAR 文件,但不能关闭这些文件,Windows 将禁止执行取消部署或重新部署操作以避免删除或覆盖它们。
请注意,取消部署在某种程度上是成功的,因为应用程序会从 Application Server 中被逻辑删除。另外请注意,asadmin 实用程序不会返回任何错误消息,但应用程序的目录以及锁定的 jar 文件会保留在服务器中。服务器的日志文件将包含用于说明未能删除文件和应用程序的目录的消息。
在取消部署后尝试重新部署应用程序的操作会失败,这是由于服务器尝试删除现有文件和目录,而这些尝试也失败了。如果您尝试部署的应用程序所使用的模块 ID 与最初部署的应用程序的模块 ID 相同,会出现这种情况,这是由于服务器在选择目录名来保存应用程序的文件时会使用模块 ID。
如果没有先取消部署应用程序而尝试重新部署该应用程序,也将会由于同样的原因而失败。
如果尝试重新部署应用程序或在取消部署后部署它,asadmin 实用程序将返回一个类似如下的错误。
An exception occurred while running the command. The exception
message is: CLI171 Command deploy failed : Deploying application in
Cannot deploy. Module directory is locked and can't
be deleted.
如果在部署应用程序时指定 --precompilejsps=false(默认设置),则不会出现此问题。请注意,第一次使用应用程序时会触发 JSP 编译,因此第一个请求的响应时间将会长于随后的请求的响应时间。
另外,请注意,如果您确实进行了预编译,则在取消部署或重新部署应用程序之前,应先停止并重新启动服务器。关闭服务器后将释放锁定的 JAR 文件,这样在重新启动服务器后,取消部署或重新部署便可以成功。
无法使用基于 Servlet 2.4 且包含空 &load-on-startup& 元素的 web.xml 部署 WAR (6172006)
web.xml 中的可选 load-on-startup servlet 元素表示相关的 servlet 将在启动对其进行声明的 Web 应用程序期间被加载和初始化。
此元素的可选内容是一个整数,用于表示该 servlet 相对于 Web 应用程序的其他 servlet 而被装入和初始化的顺序。只要该 servlet 在包含它的 Web 应用程序启动期间被加载和初始化,空的 &load-on-startup& 就表示顺序无关紧要。
web.xml 的 Servlet 2.4 模式不再支持空的 &load-on-startup&,这意味着在使用基于 Servlet 2.4 的 web.xml 时,必须指定一个整数。如果像在 &load-on-startup/& 中一样指定空的 &load-on-startup&,则 web.xml 将无法针对 web.xml 的 Servlet 2.4 模式进行验证,从而导致 Web 应用程序的部署失败。
向下兼容性问题。指定空的 &load-on-startup& 在基于 Servlet 2.3 的 web.xml 中仍起作用。
在使用基于 Servlet 2.4 的 web.xml 时,指定 &load-on-startup&0&/load-on-startup&,以表明 servlet 的装入顺序无关紧要。
无法在资源限定服务器上编译 JSP 页面 (6184122)
已访问 JSP 页面但是无法对其进行编译,并且服务器日志包含错误消息&无法执行命令&和以下堆栈跟踪:
at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.
exec(Execute.java:655) at org.apache.tools.ant.taskdefs.Execute.
launch(Execute.java:416)
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:427)
at org.apache.tools.pilers.DefaultCompilerAdapter.
executeExternalCompile(DefaultCompilerAdapter.java:448)
at org.apache.tools.pilers.JavacExternal.execute
(JavacExternal.java:81)
at org.apache.tools.ant.pile(Javac.java:842)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:682)
at org.piler.generateClass(Compiler.java:396)
将 JSP 编译开关 "fork" 设置为 "false"。
可以通过以下两种方式之一来实现:
在全局范围内,通过将 domain-dir/config/default-web.xml 中 JspServlet 的 fork 初始化参数设置为 false:
&servlet& &servlet-name&jsp&/servlet-name&
&servlet-class&org.apache.jasper.servlet.JspServlet&/servlet-class&
.... &init-param&
&param-name&fork&/param-name& &param-value&false&/param-value&
&/init-param& .... &/servlet&
在每个 Web 应用程序基础上,通过将 sun-web.xml 中的
fork JSP 配置属性设置为 false:
&sun-web-app& &jsp-config& &property name="fork" value="false" /&
&/jsp-config& &/sun-web-app&
以上任何一种设置都将阻止 ant 产生用于 javac 编译的新进程。
本节介绍已知的 Web 容器问题和相应的解决办法。
在 JDK6 u4 b3 上 wscompile 失败并显示 "package javax.xml.rpc does not exist" (6638567)
针对 JDK 6 Update 4 执行的 wscompile ant 任务失败。对于每个 JAX-RPC API 类,会显示以下错误消息:
package package-name does not exist
在运行 wscompile ant 任务之前,确保在类路径而不是 j2ee.jar 中指定 javaee.jar。}

我要回帖

更多关于 wsaeconnrefused 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信