You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "jamie cormack (JIRA)" <ax...@ws.apache.org> on 2009/09/24 16:15:16 UTC

[jira] Updated: (AXIS-2807) namespaces not retained creating invalid response

     [ https://issues.apache.org/jira/browse/AXIS-2807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

jamie cormack updated AXIS-2807:
--------------------------------

    Description: 

Axis2 1.4 WebService. XMLBean Binding.
Request message retains all namespaces correctly
Response message looses the namespaces in later elements producing invalid XML

SAMPLE 1  -  SOAP request envelope generated within the stub. This is correct all elements retaining the correct namespace.


<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
	<soapenv:Body>
		<updateProductHolding xmlns="http://services.investman.co.uk">
			<ph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://investman.co.uk/cim/xsd" xsi:type="xsd:ProductHoldingBond">
				<commissionAccount xmlns="http://investman.co.uk/cim/xsd">
					<commissionAccountId>Comm Id 123</commissionAccountId>
				</commissionAccount>
				<jointLifeIndicator xmlns="http://investman.co.uk/cim/xsd">false</jointLifeIndicator>
				<policyNumber xmlns="http://investman.co.uk/cim/xsd">123456B001</policyNumber>
				<fundHolding xmlns="http://investman.co.uk/cim/xsd">
					<fund>
						<fundId>My Hedge Fund</fundId>
						<name>Hedging My Bets</name>
					</fund>
				</fundHolding>
				<fundHolding xmlns="http://investman.co.uk/cim/xsd">
					<exchangeRate>1.5</exchangeRate>
					<fund xsi:type="xsd:WithProfitsFund">
						<fundId>My With Profits Fund</fundId>
						<name>Aint no profit in this</name>
					</fund>
					<fundHoldingDate>2009-09-24T14:03:52.471+01:00</fundHoldingDate>
				</fundHolding>
				<fundHolding xmlns="http://investman.co.uk/cim/xsd">
					<exchangeRate>1.5</exchangeRate>
					<fund xsi:type="xsd:InvestmentFund">
						<fundId>My Investment Profits Fund</fundId>
						<name>You may not get out what u put in</name>
						<fundPriceDate>2009-09-24T14:03:52.565+01:00</fundPriceDate>
					</fund>
					<fundHoldingDate>2009-09-24T14:03:52.565+01:00</fundHoldingDate>
				</fundHolding>
			</ph>
		</updateProductHolding>
	</soapenv:Body>
</soapenv:Envelope>

SOAP Response message - namespace is set correctly for the top level and first child element.....the remaining elements do not retain
their namespaces. This produces in valid XML / XMLBean Objects.


<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
	<soapenv:Body>
		<updateProductHoldingResponse xmlns="http://services.investman.co.uk">
			<return xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://investman.co.uk/cim/xsd" xsi:type="xsd:ProductHoldingBond">
				<commissionAccount xmlns="http://investman.co.uk/cim/xsd">
					<commissionAccountId>Comm Id 123</commissionAccountId>
				</commissionAccount>
				<jointLifeIndicator>false</jointLifeIndicator>
				<policyNumber>123456B001 *** updated by service ***</policyNumber>
				<fundHolding>
					<exchangeRate>0.0</exchangeRate>
					<fund>
						<fundId>My Hedge Fund</fundId>
						<name>Hedging My Bets</name>
					</fund>
					<numberOfUnits>0.0</numberOfUnits>
				</fundHolding>
				<fundHolding>
					<exchangeRate>1.5</exchangeRate>
					<fund xsi:type="xsd:WithProfitsFund">
						<fundId>My With Profits Fund</fundId>
						<name>Aint no profit in this</name>
					</fund>
					<fundHoldingDate>2009-09-24T14:03:52.471+01:00</fundHoldingDate>
					<numberOfUnits>0.0</numberOfUnits>
				</fundHolding>
				<fundHolding>
					<exchangeRate>1.5</exchangeRate>
					<fund xsi:type="xsd:InvestmentFund">
						<fundId>My Investment Profits Fund</fundId>
						<name>You may not get out what u put in</name>
						<fundPriceDate>2009-09-24T14:03:52.565+01:00</fundPriceDate>
					</fund>
					<fundHoldingDate>2009-09-24T14:03:52.565+01:00</fundHoldingDate>
					<numberOfUnits>0.0</numberOfUnits>
				</fundHolding>
			</return>
		</updateProductHoldingResponse>
	</soapenv:Body>
</soapenv:Envelope>

NB - the service skeleton is returning correct / valid xml


  was:
http://issues.apache.org/jira/browse/ODE-343

This issues was allegedly fixed uder r679485, but this is still occurring.


SAMPLE 1  -  SOAP request envelope generated within the stub. This is correct all elements retaining the correct namespace.


<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
	<soapenv:Body>
		<updateProductHolding xmlns="http://services.investman.co.uk">
			<ph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://investman.co.uk/cim/xsd" xsi:type="xsd:ProductHoldingBond">
				<commissionAccount xmlns="http://investman.co.uk/cim/xsd">
					<commissionAccountId>Comm Id 123</commissionAccountId>
				</commissionAccount>
				<jointLifeIndicator xmlns="http://investman.co.uk/cim/xsd">false</jointLifeIndicator>
				<policyNumber xmlns="http://investman.co.uk/cim/xsd">123456B001</policyNumber>
				<fundHolding xmlns="http://investman.co.uk/cim/xsd">
					<fund>
						<fundId>My Hedge Fund</fundId>
						<name>Hedging My Bets</name>
					</fund>
				</fundHolding>
				<fundHolding xmlns="http://investman.co.uk/cim/xsd">
					<exchangeRate>1.5</exchangeRate>
					<fund xsi:type="xsd:WithProfitsFund">
						<fundId>My With Profits Fund</fundId>
						<name>Aint no profit in this</name>
					</fund>
					<fundHoldingDate>2009-09-24T14:03:52.471+01:00</fundHoldingDate>
				</fundHolding>
				<fundHolding xmlns="http://investman.co.uk/cim/xsd">
					<exchangeRate>1.5</exchangeRate>
					<fund xsi:type="xsd:InvestmentFund">
						<fundId>My Investment Profits Fund</fundId>
						<name>You may not get out what u put in</name>
						<fundPriceDate>2009-09-24T14:03:52.565+01:00</fundPriceDate>
					</fund>
					<fundHoldingDate>2009-09-24T14:03:52.565+01:00</fundHoldingDate>
				</fundHolding>
			</ph>
		</updateProductHolding>
	</soapenv:Body>
</soapenv:Envelope>

SOAP Response message - namespace is set correctly for the top level and first child element.....the remaining elements do not retain
their namespaces. This produces in valid XML / XMLBean Objects.


<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
	<soapenv:Body>
		<updateProductHoldingResponse xmlns="http://services.investman.co.uk">
			<return xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://investman.co.uk/cim/xsd" xsi:type="xsd:ProductHoldingBond">
				<commissionAccount xmlns="http://investman.co.uk/cim/xsd">
					<commissionAccountId>Comm Id 123</commissionAccountId>
				</commissionAccount>
				<jointLifeIndicator>false</jointLifeIndicator>
				<policyNumber>123456B001 *** updated by service ***</policyNumber>
				<fundHolding>
					<exchangeRate>0.0</exchangeRate>
					<fund>
						<fundId>My Hedge Fund</fundId>
						<name>Hedging My Bets</name>
					</fund>
					<numberOfUnits>0.0</numberOfUnits>
				</fundHolding>
				<fundHolding>
					<exchangeRate>1.5</exchangeRate>
					<fund xsi:type="xsd:WithProfitsFund">
						<fundId>My With Profits Fund</fundId>
						<name>Aint no profit in this</name>
					</fund>
					<fundHoldingDate>2009-09-24T14:03:52.471+01:00</fundHoldingDate>
					<numberOfUnits>0.0</numberOfUnits>
				</fundHolding>
				<fundHolding>
					<exchangeRate>1.5</exchangeRate>
					<fund xsi:type="xsd:InvestmentFund">
						<fundId>My Investment Profits Fund</fundId>
						<name>You may not get out what u put in</name>
						<fundPriceDate>2009-09-24T14:03:52.565+01:00</fundPriceDate>
					</fund>
					<fundHoldingDate>2009-09-24T14:03:52.565+01:00</fundHoldingDate>
					<numberOfUnits>0.0</numberOfUnits>
				</fundHolding>
			</return>
		</updateProductHoldingResponse>
	</soapenv:Body>
</soapenv:Envelope>

NB - the service skeleton is returning correct / valid xml


        Summary: namespaces not retained creating invalid response  (was: ODE-343 not fixed - namespaces not retained invalid response)

> namespaces not retained creating invalid response
> -------------------------------------------------
>
>                 Key: AXIS-2807
>                 URL: https://issues.apache.org/jira/browse/AXIS-2807
>             Project: Axis
>          Issue Type: Bug
>          Components: Serialization/Deserialization
>    Affects Versions: 1.4
>         Environment: n/a
>            Reporter: jamie cormack
>
> Axis2 1.4 WebService. XMLBean Binding.
> Request message retains all namespaces correctly
> Response message looses the namespaces in later elements producing invalid XML
> SAMPLE 1  -  SOAP request envelope generated within the stub. This is correct all elements retaining the correct namespace.
> <?xml version="1.0" encoding="utf-8"?>
> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
> 	<soapenv:Body>
> 		<updateProductHolding xmlns="http://services.investman.co.uk">
> 			<ph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://investman.co.uk/cim/xsd" xsi:type="xsd:ProductHoldingBond">
> 				<commissionAccount xmlns="http://investman.co.uk/cim/xsd">
> 					<commissionAccountId>Comm Id 123</commissionAccountId>
> 				</commissionAccount>
> 				<jointLifeIndicator xmlns="http://investman.co.uk/cim/xsd">false</jointLifeIndicator>
> 				<policyNumber xmlns="http://investman.co.uk/cim/xsd">123456B001</policyNumber>
> 				<fundHolding xmlns="http://investman.co.uk/cim/xsd">
> 					<fund>
> 						<fundId>My Hedge Fund</fundId>
> 						<name>Hedging My Bets</name>
> 					</fund>
> 				</fundHolding>
> 				<fundHolding xmlns="http://investman.co.uk/cim/xsd">
> 					<exchangeRate>1.5</exchangeRate>
> 					<fund xsi:type="xsd:WithProfitsFund">
> 						<fundId>My With Profits Fund</fundId>
> 						<name>Aint no profit in this</name>
> 					</fund>
> 					<fundHoldingDate>2009-09-24T14:03:52.471+01:00</fundHoldingDate>
> 				</fundHolding>
> 				<fundHolding xmlns="http://investman.co.uk/cim/xsd">
> 					<exchangeRate>1.5</exchangeRate>
> 					<fund xsi:type="xsd:InvestmentFund">
> 						<fundId>My Investment Profits Fund</fundId>
> 						<name>You may not get out what u put in</name>
> 						<fundPriceDate>2009-09-24T14:03:52.565+01:00</fundPriceDate>
> 					</fund>
> 					<fundHoldingDate>2009-09-24T14:03:52.565+01:00</fundHoldingDate>
> 				</fundHolding>
> 			</ph>
> 		</updateProductHolding>
> 	</soapenv:Body>
> </soapenv:Envelope>
> SOAP Response message - namespace is set correctly for the top level and first child element.....the remaining elements do not retain
> their namespaces. This produces in valid XML / XMLBean Objects.
> <?xml version="1.0" encoding="utf-8"?>
> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
> 	<soapenv:Body>
> 		<updateProductHoldingResponse xmlns="http://services.investman.co.uk">
> 			<return xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://investman.co.uk/cim/xsd" xsi:type="xsd:ProductHoldingBond">
> 				<commissionAccount xmlns="http://investman.co.uk/cim/xsd">
> 					<commissionAccountId>Comm Id 123</commissionAccountId>
> 				</commissionAccount>
> 				<jointLifeIndicator>false</jointLifeIndicator>
> 				<policyNumber>123456B001 *** updated by service ***</policyNumber>
> 				<fundHolding>
> 					<exchangeRate>0.0</exchangeRate>
> 					<fund>
> 						<fundId>My Hedge Fund</fundId>
> 						<name>Hedging My Bets</name>
> 					</fund>
> 					<numberOfUnits>0.0</numberOfUnits>
> 				</fundHolding>
> 				<fundHolding>
> 					<exchangeRate>1.5</exchangeRate>
> 					<fund xsi:type="xsd:WithProfitsFund">
> 						<fundId>My With Profits Fund</fundId>
> 						<name>Aint no profit in this</name>
> 					</fund>
> 					<fundHoldingDate>2009-09-24T14:03:52.471+01:00</fundHoldingDate>
> 					<numberOfUnits>0.0</numberOfUnits>
> 				</fundHolding>
> 				<fundHolding>
> 					<exchangeRate>1.5</exchangeRate>
> 					<fund xsi:type="xsd:InvestmentFund">
> 						<fundId>My Investment Profits Fund</fundId>
> 						<name>You may not get out what u put in</name>
> 						<fundPriceDate>2009-09-24T14:03:52.565+01:00</fundPriceDate>
> 					</fund>
> 					<fundHoldingDate>2009-09-24T14:03:52.565+01:00</fundHoldingDate>
> 					<numberOfUnits>0.0</numberOfUnits>
> 				</fundHolding>
> 			</return>
> 		</updateProductHoldingResponse>
> 	</soapenv:Body>
> </soapenv:Envelope>
> NB - the service skeleton is returning correct / valid xml

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.