Missing ancestor (POJO) properties in SOAP response
----------------------------------------------------
Key: AXIS2-2436
URL: https://issues.apache.org/jira/browse/AXIS2-2436
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Affects Versions: 1.1.1
Environment: WinXP. JDK 1.5.10, Tomcat 5.5.16
Reporter: Ken Ricci
wow..Good Find Ken!
I was able to reproduce the problem by
introducing a new Base class
public class StockQuoteServiceSkeleton extends Base
public class Base extends Object implements java.io.Serializable
{
//the usual Bean no arg constructor
public Base() { ; }
protected String BaseString="BaseString";
public String getBaseString() { return BaseString; }
public void setBaseString(String new_base)
{
BaseString = new_base;
}
}
and then deriving my existing Class from Base called Base
package samples.quickstart.service.adb;
//import samples.quickstart.service.adb.xsd.GetPriceResponse;
//import samples.quickstart.service.adb.xsd.Update;
//import samples.quickstart.service.adb.xsd.GetPrice;
import java.util.HashMap;
import samples.quickstart.service.adb.Base;
public class StockQuoteServiceSkeleton extends Base { //implements
StockQuoteServiceSkeletonInterface {
private HashMap map = new HashMap();
// public void update(Update param0) {
public void update(String param0) {
//map.put(param0.getSymbol(), new Double(param0.getPrice()));
map.put("IBM", 42.0);
}
// public GetPriceResponse getPrice(GetPrice param1) {
public String getPrice(String param1) {
Double price = 42.0; //(Double) map.get(param1.getSymbol());
double ret = 42;
if(price != null){
// ret = price.doubleValue();
}
// GetPriceResponse res =
// new GetPriceResponse();
// res.set_return(ret);
// return res;
return "IBM";
}
}
I think Ken is entitiled to the next version for free!
Please post the bug here
POST JIRA here
http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&mode=hide&pid=10611&sorter/order=DESC&sorter/field=priority&resolution=-1&component=12310180
Thx,
Martin--
---------------------------------------------------------------------------
This e-mail message (including attachments, if any) is intended for the use of
the individual or entity to which it is addressed and may contain information
that is privileged, proprietary , confidential and exempt from disclosure. If
you are not the intended recipient, you are notified that any dissemination,
distribution or copying of this communication is strictly prohibited.
---------------------------------------------------------------------------
Le présent message électronique (y compris les pièces qui y sont annexées, le
cas échéant) s'adresse au destinataire indiqué et peut contenir des
renseignements de caractère privé ou confidentiel. Si vous n'êtes pas le
destinataire de ce document, nous vous signalons qu'il est strictement interdit
de le diffuser, de le distribuer ou de le reproduire.
----- Original Message -----
From: [EMAIL PROTECTED]
To: [email protected]
Cc: [EMAIL PROTECTED]
Sent: Thursday, March 29, 2007 10:50 AM
Subject: [Axis2] Missing ancestor properties in SOAP response
Taking the bottom up approach, exposing WS via POJOs and letting Axis2 generate
WSDL on the fly. The base properties of the POJO are not returned in SOAP
response, the WSDL is exposed however.
Any help is appreciated.
As you can see below, the elements in base class, are not in the response:
<xs:element name="basePriceDate" type="xs:dateTime" />
<xs:element name="changeOneDay" type="xs:float" />
<xs:element name="changeOneMonth" type="xs:float" />
<xs:element name="changeOneWeek" type="xs:float" />
<xs:element name="changeThreeMonths" type="xs:float" />
<xs:element name="currentPrice" type="xs:float" />
<xs:element name="intrinsicPrice" type="xs:float" />
Attached WSDL (snippet of complex type generated):
<wsdl:types>
<xs:schema xmlns:ax21="http://types.ws.gcs.ubs.com/xsd"
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://types.ws.gcs.ubs.com/xsd">
<xs:element name="CDSIndiceReturns" type="ax21:CDSIndiceReturns" />
<xs:complexType name="CDSIndiceReturns">
<xs:sequence>
<xs:element name="basePriceDate" type="xs:dateTime" />
<xs:element name="changeOneDay" type="xs:float" />
<xs:element name="changeOneMonth" type="xs:float" />
<xs:element name="changeOneWeek" type="xs:float" />
<xs:element name="changeThreeMonths" type="xs:float" />
<xs:element name="currentPrice" type="xs:float" />
<xs:element name="intrinsicPrice" type="xs:float" />
<xs:element name="indiceSeries" nillable="true" type="xs:string" />
<xs:element name="indiceVersion" nillable="true" type="xs:string" />
<xs:element name="maturityDate" type="xs:dateTime" />
<xs:element name="name" nillable="true" type="xs:string" />
<xs:element name="onTheRun" nillable="true" type="xs:string" />
<xs:element name="redcode" nillable="true" type="xs:string" />
<xs:element name="redcodeIdx" nillable="true" type="xs:string" />
<xs:element name="symbol" nillable="true" type="xs:string" />
<xs:element name="term" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
....
</xs:element>
...
<xs:element name="getCDSIndiceReturnsResponse">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="return" nillable="true"
type="ns0:CDSIndiceReturns" />
</xs:sequence>
</xs:complexType>
</xs:element>
...
</xs:schema>
</wsdl:types>
SOAP response:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoaporg/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns:getCDSIndiceReturnsResponse xmlns:ns="http://ubs.gcs/xsd">
<ns:return>
<indiceSeries xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<indiceVersion xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<maturityDate
xmlns="http://types.ws.gcs.ubs.com/xsd">0001-01-01T00:00:00.202Z</maturityDate>
<name xmlns="http://types.ws.gcs.ubs.com/xsd">DJ CDX NA - IG</name>
<onTheRun xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<redcode xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<redcodeIdx xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<symbol xmlns="http://types.ws.gcs.ubs.com/xsd">CDXNAIG</symbol>
<term xmlns="http://types.ws.gcs.ubs.com/xsd"/>
</ns:return>
<ns:return>
<indiceSeries xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<indiceVersion xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<maturityDate
xmlns="http://types.ws.gcs.ubs.com/xsd">0001-01-01T00:00:00.202Z</maturityDate>
<name xmlns="http://types.ws.gcs.ubs.com/xsd">DJ CDX NA - XO</name>
<onTheRun xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<redcode xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<redcodeIdx xmlns="http://types.ws.gcs.ubs.com/xsd"/>
<symbol xmlns="http://types.ws.gcs.ubs.com/xsd">CDXNAXO</symbol>
<term xmlns="http://types.ws.gcs.ubs.com/xsd"/>
</ns:return>
</ns:getCDSIndiceReturnsResponse>
</soapenv:Body>
</soapenv:Envelope>
Java Code (snippet):
public class BaseReturn implements Serializable {
/* Price/Returns data */
protected Calendar basePriceDate = null;
protected float currentPrice = 0;
protected float intrinsicPrice = 0;
protected float changeOneDay = 0;
protected float changeOneWeek = 0;
protected float changeOneMonth = 0;
protected float changeThreeMonths = 0;
...
public class CDSIndiceReturns extends BaseReturn implements Serializable {
private String symbol = "";
private String name = "";
private String term = "";
private String indiceSeries = "";
private String indiceVersion = "";
private Calendar maturityDate = null;
private String onTheRun = "";
private String redcode = "";
private String redcodeIdx = "";
______________________________________________
From: Ricci, Ken
Sent: Wednesday, March 28, 2007 12:55 PM
To: [email protected]
Cc: Ricci, Ken
Subject: [Axis2] Bean generated WSDL missing ancestor properties in SOAP
response
I have a base bean, ClassA with a few properties. The ClassA is extended by
ClassB for some additional properties. The generated WSDL for ClassB is
correct. However, the SOAP response omits all the elements/values from the
ancestor (ClassA)
Is this allowed in Axis2? I tried to create additional getters methods in
ClassB for the ClassA attributes. That will give me the correct SOAP
response, but double the generate WSDL elements for the ClassA attributes.
That confuses the WS client.
Help is appreciated.
Thx, Ken
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]