Oh, well, it's been a long time since I have seen a user reporting such a configuration 'switch'. This used to be common about 5 to six years ago, and I was hoping that by 2008 this is past us ... ;-).
Thanks for coming back to us and letting us know. Werner PS If only IBM could make up their mind and ship Websphere with a default setting that is Servlet/JSP spec compliant .... Read, David wrote: > All, > > Just to close the loop on this, the issue was classpath related. We > ended up using the WebSphere classpath configuration option of "parent > last" so that the JAR files deployed in the WAR are placed on the > classpath first. Once this was done the application worked fine. > > Regards, > > -Dave > > > -----Original Message----- > From: Werner Guttmann [mailto:[EMAIL PROTECTED] > Sent: Tuesday, July 08, 2008 4:29 PM > To: [email protected] > Subject: Re: [castor-user] [XML] Marshalling Behavior Change Between > Tomcat/Windows and WebSphere/AIX Environments > > > > Read, David wrote: >> Good day! >> >> I'm sending this out wondering whether anyone has seen similar >> behavior and might have an idea how I might resolve the issue. >> >> I have a web application built using Spring and Castor. Spring >> front-ends SOAP requests and then Castor does all the >> marshalling/unmarshalling. I have a mapping file that defines the >> XML-to-bean relationships. >> >> Here is a piece of the mapping file that defines an mapping for Agent >> Phone data (call center rep registering with their soft phone). >> >> <!-- >> Mapping for AgentPhoneRequest - Abstract Class holding common Phone >> request data >> Since this class is abstract, there is no <map-to> element. >> --> >> <class name="com.ba.servicegovernor.webservice.AgentPhoneRequest"> >> <field name="agentPhoneExtension" >> type="string" >> required="false"> >> <bind-xml name="phone:AgentPhoneExtension" node="element"/> >> </field> >> <field name="agentUserId" >> type="string" >> required="false"> >> <bind-xml name="phone:AgentUserID" node="element"/> >> </field> >> </class> >> >> <!-- >> Mapping for AgentRegister request - Agent Phone Register request data >> --> >> <class >> name="com.ba.servicegovernor.webservice.AgentPhoneRegisterRequest" >> extends="com.ba.servicegovernor.webservice.AgentPhoneRequest" >> auto-complete="false"> >> <map-to xml="AgentRegister" >> ns-uri= >> "urn:RE:SOAP:CGBACTI:Event" >> ns-prefix="tns"/> >> <field name="agentWorkstationIPAddress" >> type="string" >> required="false"> >> <bind-xml name="phone:AgentWorkstationIPAddress" > node="element"/> >> </field> >> </class> >> >> All works great on my local machine (Tomcat/Windows/JDK 1.4). Here > is >> the XML sent in the SOAP request: >> >> <soapenv:Envelope >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> >> <soapenv:Body> >> <tns:AgentRegister xmlns:tns="urn:RE:SOAP:CGBACTI:Event"> >> <tns:AgentPhoneExtension>phoneExt</tns:AgentPhoneExtension> >> <tns:AgentUserID>agentID</tns:AgentUserID> >> >> > <tns:AgentWorkstationIPAddress>ipAddress</tns:AgentWorkstationIPAddress> >> </tns:AgentRegister> >> </soapenv:Body> >> </soapenv:Envelope> >> >> >> However, when I deploy on the server (WebSphere/AIX/JDK 1.4) the >> resulting XML is: >> >> <soapenv:Envelope >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> >> <soapenv:Header/> >> <soapenv:Body> >> <tns:AgentRegister> >> <tns:AgentPhoneExtension>phoneExt</tns:AgentPhoneExtension> >> <tns:AgentUserID>agentID</tns:AgentUserID> >> >> > <tns:AgentWorkstationIPAddress>ipAddress</tns:AgentWorkstationIPAddress> >> </tns:AgentRegister> >> </soapenv:Body> >> </soapenv:Envelope> >> >> Notice that the namespace definition is not provided on the >> AgentRegister element which causes a parser exception. Also, the >> message now has an additional namespace definition for "soapenc" on >> the envelope and adds the <Header> element, but those don't break > anything. >> >> Has anyone seen different environments alter the generated XML? > No, not really. What I have seen, though, especially when I used to work > for one of the biggest investment banks a few years ago, is classpath > configuration problems with both WebLogic and Websphere. > > Most of the time, I have seen one of the following two issues: > > a) There was already a different version of (in your case) Castor on the > classpath, most of the time configured on either the system classpath of > the server or a server-wide classpath. Frequently, that would prevent > your Castor JAR (as shipped with either a WAR or EAR file) from being > loaded. A tricky issue, indeed. > > b) Non-compliant configuration of your deployment units (again, either > WAR or EAR). Products like Websphere allow e.g web app deployment where > you can define custom classloader strategies, that do not comply with > standard classloading semantics of web applications, and are used to > 'tune' things. > > Apart from this, I cannot think of anything. > >> Any idea how to workaround this? > Yes and no. Personally, I won't be able to replicate your environment, > as no AIX, no Websphere, etc. here at home. But if you are willing to > engage through professional services, I am more than willing to spend > time with you. >> >> Appreciate any guidance you can offer. >> >> Regards, >> >> -Dave >> >> >> >> >> >> This e-mail and any files transmitted with it are for the sole use of >> Blue Slate Solutions and the intended recipient(s) and may contain >> confidential and privileged information. If you are not the intended >> recipient, please contact the sender by reply e-mail and destroy all >> copies of the original message. Any unauthorized review, use, >> disclosure, dissemination, forwarding, printing or copying of this >> email or any action taken in reliance on this e-mail is strictly >> prohibited and may be unlawful. >> > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > > > > > > > This e-mail and any files transmitted with it are for the sole use of > Blue Slate Solutions and the intended recipient(s) and may contain > confidential and privileged information. If you are not the intended > recipient, please contact the sender by reply e-mail and destroy all > copies of the original message. Any unauthorized review, use, > disclosure, dissemination, forwarding, printing or copying of this email > or any action taken in reliance on this e-mail is strictly prohibited > and may be unlawful. > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

