Hello.
Using WSDL2Java with the attached WSDL file produces a not compileable
MessageReceiver.
Too much braces. I marked up the lines.
Here's a snipped:
catch (org.apache.axis2.CareSkeleton.DeleteProductException e) {
org.apache.axis2.AxisFault f =
new
org.apache.axis2.AxisFault("DeleteProductException");
f.setDetail(toOM(e.getFaultMessage(),false));
throw f;
-----> }
}catch
(org.apache.axis2.CareSkeleton.SaveProductException e) {
org.apache.axis2.AxisFault f =
new
org.apache.axis2.AxisFault("SaveProductException");
f.setDetail(toOM(e.getFaultMessage(),false));
throw f;
}
}catch
(org.apache.axis2.CareSkeleton.UpdateProductException e) {
org.apache.axis2.AxisFault f =
new
org.apache.axis2.AxisFault("UpdateProductException");
f.setDetail(toOM(e.getFaultMessage(),false));
throw f;
-----> }
}catch
(org.apache.axis2.CareSkeleton.GetAllProductException e) {
org.apache.axis2.AxisFault f =
new
org.apache.axis2.AxisFault("GetAllProductException");
f.setDetail(toOM(e.getFaultMessage(),false));
throw f;
-----> }
}catch (org.apache.axis2.CareSkeleton.GetProductException
e) {
org.apache.axis2.AxisFault f =
new
org.apache.axis2.AxisFault("GetProductException");
f.setDetail(toOM(e.getFaultMessage(),false));
throw f;
}
I think the XSL-Template has to be changed or my WSDL-file is invalid.
PS: I have also a Thread about a Exception while using WSDL-Failures, so
please help me.
Thanks,
Siamak Haschemi
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="shop" targetNamespace="http://haschemi.org/shop" xmlns:ss="http://haschemi.org/shop"
xmlns:common="http://haschemi.org/shop/common">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://haschemi.org/shop/common">
<xsd:complexType name="product-type">
<xsd:sequence>
<xsd:element name="categoryId" type="xsd:long" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:long" />
<xsd:attribute name="dateOfExpiry" type="xsd:date" />
<xsd:attribute name="description" type="xsd:string" />
<xsd:attribute name="calorificValue" type="xsd:int" />
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="amount" type="xsd:float" />
<xsd:attribute name="amountUnit" type="xsd:string" />
<xsd:attribute name="fromTemperatureRange" type="xsd:float" />
<xsd:attribute name="toTemperatureRange" type="xsd:float" />
</xsd:complexType>
<xsd:element name="saveProductRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="product" type="common:product-type" minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="saveProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="productId" type="xsd:long" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="updateProductRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="product" type="common:product-type" minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="updateProductResponse" type="xsd:anyType" />
<xsd:element name="deleteProductRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="productId" type="xsd:long" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="deleteProductResponse" type="xsd:anyType" />
<xsd:element name="getAllProductRequest" type="xsd:anyType" />
<xsd:element name="getAllProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="product" type="common:product-type" minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProductRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="productId" type="xsd:long" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="product" type="common:product-type" minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="localizedMessage">
<xsd:attribute name="message" type="xsd:string" />
<xsd:attribute name="language">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="de_DE" />
<xsd:enumeration value="en_US" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:element name="saveProductExceptionMessage">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="localizedMessage" type="common:localizedMessage" minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="updateProductExceptionMessage">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="localizedMessage" type="common:localizedMessage" minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="deleteProductExceptionMessage">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="localizedMessage" type="common:localizedMessage" minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getAllProductExceptionMessage">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="localizedMessage" type="common:localizedMessage" minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProductExceptionMessage">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="localizedMessage" type="common:localizedMessage" minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="updateProductRequest">
<wsdl:part name="updateProductRequest" element="common:updateProductRequest"></wsdl:part>
</wsdl:message>
<wsdl:message name="updateProductResponse">
<wsdl:part name="updateProductResponse" element="common:updateProductResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="updateProduct">
<wsdl:part name="updateProduct" element="common:updateProductExceptionMessage"></wsdl:part>
</wsdl:message>
<wsdl:message name="deleteProductRequest">
<wsdl:part name="deleteProductRequest" element="common:deleteProductRequest"></wsdl:part>
</wsdl:message>
<wsdl:message name="deleteProductResponse">
<wsdl:part name="deleteProductResponse" element="common:deleteProductResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="deleteProduct">
<wsdl:part name="deleteProduct" element="common:deleteProductExceptionMessage"></wsdl:part>
</wsdl:message>
<wsdl:message name="saveProductResponse">
<wsdl:part name="saveProductResponse" element="common:saveProductResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="saveProductRequest">
<wsdl:part name="saveProductRequest" element="common:saveProductRequest"></wsdl:part>
</wsdl:message>
<wsdl:message name="saveProduct">
<wsdl:part name="saveProduct" element="common:saveProductExceptionMessage"></wsdl:part>
</wsdl:message>
<wsdl:message name="getAllProductResponse">
<wsdl:part name="getAllProductResponse" element="common:getAllProductResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="getAllProductRequest">
<wsdl:part name="getAllProductRequest" element="common:getAllProductRequest"></wsdl:part>
</wsdl:message>
<wsdl:message name="getAllProduct">
<wsdl:part name="getAllProduct" element="common:getAllProductExceptionMessage"></wsdl:part>
</wsdl:message>
<wsdl:message name="getProductResponse">
<wsdl:part name="getProductResponse" element="common:getProductResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="getProductRequest">
<wsdl:part name="getProductRequest" element="common:getProductRequest"></wsdl:part>
</wsdl:message>
<wsdl:message name="getProduct">
<wsdl:part name="getProduct" element="common:getProductExceptionMessage"></wsdl:part>
</wsdl:message>
<wsdl:portType name="CarePort">
<wsdl:operation name="updateProduct">
<wsdl:input message="ss:updateProductRequest"></wsdl:input>
<wsdl:output message="ss:updateProductResponse"></wsdl:output>
<wsdl:fault name="updateProduct" message="ss:updateProduct"></wsdl:fault>
</wsdl:operation>
<wsdl:operation name="deleteProduct">
<wsdl:input message="ss:deleteProductRequest"></wsdl:input>
<wsdl:output message="ss:deleteProductResponse"></wsdl:output>
<wsdl:fault name="deleteProduct" message="ss:deleteProduct"></wsdl:fault>
</wsdl:operation>
<wsdl:operation name="saveProduct">
<wsdl:input message="ss:saveProductRequest"></wsdl:input>
<wsdl:output message="ss:saveProductResponse"></wsdl:output>
<wsdl:fault name="saveProduct" message="ss:saveProduct"></wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getAllProduct">
<wsdl:input message="ss:getAllProductRequest"></wsdl:input>
<wsdl:output message="ss:getAllProductResponse"></wsdl:output>
<wsdl:fault name="getAllProduct" message="ss:getAllProduct"></wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getProduct">
<wsdl:input message="ss:getProductRequest"></wsdl:input>
<wsdl:output message="ss:getProductResponse"></wsdl:output>
<wsdl:fault name="getProduct" message="ss:getProduct"></wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CareBindingSOAP" type="ss:CarePort">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="updateProduct">
<soap:operation soapAction="http://haschemi.org/care/updateProduct" style="document" />
<wsdl:input>
<soap:body parts="updateProductRequest" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body parts="updateProductResponse" use="literal" />
</wsdl:output>
<wsdl:fault name="updateProduct">
<soap:fault name="updateProduct" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="deleteProduct">
<soap:operation soapAction="http://haschemi.org/care/deleteProduct" style="document" />
<wsdl:input>
<soap:body parts="deleteProductRequest" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body parts="deleteProductResponse" use="literal" />
</wsdl:output>
<wsdl:fault name="deleteProduct">
<soap:fault name="deleteProduct" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="saveProduct">
<soap:operation soapAction="http://haschemi.org/care/saveProduct" style="document" />
<wsdl:input>
<soap:body parts="saveProductRequest" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body parts="saveProductResponse" use="literal" />
</wsdl:output>
<wsdl:fault name="saveProduct">
<soap:fault name="saveProduct" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getAllProduct">
<soap:operation soapAction="http://haschemi.org/care/getAllProduct" style="document" />
<wsdl:input>
<soap:body parts="getAllProductRequest" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body parts="getAllProductResponse" use="literal" />
</wsdl:output>
<wsdl:fault name="getAllProduct">
<soap:fault name="getAllProduct" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getProduct">
<soap:operation soapAction="http://haschemi.org/care/getProduct" style="document" />
<wsdl:input>
<soap:body parts="getProductRequest" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body parts="getProductResponse" use="literal" />
</wsdl:output>
<wsdl:fault name="getProduct">
<soap:fault name="getProduct" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="care">
<wsdl:port name="CareSOAP" binding="ss:CareBindingSOAP">
<soap:address location="http://haschemi.org:8080/axis2/services/care/" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>