Web Service 应用程序的 HTTP 传输定制属性
使用 Java™ API for XML-Based Web Services (JAX-WS) 和 Java API for XML-based RPC (JAX-RPC) Web Service 的 HTTP 传输属性来管理 HTTP 出站连接的连接池、配置 HTTP 消息的内容编码、启用 HTTP 持续连接和发生超时重新发送 HTTP 请求。
建立连接是开销很大的操作。连接池通过避免创建连接和断开连接的开销来提高性能。当应用程序通过 HTTP 传输调用 Web Service 时,Web Service 的 HTTP 出站连接器会从连接池查找和使用现有连接。接收响应时,连接程序会返回连接池的连接以供复用。这样可避免创建和断开连接的开销。
- com.ibm.websphere.webservices.http.connectionIdleTimeout
- com.ibm.websphere.webservices.http.connectionKeepAlive
- com.ibm.websphere.webservices.http.connectionPoolCleanUpTime
- com.ibm.websphere.webservices.http.connectionTimeout
- com.ibm.websphere.webservices.http.maxConnection
- com.ibm.websphere.webservices.http.responseContentEncoding
- com.ibm.websphere.webservices.http.requestContentEncoding
- com.ibm.websphere.webservices.http.requestResendEnabled
- com.ibm.websphere.webservices.http.SocketTimeout
- com.ibm.ws.webservices.enableHTTPPrefix
- enableMultiThreadedSession
- HttpInboundPersistReadTimeout
- http.nonProxyHosts
- http.proxyHost
- http.proxyPort
- https.proxyHost
- https.proxyPort
- timeout
- write_timeout
com.ibm.websphere.webservices.http.connectionIdleTimeout
此属性指定时间间隔(以秒计),经过此时间间隔之后将不再复用连接。
当应用程序请求建立新连接时,HTTP 出站连接器将搜索所有未使用的现有连接。如果它发现某个连接处于空闲状态的时间超过此属性指定的时间,那么可能会释放该连接。如果它发现某个连接处于空闲状态的时间少于此属性指定的时间,那么将复用此连接,并且将停止搜索。因为搜索将仅查找一个端点,并且会在复查所有连接之前停止,所以可以保留空闲连接。
清除任务将定期检查所有未使用的连接的空闲时间。如果清除任务发现某个连接处于空闲状态的时间超过此属性指定的时间,那么会释放该连接。因此,空闲连接可以持续的时间是清除任务计时器延迟时间加上此属性的值。例如,如果清除任务计时器延迟为 180 秒,com.ibm.websphere.webservices.http.connectionIdleTimeout 设置为缺省值 5 秒,那么连接在被释放之前最多可以空闲 185 秒。用于控制清除任务计时器延迟的 JVM 属性是 com.ibm.websphere.webservices.http.connectionPoolCleanUpTime。
此属性影响一个 JVM 中创建的所有 Web Service HTTP 连接。
信息 | 值 |
---|---|
数据类型 | 整数 |
单位 | 秒 |
缺省 | 5 |
范围 | 0(零)到最大整数 |

有关如何配置此属性的信息,请参阅“使用管理控制台来配置其他 HTTP 传输属性”资料。
com.ibm.websphere.webservices.http.connectionKeepAlive
此属性指定连接器是否应该维护活动或持久的 HTTP 连接。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。
如果此属性设置为 true,那么连接器会将该连接存放在连接池中并将其复用于后续 HTTP 请求。但是,如果达到 syncTimeout(Read timeout) 或者服务器已断开该连接,那么该连接将被关闭。并且,如果空闲时间超出连接空闲超时值,那么空闲连接将被池维护线程关闭。如果此属性设置为 false,那么在发送 HTTP 请求后将关闭连接。如果准备发送新请求,但不存在连接,那么 HTTP 连接器将创建一个连接。
如果某个请求的响应为 HTTP 200,那么表示已接收到该请求,并且用于该请求的连接处于活动状态且可复用于下一调用。如果某个请求的响应为 HTTP 202,那么表示已接收到该请求,但是用于该请求的连接不可复用。

信息 | 值 |
---|---|
数据类型 | String |
缺省 | True |
有效值 | True 和 false |
有关如何配置此属性的信息,请参阅“使用 wsadmin 配置其他 HTTP 传输属性”和“使用组装工具配置其他 HTTP 传输属性”的信息。
com.ibm.websphere.webservices.http.connectionPoolCleanUpTime
此属性指定连续运行连接池维护线程之间的时间间隔(以秒计)。
此属性影响一个 JVM 中创建的所有 Web Service 的 HTTP 连接。例如,如果此属性设置为 180,那么池维护线程每 180 秒运行一次。池维护线程运行时,连接器将废弃清除队列中的任何连接。
信息 | 值 |
---|---|
数据类型 | 整数 |
单位 | 秒 |
缺省 | 180 |
范围 | 0(零)到最大整数 |

