Hello,

i tried to customize the soap requests and responses. Thats all most done
but I've problems with the namespace prefix in the soap response.

The soap request is okaz and look like:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://bla/namespace/bla/";>
   <soapenv:Header/>
   <soapenv:Body>
      <ns:GetProgram>
         <ns:programId>49</ns:programId>
         <!--Optional:-->
         <ns:applicationId>F43487542E5A424A8818</ns:applicationId>
      </ns:GetProgram>
   </soapenv:Body>
</soapenv:Envelope>

The response is the problem look here

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
   <soap:Body>
      <ns2:GetProgramResponse xmlns:ns2="http://bla/namespace/bla/";>
         <ns2:return>
            <ns2:programsResult>
               <ns2:programItem id="49">
                  <ns2:adrank>0.0</ns2:adrank>
                  <ns2:products>0</ns2:products>
               </ns2:programItem>
            </ns2:programsResult>
         </ns2:return>
      </ns2:GetProgramResponse>
   </soap:Body>
</soap:Envelope>

And it should look like this

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
   <soap:Body>
      <GetProgramResponse xmlns="http://bla/namespace/bla/";>
         <return>
            <programsResult>
               <programItem id="49">
                  <adrank>0.0</ns2:adrank>
                  <products>0</ns2:products>
               </programItem>
            </programsResult>
         </return>
      </GetProgramResponse>
   </soap:Body>
</soap:Envelope>

I|ve tried all the things that I found in the internet. I implemented a
NamespacePrefixMapper but that didn|t solve the problem. 

So here some pieces of code. 

the package-info.java:

@javax.xml.bind.annotation.XmlSchema(namespace =
"http://bla/namespace/bla/";,  elementFormDefault =
javax.xml.bind.annotation.XmlNsForm.QUALIFIED)

the wsdl:

<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions
name="PublisherService" targetNamespace="http://bla/namespace/bla/";
xmlns:ns1="http://cxf.apache.org/bindings/xformat";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:tns="http://bla/namespace/bla/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
  <wsdl:types>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://bla/namespace/bla/";
xmlns:tns="http://bla/namespace/bla/";
xmlns:xs="http://www.w3.org/2001/XMLSchema";>
    <xs:element name="GetProgram" type="tns:GetProgram" />
    <xs:element name="GetProgramResponse" type="tns:GetProgramResponse" />
    <xs:complexType name="GetProgram">
        <xs:sequence>
            <xs:element name="programId" type="xs:int" />
            <xs:element minOccurs="0" name="applicationId" type="xs:string"
/>
        </xs:sequence>

    </xs:complexType>
    <xs:complexType name="GetProgramResponse">
        <xs:sequence>
            <xs:element minOccurs="0" name="return">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="page" type="xs:int"
/>
                        <xs:element minOccurs="0" name="items" type="xs:int"
/>
                        <xs:element minOccurs="0" name="total"
type="xs:long" />

                        <xs:element name="query" type="xs:string" />
                        <xs:element name="code" type="xs:string" />
                        <xs:element name="message" type="xs:string" />
                        <xs:element name="programsResult"
type="tns:programsResult" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="programsResult">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="programItem"
type="tns:programItem" />
            <xs:element name="categories" type="tns:categoriesType" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="programItem">
        <xs:sequence>
            <xs:element name="title" type="xs:string" />

            <xs:element name="name" type="xs:string" />
            <xs:element name="adrank" type="xs:float" />
            <xs:element name="description" type="xs:string" />
            <xs:element name="products" type="xs:int" />
            <xs:element name="vertical" type="xs:string" />
            <xs:element name="regions" type="tns:regionsType" />
            <xs:element name="categories" type="tns:categoriesType" />
            <xs:element name="startdate" type="xs:dateTime" />
            <xs:element name="enddate" type="xs:dateTime" />

            <xs:element name="url" type="xs:anyURI" />
            <xs:element name="image" type="xs:anyURI" />
            <xs:element name="currency" type="xs:string" />
            <xs:element name="conditions" type="tns:conditionsType" />
        </xs:sequence>
        <xs:attribute name="id" type="xs:int" use="required" />
        <xs:attribute name="lang" type="xs:string" />
    </xs:complexType>
    <xs:complexType name="regionsType">

        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="region"
nillable="true" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="categoriesType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="category"
nillable="true" type="tns:categoryType" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="categoryType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="id" type="xs:int" use="required" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="conditionsType">
        <xs:sequence>

            <xs:element name="views" type="tns:viewsType" />
            <xs:element name="clicks" type="tns:clicksType" />
            <xs:element name="leads" type="tns:leadsType" />
            <xs:element name="sales" type="tns:salesType" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="viewsType">
        <xs:sequence>
            <xs:element minOccurs="0" name="minfixed" type="xs:float" />

            <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="clicksType">
        <xs:sequence>
            <xs:element minOccurs="0" name="minfixed" type="xs:float" />
            <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="leadsType">
        <xs:sequence>
            <xs:element minOccurs="0" name="minfixed" type="xs:float" />
            <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="salesType">
        <xs:sequence>
            <xs:element minOccurs="0" name="minpercent" type="xs:float" />

            <xs:element minOccurs="0" name="maxpercent" type="xs:float" />
            <xs:element minOccurs="0" name="minfixed" type="xs:float" />
            <xs:element minOccurs="0" name="maxfixed" type="xs:float" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="SOAPException">
        <xs:sequence>
            <xs:element form="unqualified" minOccurs="0" name="message"
type="xs:string" />
        </xs:sequence>

    </xs:complexType>
    <xs:element name="SOAPException" nillable="true"
type="tns:SOAPException" />
</xs:schema>
  </wsdl:types>
  <wsdl:message name="GetProgram">
    <wsdl:part element="tns:GetProgram" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="GetProgramResponse">

    <wsdl:part element="tns:GetProgramResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="SOAPException_Exception">
    <wsdl:part element="tns:SOAPException" name="SOAPException_Exception">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="PublisherSoap">
    <wsdl:operation name="GetProgram">

      <wsdl:input message="tns:GetProgram" name="GetProgram">
    </wsdl:input>
      <wsdl:output message="tns:GetProgramResponse"
name="GetProgramResponse">
    </wsdl:output>
      <wsdl:fault message="tns:SOAPException_Exception"
name="SOAPException_Exception">
    </wsdl:fault>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="PublisherServiceSoapBinding" type="tns:PublisherSoap">

    <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"; />
    <wsdl:operation name="GetProgram">
      <soap:operation soapAction="" style="document" />
      <wsdl:input name="GetProgram">
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output name="GetProgramResponse">
        <soap:body use="literal" />
      </wsdl:output>

      <wsdl:fault name="SOAPException_Exception">
        <soap:fault name="SOAPException_Exception" use="literal" />
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="PublisherService">
    <wsdl:port binding="tns:PublisherServiceSoapBinding"
name="PublisherService">
      <soap:address location="http://localhost/SoapService"; />
    </wsdl:port>

  </wsdl:service>
</wsdl:definitions>

Any advices for me.

Thanks for your attention

-- 
View this message in context: 
http://www.nabble.com/problem-with-jaxb-and-namespace-prefix-tp19901215p19901215.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to