PQ93183: WSIF not using FormatHandler to parse null response message | |||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description This WSIF client proxy has trouble parsing the response message because of a null response message received. [30/07/04 17:30:06:948 EST] 4491ec5e WebGroup I SRVE0180I: [CIMTestWeb] [/CIMTest] [Servlet.LOG]: /TestProxy.jsp: init [30/07/04 17:30:07:354 EST] 4491ec5e SystemOut O requestMsg = com.ibm.cim.customer.locate.request.CustomerLocateInquiryRequest Type@33d 12c5a [30/07/04 17:30:09:011 EST] 2b75ec4b CIMServerStub I com.ibm.cim.customer.locate.CIMServerStubBean JMS Message class: jms_text JMSType: null JMSDeliveryMode: 2 JMSExpiration: 0 JMSPriority: 4 JMSMessageID: ID:414d51205741535f6c6f63616c686f730000000000000011 JMSTimestamp: 1091172608886 JMSCorrelationID:null JMSDestination: queue:///WQ_CUSTOMER.LOCATE.INQUIRY JMSReplyTo: queue://WAS_localhost_server1/AMQ.10000000?persistence=1 JMSRedelivered: false JMSXDeliveryCount:1 JMS_IBM_MsgType:1 JMSXAppID:Application Developer JMS_IBM_Format:MQSTR JMS_IBM_PutApplType:28 WSDLInput:CustomerLocateInquiryRequest JMSXUserID:user WSDLOperation:CustomerLocateInquiry WSDLOutput:CustomerLocateInquiryResponse JMS_IBM_PutTime:07300891 JMS_IBM_PutDate:20040730 com.ib.cim.customer.locate.request.CustomerLocateInquiryRequestt Type@33d 12c5a [30/07/04 17:30:09:026 EST] 2b75ec4b CIMServerStub I com.ibm.cim.customer.locate.CIMServerStubBean com.ibm.cim.customer.locate.request.CustomerLocateInquiryRequest Type@33d 12c5a [30/07/04 17:30:09:604 EST] 4491ec5e SystemErr R java.lang.NullPointerException [30/07/04 17:30:09:604 EST] 4491ec5e SystemErr R at org.apache.jsp._TestProxy._jspService(_TestProxy.java:135) [30/07/04 17:30:09:620 EST] 4491ec5e SystemErr R at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspB ase.java :89)Local fix Problem summary **************************************************************** * USERS AFFECTED: Users of WebSphere Studio Application * * Developer Integration Edition who generate * * an Enterprise Service client proxy to invoke * * a service from WebSphere Message Broker. * **************************************************************** * PROBLEM DESCRIPTION: The problem occurs when an Enterprise * * Service client proxy is generated from * * within WebSphere Studio Application * * Developer Integration Edition, using * * WSDL provided by WebSphere Message * * Broker. When the client proxy is used * * to invoke the service, the following * * error is returned: * * * * java.lang.NullPointerException * * at org.apache.wsif.providers.jms. * * JMSMessage.getFormatHandler * * (JMSMessage.java:736) * * at org.apache.wsif.providers.jms. * * JMSMessage.read(JMSMessage.java:512) * * at org.apache.wsif.providers.jms. * * JMSMessage.read(JMSMessage.java:433) * * at org.apache.wsif.providers.jms. * * JMSFormatter.unformatResponse * * (JMSFormatter.java:413) * * at org.apache.wsif.providers.jms. * * WSIFOperation_Jms.receiveJmsMessage * * (WSIFOperation_Jms.java:549) * * at org.apache.wsif.providers.jms. * * WSIFOperation_Jms. * * executeRequestResponseOperation * * (WSIFOperation_Jms.java:255) * **************************************************************** * RECOMMENDATION: * **************************************************************** The cause of this problem is in the JMSMessage.read(JMSTextMessage) method. In the method WSIF decides if the response is a wsif formatted message or not. In this case WSIF decides incorrectly that it is a wsif formatted message and so it tries processing it. However because it isn't a WSIF formatted message, a NullPointerException is thrown. In the original code, WSIF examines the Local name of the top level XML element in the response message (the Document Element), where the "Local name" is the element name without the namespace. If this Local name is the same as the Local name of the WSDL response Message, WSIF assumes the response message is "WSIF formatted" and incorrectly processes it. For example, take the WSDL response message to be: <message name="CustomerLocateInquiryResponse"> <part element="response:CustomerLocateInquiryResponse" name="CustomerLocateInquiryResponse"/> </message> If the response XML is: <CustomerLocateInquiryResponse> <Contents>10</Contents> </CustomerLocateInquiryResponse> Then WSIF would assume this response was "WSIF formatted" and would not use a the FormatHandler for "CustomerLocateInquiryResponse".Problem conclusion The WSIF code has been changed to expect a "WSIF formatted" message only if there is more than 1 part in the WSDL response message. It is recommended that customers encountering this problem should install WebSphere Application Server V5.1.1 with cumulative fix 2, WebSphere Application Server V5.0.2 with cumulative fix 9.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: Modules/Macros Publications Referenced
|
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server > Enterprise Edition (EE)
Operating system(s):
Software version: 00W
Software edition:
Reference #: PQ93183
IBM Group: Software Group
Modified date: Nov 16, 2004
(C) Copyright IBM Corporation 2000, 2008. All Rights Reserved.