有关如何配置此属性的信息,请参阅“使用管理控制台来配置其他 HTTP 传输属性”资料。
com.ibm.websphere.webservices.http.connectionTimeout
此属性指定连接请求发生超时并导致发生 WebServicesFault( "Connection timed out" ) 错误之前的时间间隔(以秒计)。
此值将影响 HTTP 出站连接器发出的所有 HTTP 连接请求。达到连接池中的最大连接数后,需要等待一段时间。例如,如果此属性设置为 300,并且达到最大连接数,那么连接器将等待连接可用并且最多等待 300 秒。在 300 秒之后,如果仍没有可用的连接,那么将发生 WebServicesFault( "Connection timed out" ) 错误。如果此属性设置为 0(零),那么连接器将一直等到连接可用。
如果在应用程序中发生 WebServicesFault( "Connection timed out") 错误,请增大 com.ibm.websphere.webservices.http.connectionTimeout 属性值的设置。并且,请检查应用程序的用法。如果 com.ibm.websphere.webservices.http.maxConnection 属性值设置为 0(零),即支持无限制的连接数,那么 com.ibm.websphere.webservices.http.connectionTimeout 属性值将被忽略。
信息 | 值 |
---|---|
数据类型 | 整数 |
单位 | 秒 |
缺省 | 300 |
范围 | 0(零)到最大整数 |

有关如何配置此属性的信息,请参阅“使用管理控制台来配置其他 HTTP 传输属性”资料。
com.ibm.websphere.webservices.http.maxConnection
此属性指定在 HTTP 出站连接器连接池中创建的最大连接数。
此属性影响一个 JVM 中创建的所有 Web Service HTTP 连接。达到最大连接数后,将不会创建新的连接,并且 HTTP 连接器将等待当前连接返回到连接池。如果 HTTP 连接程序由于连接请求超时而不等待当前连接,那么将发生 WebServicesFault( "Connection timed out" ) 错误。例如,如果此属性设置为 5 并且已有 5 个连接正在使用中,那么 HTTP 连接程序将在 com.ibm.websphere.webservices.http.connectionTimeout 属性所设置的指定时间内等待连接变得可用。

信息 | 值 |
---|---|
数据类型 | 整数 |
缺省 | 对于 JAX-RPC 应用程序:25 对于 JAX-WS 应用程序:50 |
范围 | 5 到最大值(最大值小于或等于 Web 容器线程池大小的一半) |

有关如何配置此属性的信息,请参阅“使用管理控制台来配置其他 HTTP 传输属性”资料。
com.ibm.websphere.webservices.http.responseContentEncoding
此属性指定要在每个 HTTP 响应的消息中使用的编码类型。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。

