antelder 2002/11/15 08:46:45
Modified: java/src/org/apache/wsif/providers/soap/apacheaxis
WSIFOperation_ApacheAxis.java
Added: java/test/docStyle NWBankTest.java
java/test/docStyle/wsifservice nwBank.wsdl
Currencyrates.java Currency.java nwBankLocal.wsdl
PwspNoCentrbankCurRatesSoap.java
ArrayOfCurrency.java
Log:
Another docstyle test for the axis provider and fix the axis operation so the test
works
Revision Changes Path
1.1 xml-axis-wsif/java/test/docStyle/NWBankTest.java
Index: NWBankTest.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "WSIF" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 2001, 2002, International
* Business Machines, Inc., http://www.apache.org. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package docStyle;
import java.io.StringReader;
import java.io.StringWriter;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.wsif.WSIFMessage;
import org.apache.wsif.WSIFOperation;
import org.apache.wsif.WSIFPort;
import org.apache.wsif.WSIFService;
import org.apache.wsif.WSIFServiceFactory;
import org.apache.xerces.parsers.DOMParser;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import docStyle.wsifservice.Currencyrates;
import docStyle.wsifservice.PwspNoCentrbankCurRatesSoap;
import docStyle.wsifservice.ZipCodeResolverSoap;
import util.TestUtilities;
/**
* Junit test to test out the AXIS provider docstyle support.
* Uses the norwegian central bank daily rates service
* (this has no input parts and returns complex types)
*/
public class NWBankTest extends TestCase {
String wsdlLocation =
TestUtilities.getWsdlPath("java\\test\\docStyle\\wsifservice")
+ "nwBank.wsdl";
// + "nwBankLocal.wsdl";
public NWBankTest(String name) {
super(name);
}
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public static Test suite() {
return new TestSuite(NWBankTest.class);
}
public void setUp() {
TestUtilities.setUpExtensionsAndProviders();
}
public void testDynamicAxis() {
doitDyn("pwspNoCentrbankCurRatesSoap", "axis");
//TODO doitStub("pwspNoCentrbankCurRatesSoap", "axis");
}
private void doitDyn(String portName, String protocol) {
if (portName.toUpperCase().indexOf("JMS") != -1
&& !TestUtilities.areWeTesting("jms"))
return;
TestUtilities.setProviderForProtocol(protocol);
try {
WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
WSIFService service =
factory.getService(
wsdlLocation,
null,
null,
"http/www.pointwsp.net/ws/finance",
"pwspNoCentrbankCurRatesSoap");
service.mapType(
new javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance",
"currencyrates"),
docStyle.wsifservice.Currencyrates.class );
service.mapType(
new javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance",
"ArrayOfCurrency"),
docStyle.wsifservice.ArrayOfCurrency.class);
service.mapType(
new javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance",
"currency"),
docStyle.wsifservice.Currency.class);
WSIFPort port = service.getPort(portName);
WSIFOperation operation = port.createOperation("GetRatesXML");
WSIFMessage inMsg = operation.createInputMessage();
WSIFMessage outMsg = operation.createOutputMessage();
WSIFMessage faultMsg = operation.createFaultMessage();
boolean ok =
operation.executeRequestResponseOperation(
inMsg,
outMsg,
faultMsg);
assertTrue("operation returned false!!", ok);
Object o = outMsg.getObjectPart("GetRatesXMLResult");
assertTrue("unexpected result: " + o, o instanceof
Currencyrates);
// Currencyrates cr = (Currencyrates) o;
// System.out.println("source=" + cr.getSource());
} catch (Exception ex) {
ex.printStackTrace();
assertTrue(
"AddressBookTest("
+ portName
+ ") caught exception "
+ ex.getLocalizedMessage(),
false);
}
}
private void doitStub(String portName, String protocol) {
if (portName.toUpperCase().indexOf("JMS") != -1
&& !TestUtilities.areWeTesting("jms"))
return;
TestUtilities.setProviderForProtocol(protocol);
try {
WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
WSIFService service =
factory.getService(
wsdlLocation,
null,
null,
"http/www.pointwsp.net/ws/finance",
"pwspNoCentrbankCurRatesSoap");
PwspNoCentrbankCurRatesSoap stub = (PwspNoCentrbankCurRatesSoap)
service.getStub(portName, PwspNoCentrbankCurRatesSoap.class);
Object o = stub.GetRatesXML();
assertTrue("unexpected result: " + o, o instanceof
Currencyrates);
Currencyrates cr = (Currencyrates) o;
System.out.println("source=" + cr.getSource());
} catch (Exception ex) {
ex.printStackTrace();
assertTrue(
"AddressBookTest("
+ portName
+ ") caught exception "
+ ex.getLocalizedMessage(),
false);
}
}
private void doitMessaging(String portName, String protocol) {
if (portName.toUpperCase().indexOf("JMS") != -1
&& !TestUtilities.areWeTesting("jms"))
return;
TestUtilities.setProviderForProtocol(protocol);
try {
WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
WSIFService service =
factory.getService(
wsdlLocation,
null,
null,
"http://webservices.eraserver.net/",
"ZipCodeResolverSoap");
WSIFPort port = service.getPort(portName);
WSIFOperation operation = port.createOperation("ShortZipCode");
WSIFMessage inMsg = operation.createInputMessage();
WSIFMessage outMsg = operation.createOutputMessage();
WSIFMessage faultMsg = operation.createFaultMessage();
String inputDocument =
"<ShortZipCode
xmlns=\"http://webservices.eraserver.net/\">"
+ "<accessCode>9999</accessCode>"
+ "<address>607 Trinity</address>"
+ "<city>Austin</city>"
+ "<state>TX</state>"
+ "</ShortZipCode>";
DOMParser parser = new DOMParser();
String xmlString = "<?xml version=\"1.0\"?>\n" + inputDocument;
parser.parse(new InputSource(new StringReader(xmlString)));
Element element = parser.getDocument().getDocumentElement();
//printElement(element);
inMsg.setObjectPart("parameters", element);
boolean ok =
operation.executeRequestResponseOperation(
inMsg,
outMsg,
faultMsg);
assertTrue("operation returned false!!", ok);
Element responseElement =
(Element) outMsg.getObjectPart("parameters");
assertTrue("return element is null!!", responseElement !=
null);
// printElement(responseElement);
NodeList nl = responseElement.getChildNodes();
Node n = nl.item(0); // "ShortZipCodeResponse"
nl = n.getChildNodes();
n = nl.item(0); // "ShortZipCodeResult"
String s = n.getNodeValue();
if (!"78701".equals(s)) {
printElement(responseElement);
}
assertTrue("wrong zipcode: " + s + "!!", "78701".equals(s));
} catch (Exception ex) {
ex.printStackTrace();
assertTrue(
"AddressBookTest("
+ portName
+ ") caught exception "
+ ex.getLocalizedMessage(),
false);
}
}
private void printElement(Element e) throws Exception {
OutputFormat of = new OutputFormat(e.getOwnerDocument(), "UTF-8",
true);
XMLSerializer xmls = new XMLSerializer(of);
StringWriter sw = new StringWriter();
xmls.setOutputCharStream(sw);
xmls.serialize(e);
System.err.println("element=" + sw.toString());
}
}
1.1 xml-axis-wsif/java/test/docStyle/wsifservice/nwBank.wsdl
Index: nwBank.wsdl
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http/www.pointwsp.net/ws/finance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http/www.pointwsp.net/ws/finance"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified"
targetNamespace="http/www.pointwsp.net/ws/finance">
<s:element name="GetRatesXML">
<s:complexType />
</s:element>
<s:element name="GetRatesXMLResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetRatesXMLResult"
type="s0:currencyrates" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="currencyrates">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="source" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="basecurrency" type="s:string"
/>
<s:element minOccurs="0" maxOccurs="1" name="ratelist"
type="s0:ArrayOfCurrency" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfCurrency">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="currency"
nillable="true" type="s0:currency" />
</s:sequence>
</s:complexType>
<s:complexType name="currency">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ratedate" type="s:dateTime"
/>
<s:element minOccurs="0" maxOccurs="1" name="code" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="unit" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="rate" type="s:decimal" />
</s:sequence>
</s:complexType>
<s:element name="currencyrates" nillable="true" type="s0:currencyrates" />
</s:schema>
</types>
<message name="GetRatesXMLSoapIn">
<part name="parameters" element="s0:GetRatesXML" />
</message>
<message name="GetRatesXMLSoapOut">
<part name="parameters" element="s0:GetRatesXMLResponse" />
</message>
<message name="GetRatesXMLHttpGetIn" />
<message name="GetRatesXMLHttpGetOut">
<part name="Body" element="s0:currencyrates" />
</message>
<message name="GetRatesXMLHttpPostIn" />
<message name="GetRatesXMLHttpPostOut">
<part name="Body" element="s0:currencyrates" />
</message>
<portType name="pwspNoCentrbankCurRatesSoap">
<operation name="GetRatesXML">
<documentation>Last daily rates quoted by norwegian central
bank</documentation>
<input message="s0:GetRatesXMLSoapIn" />
<output message="s0:GetRatesXMLSoapOut" />
</operation>
</portType>
<portType name="pwspNoCentrbankCurRatesHttpGet">
<operation name="GetRatesXML">
<documentation>Last daily rates quoted by norwegian central
bank</documentation>
<input message="s0:GetRatesXMLHttpGetIn" />
<output message="s0:GetRatesXMLHttpGetOut" />
</operation>
</portType>
<portType name="pwspNoCentrbankCurRatesHttpPost">
<operation name="GetRatesXML">
<documentation>Last daily rates quoted by norwegian central
bank</documentation>
<input message="s0:GetRatesXMLHttpPostIn" />
<output message="s0:GetRatesXMLHttpPostOut" />
</operation>
</portType>
<binding name="pwspNoCentrbankCurRatesSoap" type="s0:pwspNoCentrbankCurRatesSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"
/>
<operation name="GetRatesXML">
<soap:operation soapAction="http/www.pointwsp.net/ws/finance/GetRatesXML"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<binding name="pwspNoCentrbankCurRatesHttpGet"
type="s0:pwspNoCentrbankCurRatesHttpGet">
<http:binding verb="GET" />
<operation name="GetRatesXML">
<http:operation location="/GetRatesXML" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
</binding>
<binding name="pwspNoCentrbankCurRatesHttpPost"
type="s0:pwspNoCentrbankCurRatesHttpPost">
<http:binding verb="POST" />
<operation name="GetRatesXML">
<http:operation location="/GetRatesXML" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
</binding>
<service name="pwspNoCentrbankCurRates">
<documentation>Shows norwegian central bank daily rates</documentation>
<port name="pwspNoCentrbankCurRatesSoap"
binding="s0:pwspNoCentrbankCurRatesSoap">
<soap:address location="http://server1.pointwsp.net/ws/finance/currency.asmx"
/>
</port>
<port name="pwspNoCentrbankCurRatesHttpGet"
binding="s0:pwspNoCentrbankCurRatesHttpGet">
<http:address location="http://server1.pointwsp.net/ws/finance/currency.asmx"
/>
</port>
<port name="pwspNoCentrbankCurRatesHttpPost"
binding="s0:pwspNoCentrbankCurRatesHttpPost">
<http:address location="http://server1.pointwsp.net/ws/finance/currency.asmx"
/>
</port>
</service>
</definitions>
1.1 xml-axis-wsif/java/test/docStyle/wsifservice/Currencyrates.java
Index: Currencyrates.java
===================================================================
/**
* Currencyrates.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package docStyle.wsifservice;
public class Currencyrates implements java.io.Serializable {
private java.lang.String source;
private java.lang.String basecurrency;
private docStyle.wsifservice.ArrayOfCurrency ratelist;
public Currencyrates() {
}
public java.lang.String getSource() {
return source;
}
public void setSource(java.lang.String source) {
this.source = source;
}
public java.lang.String getBasecurrency() {
return basecurrency;
}
public void setBasecurrency(java.lang.String basecurrency) {
this.basecurrency = basecurrency;
}
public docStyle.wsifservice.ArrayOfCurrency getRatelist() {
return ratelist;
}
public void setRatelist(docStyle.wsifservice.ArrayOfCurrency ratelist) {
this.ratelist = ratelist;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof Currencyrates)) return false;
Currencyrates other = (Currencyrates) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((source==null && other.getSource()==null) ||
(source!=null &&
source.equals(other.getSource()))) &&
((basecurrency==null && other.getBasecurrency()==null) ||
(basecurrency!=null &&
basecurrency.equals(other.getBasecurrency()))) &&
((ratelist==null && other.getRatelist()==null) ||
(ratelist!=null &&
ratelist.equals(other.getRatelist())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getSource() != null) {
_hashCode += getSource().hashCode();
}
if (getBasecurrency() != null) {
_hashCode += getBasecurrency().hashCode();
}
if (getRatelist() != null) {
_hashCode += getRatelist().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(Currencyrates.class);
static {
org.apache.axis.description.FieldDesc field = new
org.apache.axis.description.ElementDesc();
field.setFieldName("source");
field.setXmlName(new
javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance", "source"));
field.setXmlType(new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
field.setMinOccursIs0(true);
typeDesc.addFieldDesc(field);
field = new org.apache.axis.description.ElementDesc();
field.setFieldName("basecurrency");
field.setXmlName(new
javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance", "basecurrency"));
field.setXmlType(new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
field.setMinOccursIs0(true);
typeDesc.addFieldDesc(field);
field = new org.apache.axis.description.ElementDesc();
field.setFieldName("ratelist");
field.setXmlName(new
javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance", "ratelist"));
field.setXmlType(new
javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance", "ArrayOfCurrency"));
field.setMinOccursIs0(true);
typeDesc.addFieldDesc(field);
};
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() {
return typeDesc;
}
/**
* Get Custom Serializer
*/
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanSerializer(
_javaType, _xmlType, typeDesc);
}
/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanDeserializer(
_javaType, _xmlType, typeDesc);
}
}
1.1 xml-axis-wsif/java/test/docStyle/wsifservice/Currency.java
Index: Currency.java
===================================================================
/**
* Currency.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package docStyle.wsifservice;
public class Currency implements java.io.Serializable {
private java.util.Calendar ratedate;
private java.lang.String code;
private int unit;
private java.math.BigDecimal rate;
public Currency() {
}
public java.util.Calendar getRatedate() {
return ratedate;
}
public void setRatedate(java.util.Calendar ratedate) {
this.ratedate = ratedate;
}
public java.lang.String getCode() {
return code;
}
public void setCode(java.lang.String code) {
this.code = code;
}
public int getUnit() {
return unit;
}
public void setUnit(int unit) {
this.unit = unit;
}
public java.math.BigDecimal getRate() {
return rate;
}
public void setRate(java.math.BigDecimal rate) {
this.rate = rate;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof Currency)) return false;
Currency other = (Currency) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((ratedate==null && other.getRatedate()==null) ||
(ratedate!=null &&
ratedate.equals(other.getRatedate()))) &&
((code==null && other.getCode()==null) ||
(code!=null &&
code.equals(other.getCode()))) &&
unit == other.getUnit() &&
((rate==null && other.getRate()==null) ||
(rate!=null &&
rate.equals(other.getRate())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getRatedate() != null) {
_hashCode += getRatedate().hashCode();
}
if (getCode() != null) {
_hashCode += getCode().hashCode();
}
_hashCode += getUnit();
if (getRate() != null) {
_hashCode += getRate().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(Currency.class);
static {
org.apache.axis.description.FieldDesc field = new
org.apache.axis.description.ElementDesc();
field.setFieldName("ratedate");
field.setXmlName(new
javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance", "ratedate"));
field.setXmlType(new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
typeDesc.addFieldDesc(field);
field = new org.apache.axis.description.ElementDesc();
field.setFieldName("code");
field.setXmlName(new
javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance", "code"));
field.setXmlType(new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
field.setMinOccursIs0(true);
typeDesc.addFieldDesc(field);
field = new org.apache.axis.description.ElementDesc();
field.setFieldName("unit");
field.setXmlName(new
javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance", "unit"));
field.setXmlType(new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
typeDesc.addFieldDesc(field);
field = new org.apache.axis.description.ElementDesc();
field.setFieldName("rate");
field.setXmlName(new
javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance", "rate"));
field.setXmlType(new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "decimal"));
typeDesc.addFieldDesc(field);
};
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() {
return typeDesc;
}
/**
* Get Custom Serializer
*/
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanSerializer(
_javaType, _xmlType, typeDesc);
}
/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanDeserializer(
_javaType, _xmlType, typeDesc);
}
}
1.1 xml-axis-wsif/java/test/docStyle/wsifservice/nwBankLocal.wsdl
Index: nwBankLocal.wsdl
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http/www.pointwsp.net/ws/finance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http/www.pointwsp.net/ws/finance"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified"
targetNamespace="http/www.pointwsp.net/ws/finance">
<s:element name="GetRatesXML">
<s:complexType />
</s:element>
<s:element name="GetRatesXMLResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetRatesXMLResult"
type="s0:currencyrates" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="currencyrates">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="source" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="basecurrency" type="s:string"
/>
<s:element minOccurs="0" maxOccurs="1" name="ratelist"
type="s0:ArrayOfCurrency" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfCurrency">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="currency"
nillable="true" type="s0:currency" />
</s:sequence>
</s:complexType>
<s:complexType name="currency">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ratedate" type="s:dateTime"
/>
<s:element minOccurs="0" maxOccurs="1" name="code" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="unit" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="rate" type="s:decimal" />
</s:sequence>
</s:complexType>
<s:element name="currencyrates" nillable="true" type="s0:currencyrates" />
</s:schema>
</types>
<message name="GetRatesXMLSoapIn">
<part name="parameters" element="s0:GetRatesXML" />
</message>
<message name="GetRatesXMLSoapOut">
<part name="parameters" element="s0:GetRatesXMLResponse" />
</message>
<message name="GetRatesXMLHttpGetIn" />
<message name="GetRatesXMLHttpGetOut">
<part name="Body" element="s0:currencyrates" />
</message>
<message name="GetRatesXMLHttpPostIn" />
<message name="GetRatesXMLHttpPostOut">
<part name="Body" element="s0:currencyrates" />
</message>
<portType name="pwspNoCentrbankCurRatesSoap">
<operation name="GetRatesXML">
<documentation>Last daily rates quoted by norwegian central
bank</documentation>
<input message="s0:GetRatesXMLSoapIn" />
<output message="s0:GetRatesXMLSoapOut" />
</operation>
</portType>
<portType name="pwspNoCentrbankCurRatesHttpGet">
<operation name="GetRatesXML">
<documentation>Last daily rates quoted by norwegian central
bank</documentation>
<input message="s0:GetRatesXMLHttpGetIn" />
<output message="s0:GetRatesXMLHttpGetOut" />
</operation>
</portType>
<portType name="pwspNoCentrbankCurRatesHttpPost">
<operation name="GetRatesXML">
<documentation>Last daily rates quoted by norwegian central
bank</documentation>
<input message="s0:GetRatesXMLHttpPostIn" />
<output message="s0:GetRatesXMLHttpPostOut" />
</operation>
</portType>
<binding name="pwspNoCentrbankCurRatesSoap" type="s0:pwspNoCentrbankCurRatesSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"
/>
<operation name="GetRatesXML">
<soap:operation soapAction="http/www.pointwsp.net/ws/finance/GetRatesXML"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<binding name="pwspNoCentrbankCurRatesHttpGet"
type="s0:pwspNoCentrbankCurRatesHttpGet">
<http:binding verb="GET" />
<operation name="GetRatesXML">
<http:operation location="/GetRatesXML" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
</binding>
<binding name="pwspNoCentrbankCurRatesHttpPost"
type="s0:pwspNoCentrbankCurRatesHttpPost">
<http:binding verb="POST" />
<operation name="GetRatesXML">
<http:operation location="/GetRatesXML" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
</binding>
<service name="pwspNoCentrbankCurRates">
<documentation>Shows norwegian central bank daily rates</documentation>
<port name="pwspNoCentrbankCurRatesSoap"
binding="s0:pwspNoCentrbankCurRatesSoap">
<!-- <soap:address location="http://server1.pointwsp.net/ws/finance/currency.asmx"
/> -->
<soap:address location="http://localhost:8080/soap/servlet/rpcrouter"/>
</port>
<port name="pwspNoCentrbankCurRatesHttpGet"
binding="s0:pwspNoCentrbankCurRatesHttpGet">
<http:address location="http://server1.pointwsp.net/ws/finance/currency.asmx"
/>
</port>
<port name="pwspNoCentrbankCurRatesHttpPost"
binding="s0:pwspNoCentrbankCurRatesHttpPost">
<http:address location="http://server1.pointwsp.net/ws/finance/currency.asmx"
/>
</port>
</service>
</definitions>
1.1
xml-axis-wsif/java/test/docStyle/wsifservice/PwspNoCentrbankCurRatesSoap.java
Index: PwspNoCentrbankCurRatesSoap.java
===================================================================
/**
* PwspNoCentrbankCurRatesSoap.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package docStyle.wsifservice;
public interface PwspNoCentrbankCurRatesSoap extends java.rmi.Remote {
/**
* Last daily rates quoted by norwegian central bank
*/
public docStyle.wsifservice.Currencyrates GetRatesXML() throws
java.rmi.RemoteException;
}
1.1
xml-axis-wsif/java/test/docStyle/wsifservice/ArrayOfCurrency.java
Index: ArrayOfCurrency.java
===================================================================
/**
* ArrayOfCurrency.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package docStyle.wsifservice;
public class ArrayOfCurrency implements java.io.Serializable {
private docStyle.wsifservice.Currency[] currency;
public ArrayOfCurrency() {
}
public docStyle.wsifservice.Currency[] getCurrency() {
return currency;
}
public void setCurrency(docStyle.wsifservice.Currency[] currency) {
this.currency = currency;
}
public docStyle.wsifservice.Currency getCurrency(int i) {
return currency[i];
}
public void setCurrency(int i, docStyle.wsifservice.Currency value) {
this.currency[i] = value;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof ArrayOfCurrency)) return false;
ArrayOfCurrency other = (ArrayOfCurrency) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((currency==null && other.getCurrency()==null) ||
(currency!=null &&
java.util.Arrays.equals(currency, other.getCurrency())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getCurrency() != null) {
for (int i=0;
i<java.lang.reflect.Array.getLength(getCurrency());
i++) {
java.lang.Object obj = java.lang.reflect.Array.get(getCurrency(), i);
if (obj != null &&
!obj.getClass().isArray()) {
_hashCode += obj.hashCode();
}
}
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(ArrayOfCurrency.class);
static {
org.apache.axis.description.FieldDesc field = new
org.apache.axis.description.ElementDesc();
field.setFieldName("currency");
field.setXmlName(new
javax.xml.namespace.QName("http/www.pointwsp.net/ws/finance", "currency"));
field.setMinOccursIs0(true);
typeDesc.addFieldDesc(field);
};
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() {
return typeDesc;
}
/**
* Get Custom Serializer
*/
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanSerializer(
_javaType, _xmlType, typeDesc);
}
/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanDeserializer(
_javaType, _xmlType, typeDesc);
}
}
1.34 +40 -44
xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java
Index: WSIFOperation_ApacheAxis.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- WSIFOperation_ApacheAxis.java 15 Nov 2002 09:32:36 -0000 1.33
+++ WSIFOperation_ApacheAxis.java 15 Nov 2002 16:46:45 -0000 1.34
@@ -388,6 +388,28 @@
return;
}
+ public boolean executeRequestResponseOperation(
+ WSIFMessage inMsg,
+ WSIFMessage outMsg,
+ WSIFMessage faultMsg)
+ throws WSIFException {
+
+ Trc.entry(this, inMsg, outMsg, faultMsg);
+ close();
+ setAsyncOperation(false);
+
+ boolean succ;
+ if ("document".equals(style)) {
+ succ =
+ invokeRequestResponseOperationDocument(inMsg, outMsg,
faultMsg);
+ } else {
+ succ = invokeRequestResponseOperation(inMsg, outMsg, faultMsg);
+ }
+
+ Trc.exit(succ);
+ return succ;
+ }
+
/**
* Performs a request response operation asynchronously.
*
@@ -774,28 +796,6 @@
Trc.exit();
}
- public boolean executeRequestResponseOperation(
- WSIFMessage inMsg,
- WSIFMessage outMsg,
- WSIFMessage faultMsg)
- throws WSIFException {
-
- Trc.entry(this, inMsg, outMsg, faultMsg);
- close();
- setAsyncOperation(false);
-
- boolean succ;
- if ("document".equals(style)) {
- succ =
- invokeRequestResponseOperationDocument(inMsg, outMsg,
faultMsg);
- } else {
- succ = invokeRequestResponseOperation(inMsg, outMsg, faultMsg);
- }
-
- Trc.exit(succ);
- return succ;
- }
-
public boolean invokeRequestResponseOperation(
WSIFMessage wsifmessage,
WSIFMessage wsifmessage1,
@@ -922,15 +922,11 @@
boolean workedOK = false;
Call call = portInstance.getCall();
- Service service = new Service();
- try {
- call = (Call) service.createCall();
- } catch (ServiceException ex) {
- throw new WSIFException("ex creating call: " +
ex.getLocalizedMessage(), ex);
- }
-
call.setSOAPActionURI(getSoapActionURI());
call.setTargetEndpointAddress(portInstance.getEndPoint());
+ call.setEncodingStyle(null);
+ inputEncodingStyle = "";
+ outputEncodingStyle = "";
Input inputMsg = operation.getInput();
if (inputMsg != null) {
@@ -972,17 +968,21 @@
}
private boolean isMessaging(WSIFMessage msg) {
- boolean allDomElements = true;
+ boolean allDOMElements = true;
+ boolean anyDOMElements = false;
//TODO this should ignore any MIME parts
if (msg != null) {
- for (Iterator i = msg.getParts(); i.hasNext() &&
allDomElements;) {
- if (!(i.next() instanceof Element)) {
- allDomElements = false;
+ for (Iterator i = msg.getParts(); i.hasNext();) {
+ Object o = i.next();
+ if (o instanceof Element) {
+ anyDOMElements = true;
+ } else {
+ allDOMElements = false;
}
}
}
- return allDomElements;
+ return anyDOMElements && allDOMElements;
}
private boolean doAXISDocStyle(
Call call,
@@ -995,7 +995,6 @@
// setup the call object
call.setOperationName(new QName(getInputNamespace(),
operation.getName()));
- call.setEncodingStyle(null);
call.setScopedProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);
call.setScopedProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
call.setOperationStyle(style);
@@ -1021,6 +1020,7 @@
Object response;
try {
response = call.invoke(inputValues);
+ respOK = true;
} catch (RemoteException ex) {
ex.printStackTrace();
throw new WSIFException(
@@ -1096,17 +1096,14 @@
Trc.entry(this,call);
// register any WSIFDynamicTypeMappings
- if ( "rpc".equals( style ) ) {
- //TODO: fails for "document" as the element types are mapped
- registerTypeMappings(call);
- }
+ registerTypeMappings(call);
// create the arrays for the input parts
List inputParts = getInputParts();
this.inputPartNames = getPartNamesArray(inputParts);
this.inputPartQNs = getPartQNamesArray(inputParts);
this.inputPartTypeQNs = getPartTypeQNamesArray(inputParts);
- this.inputPartTypes = getPartTypesArray(inputParts, call);
+ this.inputPartTypes = getPartTypesArray(inputParts, call,
inputEncodingStyle);
registerMIMETypes(inputPartNames, inputPartTypes, inputPartTypeQNs,
call);
// create the arrays for the output parts
@@ -1114,7 +1111,7 @@
this.outputPartNames = getPartNamesArray(outputParts);
this.outputPartQNs = getPartQNamesArray(outputParts);
this.outputPartTypeQNs = getPartTypeQNamesArray(outputParts);
- this.outputPartTypes = getPartTypesArray(outputParts, call);
+ this.outputPartTypes = getPartTypesArray(outputParts, call,
outputEncodingStyle);
registerMIMETypes(outputPartNames, outputPartTypes, outputPartTypeQNs,
call);
// the index in the output part arrays of the return part
@@ -1356,14 +1353,13 @@
/**
* Returns a Class array of the class of each part
*/
- private Class[] getPartTypesArray(List parts, Call call)
+ private Class[] getPartTypesArray(List parts, Call call, String encodingStyle)
throws WSIFException {
TypeMappingRegistry registry =
call.getMessageContext().getTypeMappingRegistry();
Object o =
- registry.getTypeMapping(
- "http://schemas.xmlsoap.org/soap/encoding/");
+ registry.getTypeMapping( encodingStyle );
if (!(o instanceof TypeMapping)) {
throw new WSIFException("expecting a TypeMapping but found: "
+ o);
}