Fixes are available
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for AIX
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for HP-UX
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for IBM i
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Linux
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Solaris
7.0.0.13: WebSphere Application Server V7.0 Fix Pack 13 for Windows
7.0.0.13: Java SDK 1.6 SR8FP1 Cumulative Fix for WebSphere Application Server
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for AIX
7.0.0.15: Java SDK 1.6 SR9 Cumulative Fix for WebSphere Application Server
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for HP-UX
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for IBM i
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Linux
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Solaris
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Windows
7.0.0.17: WebSphere Application Server V7.0 Fix Pack 17
7.0.0.17: Java SDK 1.6 SR9 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.19: WebSphere Application Server V7.0 Fix Pack 19
7.0.0.21: WebSphere Application Server V7.0 Fix Pack 21
7.0.0.23: WebSphere Application Server V7.0 Fix Pack 23
7.0.0.25: WebSphere Application Server V7.0 Fix Pack 25
7.0.0.27: WebSphere Application Server V7.0 Fix Pack 27
7.0.0.29: WebSphere Application Server V7.0 Fix Pack 29
7.0.0.31: WebSphere Application Server V7.0 Fix Pack 31
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.33: WebSphere Application Server V7.0 Fix Pack 33
7.0.0.35: WebSphere Application Server V7.0 Fix Pack 35
7.0.0.37: WebSphere Application Server V7.0 Fix Pack 37
7.0.0.39: WebSphere Application Server V7.0 Fix Pack 39
7.0.0.41: WebSphere Application Server V7.0 Fix Pack 41
7.0.0.43: WebSphere Application Server V7.0 Fix Pack 43
7.0.0.45: WebSphere Application Server V7.0 Fix Pack 45
7.0.0.19: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.21: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere
7.0.0.23: Java SDK 1.6 SR10 FP1 Cumulative Fix for WebSphere
7.0.0.25: Java SDK 1.6 SR11 Cumulative Fix for WebSphere Application Server
7.0.0.27: Java SDK 1.6 SR12 Cumulative Fix for WebSphere Application Server
7.0.0.29: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.45: Java SDK 1.6 SR16 FP60 Cumulative Fix for WebSphere Application Server
7.0.0.31: Java SDK 1.6 SR15 Cumulative Fix for WebSphere Application Server
7.0.0.35: Java SDK 1.6 SR16 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.37: Java SDK 1.6 SR16 FP3 Cumulative Fix for WebSphere Application Server
7.0.0.39: Java SDK 1.6 SR16 FP7 Cumulative Fix for WebSphere Application Server
7.0.0.41: Java SDK 1.6 SR16 FP20 Cumulative Fix for WebSphere Application Server
7.0.0.43: Java SDK 1.6 SR16 FP41 Cumulative Fix for WebSphere Application Server
APAR status
Closed as program error.
Error description
The default behavior of a JAX-WS web service Provider which does not specify a wsdl file is to always return a response. In the case where the Provider returns null, the response consists of a SOAPEnvelope which contains a SOAPBody that is empty. Presently, the only way for a Provider to mimic a one-way (also known as request only) web service operation is to specify the operation in WSDL as request only, and to make the WSDL available to the Provider in the @WebServiceProvider annotation. If the operation can not be defined in WSDL, there is presently no way to make the SOAP response match that of a one-way web service response, which is just an HTTP acknowledgement. For example, in the invocation of Provider<T>.invoke(), @WebServiceProvider public class HelloProvider implements Provider<Source> { @Override public Source invoke(Source req) { return null; } } the SOAP response returned is <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap. org/soap/envelope/"> <soapenv:Body/> </soapenv:Envelope>
Local fix
Convert to a true one way service vs. expecting the SOAP response when the return statement is return null to send a null SOAP envelope.
Problem summary
**************************************************************** * USERS AFFECTED: Developers and administrators of JAX-WS * * Web service Providers for IBM WebSphere * * Application Server V7.0. * **************************************************************** * PROBLEM DESCRIPTION: Enable a JAX-WS Web service Provider * * without WSDL to behave like a * * one-way operation when the * * Provider returns null. * **************************************************************** * RECOMMENDATION: Install a fixpack containing this APAR. * **************************************************************** The default behavior of a JAX-WS web service Provider which does not specify a WSDL file is to always return a response. In the case where the Provider returns null, the response consists of a SOAPEnvelope which contains a SOAPBody that is empty. The JAX-WS 2.2 specification, section 5.1.1, states that when a Provider invoke method returns null, it is considered that no response needs to be sent by the service. Currently in the JAX-WS runtime there is no way for a Provider which does not specify a WSDL file to act like a one-way operation (that is, an operation that does not return a SOAP response, but instead responds with an HTTP acknowledgment). The following is an example of a Provider which returns null and does not have a WSDL file: @WebServiceProvider public class HelloProvider implements Provider<Source> { @Override public Source invoke(Source req) { return null; } } The invocation of Provider<T>.invoke()produces the following SOAP response: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap. org/soap/envelope/"> <soapenv:Body/> </soapenv:Envelope> The desired behavior is for the invocation to return no SOAP response. Note that a Provider can be made to behave as a one-way operation if the operation is defined in WSDL as one-way (that is, an operation which has an input message but produces no output) and the WSDL is made available to the Provider in the @WebServiceProvider annotation.
Problem conclusion
A new JVM custom property is introduced to enable JAX-WS web service Providers without WSDL which return null to behave like one-way operations and not return a SOAP response. The JVM property name is "jaxws.provider.interpretNullAsOneway" The value is "true" or "false". The default value is "false". When the property is set to true, the JAX-WS runtime will detect a null return from a Provider which does not specify WSDL and it will not generate a SOAP response. Instead an HTTP acknowldegement will be returned, just as is the case for a one-way operation. Note that the client invoking such a Provider must use a one-way invocation pattern, for example: dispatch.invokeOneWay(requestSource); Note that if the operation is defined in WSDL as two-way the runtime will continue to send a response consisting of a SOAPEnvelope containing an empty SOAPBody, regardless of the property setting. The fix for this APAR is currently targeted for inclusion in fix pack 7.0.0.13. Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PM16015
Reported component name
WEBSPHERE APP S
Reported component ID
5724J0800
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-06-07
Closed date
2010-07-15
Last modified date
2010-07-15
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WEBSPHERE APP S
Fixed component ID
5724J0800
Applicable component levels
R700 PSY
UP
Document Information
Modified date:
25 October 2021