支持的编码格式遵循 HTTP 1.1 协议规范,包括 gzip、x-gzip 和 deflate。如果配置了此属性,那么 HTTP 响应中的头“Content-Encoding”也将设置为相同的值。如果未设置此属性,那么将不会对 HTTP 响应消息内容进行编码。缺省值为 no encoding。
如果设置了此属性,那么请求客户机也必须支持同一编码。否则,将发生故障并显示 WebServicesFault() 错误。
不支持压缩编码格式,并且 x-gzip 编码等同于 gzip 编码。
信息 | 值 |
---|---|
数据类型 | String |
有效值 | gzip、x-gzip 或 deflate |
有关如何配置此属性的信息,请参阅“使用 wsadmin 配置其他 HTTP 传输属性”和“使用组装工具配置其他 HTTP 传输属性”的信息。
com.ibm.websphere.webservices.http.requestContentEncoding
此属性指定要在每个 HTTP 出站请求的消息中使用的编码类型。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。
支持的编码格式遵循 HTTP 1.1 协议规范,包括 gzip、x-gzip 和 deflate。如果配置了此属性,那么 HTTP 请求中的头“Content-Encoding”和“Accept-Encoding”也将设置为相同的值。例如,如果此属性设置为 gzip,那么这些头将变为 Content-Encoding: gzip 和 Accept-Encoding: gzip。但是,如果未设置此属性,那么将不会对 HTTP 请求消息进行编码。缺省值为 no encoding。
您应检查目标 Web 服务器能否对所配置的代码格式进行解码。例如,如果此属性设置为 gzip,那么目标 Web 服务器也必须支持 gzip 编码。否则将发生故障,并且可能会显示状态码 415 Unsupported Media Type。
不支持压缩编码格式,并且 x-gzip 编码等同于 gzip 编码。
信息 | 值 |
---|---|
数据类型 | String |
有效值 | gzip、x-gzip 和 deflate |
有关如何配置此属性的信息,请参阅“使用 wsadmin 配置其他 HTTP 传输属性”和“使用组装工具配置其他 HTTP 传输属性”的信息。
com.ibm.websphere.webservices.http.requestResendEnabled
此属性告知 HTTP 连接器,在记录 java.net.ConnectException: read timed out 错误后,要通过 HTTP 请求重新发送 SOAP 消息。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。
此属性告知 HTTP 连接器,在记录 java.net.ConnectException: read timed out 错误后,要通过 HTTP 请求重新发送 SOAP 消息。java.net.ConnectException 是由于套接字超时或者服务器在请求发送期间关闭而引起的。如果启用此属性,那么连接器将只尝试重新连接一次并通过 HTTP 重新发送同一条 SOAP 消息。否则,连接器将停止发送 SOAP 消息并记录 WebServicesFault 错误。
在启用了此属性的应用程序中,可能会发生问题。重新发送的 HTTP 请求可能会被服务器接收两次并导致意外结果。
信息 | 值 |
---|---|
数据类型 | String |
缺省 | False |
有效值 | True 和 false |
有关如何配置此属性的信息,请参阅“使用 wsadmin 配置其他 HTTP 传输属性”和“使用组装工具配置其他 HTTP 传输属性”的信息。
com.ibm.websphere.webservices.http.SocketTimeout
此属性指定等待与远程服务器建立出站套接字的时间量(以秒计)。
此属性影响一个 JVM 中创建的所有 Web Service HTTP 连接。如果提供的值无效,那么缺省值将覆盖无效的值。
信息 | 值 |
---|---|
数据类型 | 整数 |
单位 | 秒 |
缺省 | 180 注意: 如果指定的值无效,那么缺省值将覆盖无效的值。
|
范围 | 0(零)到 2147482(最大整数) |

有关如何配置此属性的信息,请参阅“使用管理控制台来配置其他 HTTP 传输属性”资料。
com.ibm.ws.webservices.enableHTTPPrefix
此属性指定,对于在管理控制台的“提供 HTTP 端点 URL”面板中定义为定制 HTTP URL 前缀的 hostname:port 值,是否将其填充到服务返回给客 户机的 WSDL 文件副本中的 URL 字段。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。
如果将此属性的值配置为 true,那么将在返回给客户机的 WSDL 文件中正确指定所指定的定制 HTTP URL 前缀。如果未将此属性的值配置为 true,那么在返回给客户机的 WSDL 文件副本中的 URL 字段中,不会填充对请求做出响应的服务器节点的所指定定制 hostname:port。
信息 | 值 |
---|---|
数据类型 | String |
缺省 | False |
有效值 | True 和 false |

在定义此定制属性之后,必须重新启动应用程序服务器才能使系统使用此属性。
enableMultiThreadedSession
此属性指定是否允许客户机跨同一个客户机实例的线程共享 HTTP 会话信息。要启用此行为,请通过对客户机存根调用 _setProperty 方法将此属性的值配置为 true。如果未启用此属性,那么缺省行为是,使会话作为调用了客户机的线程的本地会话。
此属性只适用于 Java API for XML-based RPC (JAX-RPC) Web Service。
Properties prop = new Properties();
InitialContext ctx = new InitialContext(prop);
Service service = (Service)ctx.lookup("java:comp/env/service/StockQuoteService");
QName portQname = new QName("http://httpchannel.test.wsfvt.ws.ibm.com", "StockQuoteHttp");
StockQuote sq = (StockQuote)service.getPort(portQname, StockQuote.class);
((javax.xml.rpc.Stub) sq)._setProperty(com.ibm.wsspi.webservices.Constants.ENABLE_MULTITHREADED_SESSION, Boolean.TRUE);
信息 | 值 |
---|---|
数据类型 | 布尔值 |
缺省 | False |
有效值 | True 和 false |
在定义此定制属性之后,必须重新启动应用程序服务器才能使系统使用此属性。
HttpInboundPersistReadTimeout
此属性指定对于异步 JAX-WS 应用程序在发生持续读取超时前经过的时间量(以秒计)。

java.io.IOException: Async IO operation failed (1), reason: RC: 32 Broken pipe
发生此异常的原因是,在客户机上超出持续读取超时限制,因此导致连接被关闭。在读大型数据时,或者由于网络速度较慢而导致在服务器端读数据所需时间超出缺省值(7 秒)时,请使用此属性。如果在服务器端接收到管道中断异常,请增大此超时属性的值。
信息 | 值 |
---|---|
数据类型 | 整数 |
单位 | 秒 |
缺省 | 7 |
有效值 | 0(零)到最大整数 |
有关如何配置此属性的信息,请参阅“使用管理控制台来配置其他 HTTP 传输属性”资料。
http.nonProxyHosts
此 JVM 系统属性用于覆盖 http.proxyHost 和 https.proxyHost 属性并指定不通过代理服务器将请求发送到的机器的主机名。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。
任何由客户机应用程序调用并发送至名称包含在此属性中的主机的请求都不通过代理服务器进行传递。请使用竖线(“|”)来分隔列表中的各个主机名。另外,您还可以选择使用星号 (*) 作为通配符。
http.nonProxyHosts 属性适用于 HTTP 和 HTTPS 连接。
- 对于代理主机,输入名称 http.proxyHost 和值 myproxy.mycompany.com。
- 对于非代理主机,输入名称 http.nonProxyHosts 和值 host1.company1.com|host*.company2.com|*.company3.com。
- 名为 host1.company1.com 的单一主机
- company2.com 域中名称以 host 开头的任何主机
- company3.com 域中的任何主机
http.nonProxyHosts="host1.company1.com|host*.company2.com|*.company3.com|host1"

信息 | 值 |
---|---|
数据类型 | String |

有关如何配置此属性的信息,请参阅“使用管理控制台来配置其他 HTTP 传输属性”资料。
http.proxyHost
此属性指定 HTTP 代理的主机名。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。
信息 | 值 |
---|---|
数据类型 | String |
有关如何配置此属性的信息,请参阅“使用 wsadmin 配置其他 HTTP 传输属性”和“使用组装工具配置其他 HTTP 传输属性”的信息。
http.proxyPort
此属性指定 HTTP 代理的端口。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。
信息 | 值 |
---|---|
数据类型 | String |
有关如何配置此属性的信息,请参阅“使用 wsadmin 配置其他 HTTP 传输属性”和“使用组装工具配置其他 HTTP 传输属性”的信息。
https.proxyHost
此属性指定 HTTPS 代理的主机名。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。
信息 | 值 |
---|---|
数据类型 | String |
有关如何配置此属性的信息,请参阅“使用 wsadmin 配置其他 HTTP 传输属性”和“使用组装工具配置其他 HTTP 传输属性”的信息。
https.proxyPort
此属性指定 HTTPS 代理的端口。它是您可以为 Web Service 应用程序配置的 HTTP 传输属性。
信息 | 值 |
---|---|
数据类型 | String |
有关如何配置此属性的信息,请参阅“使用 wsadmin 配置其他 HTTP 传输属性”和“使用组装工具配置其他 HTTP 传输属性”的信息。
timeout
此属性指定发生读超时之前经过的时间(以秒计)。
读取大型 Web Service 消息时,如果发出 Web Service 调用,那么可能会接收到 WSWS3228E 消息以及 SocketTimeoutExceptions 错误。
此值将影响 HTTP 入站连接器发出的所有 HTTP 连接请求。在读大型数据时,或者由于网络速度较慢而导致读数据所需时间超出缺省时间(300 秒)时,请使用这个读超时属性。如果读消息时发生 SocketTimeoutExceptions 错误,请增大 timeout 属性的值。
信息 | 值 |
---|---|
数据类型 | 整数 |
单位 | 秒 |
缺省 | 300 |
范围 | 0(零)到最大整数 |

对于 JAX-WS 应用程序而言,您还可以通过定制 HTTP 传输策略或通过使用 JAX-WS 绑定来配置此属性。有关如何使用这些方法来配置此属性的信息,请参阅有关使用管理控制台来配置其他 HTTP 传输属性或者有关配置 HTTPTransport 策略和绑定属性的资料。
write_timeout
此属性指定发送消息后发生写操作超时之前经过的时间(以秒计)。
写入大型 Web Service 消息时,如果发出 Web Service 调用,那么可能会接收到 WSWS3228E 消息以及 SocketTimeoutExceptions 错误。
此值将影响 HTTP 出站连接器发出的所有 HTTP 连接请求。在发送大量数据时,或者由于网络速度较慢而导致写数据所需时间超出缺省时间(300 秒)时,请使用这个写超时属性。如果写消息时发生 SocketTimeoutExceptions 错误,请增大 write_timeout 属性的值。
信息 | 值 |
---|---|
数据类型 | 整数 |
单位 | 秒 |
缺省 | 300 |
范围 | 0(零)到最大整数 |

对于 JAX-WS 应用程序而言,您还可以通过定制 HTTP 传输策略或通过使用 JAX-WS 绑定来配置此属性。有关如何使用这些方法来配置此属性的信息,请参阅有关使用管理控制台来配置其他 HTTP 传输属性或者有关配置 HTTPTransport 策略和绑定属性的资料。