Hi,

may I expect an answer to my problem or do I have to live with it ?

Regards,

Jürgen

> -----Ursprüngliche Nachricht-----
> Von: Jürgen Bockhorn
> Gesendet: Montag, 21. März 2011 10:30
> An: [email protected]
> Betreff: AW: AW: Problems to create a cxfbc:provider/consumer proxy
> bridge
>
> Hi,
>
> as it seems that attachments don't work I past both WSDLs.
>
> Original WSDL:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="wsdl-first"
>       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>       xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>       xmlns:tns="http://servicemix.apache.org/samples/wsdl-first";
>       xmlns:typens="http://servicemix.apache.org/samples/wsdl-
> first/types"
>       targetNamespace="http://servicemix.apache.org/samples/wsdl-
> first">
>
>       <wsdl:types>
>       <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>         targetNamespace="http://servicemix.apache.org/samples/wsdl-
> first/types"
>         xmlns:jaxb="http://java.sun.com/xml/ns/jaxb";
>         jaxb:version="2.0">
>         <xsd:annotation><xsd:appinfo>
>           <jaxb:schemaBindings>
>             <jaxb:package name="de.heuboe.simtd.tmm.jaxb"/>
>           </jaxb:schemaBindings>
>         </xsd:appinfo></xsd:annotation>
>
>         <xsd:include schemaLocation="person.xsd" />
>
>       </xsd:schema>
>   </wsdl:types>
>
>       <wsdl:message name="GetPersonRequest">
>               <wsdl:part name="payload" element="typens:GetPerson"/>
>       </wsdl:message>
>       <wsdl:message name="GetPersonResponse">
>               <wsdl:part name="payload"
> element="typens:GetPersonResponse"/>
>       </wsdl:message>
>       <wsdl:message name="UnknownPersonFault">
>               <wsdl:part name="payload"
> element="typens:UnknownPersonFault"/>
>       </wsdl:message>
>
>     <wsdl:portType name="Person">
>               <wsdl:operation name="GetPerson">
>                       <wsdl:input message="tns:GetPersonRequest"/>
>                       <wsdl:output message="tns:GetPersonResponse"/>
>                       <wsdl:fault name="UnknownPerson"
> message="tns:UnknownPersonFault"/>
>               </wsdl:operation>
>       </wsdl:portType>
>
>     <wsdl:binding name="PersonSOAPBinding" type="tns:Person">
>       <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"; />
>               <wsdl:operation name="GetPerson">
>                       <wsdl:input>
>                               <soap:body use="literal" />
>                       </wsdl:input>
>                       <wsdl:output>
>                               <soap:body use="literal" />
>                       </wsdl:output>
>                       <wsdl:fault name="UnknownPerson">
>                               <soap:fault use="literal"
> name="UnknownPerson" />
>                       </wsdl:fault>
>        </wsdl:operation>
>    </wsdl:binding>
>       <wsdl:service name="PersonService">
>       <wsdl:port binding="tns:PersonSOAPBinding" name="soap">
>            <soap:address location="http://localhost:8092/PersonService/"; />
>        </wsdl:port>
>    </wsdl:service>
> </wsdl:definitions>
>
> Included schema:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>     targetNamespace="http://servicemix.apache.org/samples/wsdl-
> first/types"
>     xmlns:per="http://servicemix.apache.org/samples/wsdl-first/types";
>     xmlns:hb="http://ws.heuboe.de/base";
>     elementFormDefault="qualified">
>
>
>   <!-- import basic structures -->
>   <xsd:import
>     namespace="http://ws.heuboe.de/base";
>     schemaLocation="jhbWSBase.xsd"
>   />
>
>
>   <xsd:element name="GetPerson">
>     <xsd:complexType>
>       <xsd:sequence>
>         <xsd:element name="personId" type="xsd:string"/>
>       </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
>   <xsd:element name="GetPersonResponse">
>     <xsd:complexType>
>       <xsd:sequence>
>           <xsd:element name="personId" type="xsd:string"/>
>         <xsd:element name="ssn" type="xsd:string"/>
>         <xsd:element name="name" type="xsd:string"/>
>       </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
>   <xsd:element name="UnknownPersonFault">
>     <xsd:complexType>
>               <xsd:complexContent>
>                       <xsd:extension base="hb:ExceptionInfo" />
>               </xsd:complexContent>
>     </xsd:complexType>
>   </xsd:element>
> </xsd:schema>
>
> Please see the import above !
>
> And the Result:
>
> <?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="wsdl-first"
> targetNamespace="http://servicemix.apache.org/samples/wsdl-first";
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:tns="http://servicemix.apache.org/samples/wsdl-first";
> xmlns:typens="http://servicemix.apache.org/samples/wsdl-first/types";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>   <wsdl:types>
> <xs:schema jaxb:version="2.0"
> targetNamespace="http://servicemix.apache.org/samples/wsdl-first/types";
> xmlns:jaxb="http://java.sun.com/xml/ns/jaxb";
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:tns="http://servicemix.apache.org/samples/wsdl-first";
> xmlns:typens="http://servicemix.apache.org/samples/wsdl-first/types";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:xs="http://www.w3.org/2001/XMLSchema";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>         <xsd:annotation>
>     <xsd:appinfo>
>           <jaxb:schemaBindings>
>             <jaxb:package name="de.heuboe.simtd.tmm.jaxb"/>
>           </jaxb:schemaBindings>
>         </xsd:appinfo>
>   </xsd:annotation>
>
>
>
>
>   <!-- import basic structures -->
>
>
>   <xsd:element name="GetPerson">
>     <xsd:complexType>
>       <xsd:sequence>
>         <xsd:element name="personId" type="xsd:string"/>
>       </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
>   <xsd:element name="GetPersonResponse">
>     <xsd:complexType>
>       <xsd:sequence>
>           <xsd:element name="personId" type="xsd:string"/>
>         <xsd:element name="ssn" type="xsd:string"/>
>         <xsd:element name="name" type="xsd:string"/>
>       </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
>   <xsd:element name="UnknownPersonFault">
>     <xsd:complexType>
>               <xsd:complexContent>
>                       <xsd:extension base="hb:ExceptionInfo"/>
>               </xsd:complexContent>
>     </xsd:complexType>
>   </xsd:element>
>
>
>       <xs:simpleType name="Identifier">
>               <xs:annotation>
>                       <xs:documentation>
>                               HB wide string id type to use in soap web-
> services
>                       </xs:documentation>
>               </xs:annotation>
>               <xs:restriction base="xs:string"/>
>       </xs:simpleType>
>
>       <xs:complexType name="ExceptionInfo">
>               <xs:annotation>
>                       <xs:documentation>
>                               HB wide exception type that should be use in
> a WS-Exception/Fault-element
>                       </xs:documentation>
>               </xs:annotation>
>               <xs:sequence>
>                       <xs:element name="errorType" type="xs:string">
>                               <xs:annotation>
>                                       <xs:documentation>
>                                               Should be restricted by a
> derived object via
>                                               the fixed keyword to a
> constant value that describes the type.
>                                               E.g. fixed="DBException".
>                                       </xs:documentation>
>                               </xs:annotation>
>                       </xs:element>
>                       <xs:element name="errorCode" type="xs:string">
>                               <xs:annotation>
>                                       <xs:documentation>
>                                               Specification of the (type) of
> error.
>                                       </xs:documentation>
>                               </xs:annotation>
>                       </xs:element>
>                       <xs:element minOccurs="0" name="errorDescription"
> type="xs:string">
>                               <xs:annotation>
>                                       <xs:documentation>
>                                               Longer textual description of
> the error
>                                       </xs:documentation>
>                               </xs:annotation>
>                       </xs:element>
>               </xs:sequence>
>       </xs:complexType>
> </xs:schema>
>   </wsdl:types>
>   <wsdl:message name="GetPersonResponse">
>     <wsdl:part element="typens:GetPersonResponse" name="payload">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:message name="GetPersonRequest">
>     <wsdl:part element="typens:GetPerson" name="payload">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:message name="UnknownPersonFault">
>     <wsdl:part element="typens:UnknownPersonFault" name="payload">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:portType name="Person">
>     <wsdl:operation name="GetPerson">
>       <wsdl:input message="tns:GetPersonRequest">
>     </wsdl:input>
>       <wsdl:output message="tns:GetPersonResponse">
>     </wsdl:output>
>       <wsdl:fault message="tns:UnknownPersonFault"
> name="UnknownPerson">
>     </wsdl:fault>
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="PersonSOAPBinding" type="tns:Person">
>     <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="GetPerson">
>       <wsdl:input>
>         <soap:body use="literal"/>
>       </wsdl:input>
>       <wsdl:output>
>         <soap:body use="literal"/>
>       </wsdl:output>
>       <wsdl:fault name="UnknownPerson">
>         <soap:fault name="UnknownPerson" use="literal"/>
>       </wsdl:fault>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="PersonService">
>     <wsdl:port binding="tns:PersonSOAPBinding" name="soap">
>       <soap:address location="http://localhost:9080/cfx-wsdl-first-xsd-
> war/services/PersonService"/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
>
>
> Please notice that the comment from the schema was taken into the result.
> But the schema 'jhbWSBase.xsd' imported by person.xsd was inlined.
> The namespace of this schema was omitted, so that reference to it in :
>
>   <xsd:element name="UnknownPersonFault">
>     <xsd:complexType>
>               <xsd:complexContent>
>                       <xsd:extension base="hb:ExceptionInfo"/>
>               </xsd:complexContent>
>     </xsd:complexType>
>
> now is invalid.
>
> Once again. This doesn't happen, if I deploy the provider and the consumer
> with two diffenent service assemblies.
>
> Regards,
>
> Jürgen
>
> > Von: Freeman Fang [mailto:[email protected]]
> > Gesendet: Montag, 21. März 2011 09:38
> > An: [email protected]
> > Betreff: Re: AW: Problems to create a cxfbc:provider/consumer proxy
> > bridge
> >
> >
> > On 2011-3-21, at 下午4:16, Jürgen Bockhorn wrote:
> >
> > > Hello Freeman,
> > >
> > > thank you for you quick answer.
> > >
> > > I've followed your advice, unfortunately with no success.
> > >
> > > The result is the same. The example was developed from the cxf-wsdl-
> > > first example, that comes with the servicemix.
> > > Changes are, that the schema is external and that the schema imports
> > > other schemas. We use imports excessifely to keep our data structurs
> > > modulare.
> > >
> > > After deploying the cxfbc:consumer and the cxfbc:provider in one SU,
> > > the resulting WSDL ommits the includes and imports and the schema is
> > > inline.
> > > The problem is, that the namespaces of the imported schemas are gone
> > > and therefor references to them are invalid.
> > Hi,
> >
> > inline is expected behavior.
> > Did you use include instead?
> > >
> > > The changed WSDL and the resulting WSDL (queried via the servicemix
> > > consumer) are attached.
> > I can't see your attachment.
> >
> > Freeman
> > >
> > > Thanks in advance.
> > >
> > > Jürgen
> > >
> > >> Von: Freeman Fang [mailto:[email protected]]
> > >> Gesendet: Montag, 21. März 2011 02:06
> > >> An: [email protected]
> > >> Betreff: Re: Problems to create a cxfbc:provider/consumer proxy
> > >> bridge
> > >>
> > >> Hi,
> > >>
> > >> My comment inline
> > >> On 2011-3-18, at 下午11:05, Jürgen Bockhorn wrote:
> > >>
> > >>> Hi,
> > >>>
> > >>> I would like to configure a cxfbc:provider/cxfbc:consumer proxy
> > >>> bridge to an external webservice.
> > >>> The xbeans.xml is:
> > >>>
> > >>> <?xml version="1.0" encoding="UTF-8"?>
> > >>>
> > >>> <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0";
> > >>>  xmlns:person="http://servicemix.apache.org/samples/wsdl-first";>
> > >>>
> > >>>  <cxfbc:consumer wsdl="classpath:person.wsdl"
> > >>>    targetService="person:PersonService"
> > >>>    targetInterface="person:Person"
> > >>>    locationURI="http://0.0.0.0:8082/PS";
> > >>>    targetEndpoint="PSProxy"
> > >>>  />
> > >>>
> > >>>  <cxfbc:provider wsdl="classpath:person.wsdl"
> > >>>
> > >>> locationURI="http://localhost:9080/cfx-wsdl-first-xsd-war/services
> > >>> /P
> > >>> er
> > >>> sonService
> > >>> "
> > >>>    service="person:PersonService"
> > >>>    interfaceName="person:Person"
> > >>>    endpoint="PSProxy"
> > >>>   />
> > >>>
> > >>> The WSDL imports XSDs  to define the types instead of .
> > >>>
> > >>>      <wsdl:types>
> > >>>      <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> > >>>        targetNamespace="http://www.w3.org/2001/XMLSchema";
> > >> this is incorrect, the targetNamespace you used here should be the
> > >> namespace for this schema, it should be
> > >> http://servicemix.apache.org/samples/wsdl-first/types
> > >> if you adapt the wsdl from our person.wsdl.
> > >> the http://www.w3.org/2001/XMLSchema is from w3c and it's used for
> > >> the prefix like "xsd", you shouldn't use it as your customer schema
> > >> namespace
> > >>>        xmlns:jaxb="http://java.sun.com/xml/ns/jaxb";
> > >>>        jaxb:version="2.0">
> > >>>        <xsd:annotation><xsd:appinfo>
> > >>>          <jaxb:schemaBindings>
> > >>>            <jaxb:package name="de.heuboe.simtd.tmm.jaxb"/>
> > >>>          </jaxb:schemaBindings>
> > >>>        </xsd:appinfo></xsd:annotation>
> > >>>        <xsd:import
> > >>> namespace="http://servicemix.apache.org/samples/wsdl-first/types
> > >>> "
> > >>>          schemaLocation="person.xsd" />
> > >> This line is incorrect,
> > >> should use include but not import here,  something like
> > >> <xsd:include schemaLocation="person.xsd"/> if the external schema
> > >> just use same namespace as the schame here you should be include, I
> > >> suppose they both are
> > >> http://servicemix.apache.org/samples/wsdl-first/types
> > >>
> > >> Freeman
> > >>>      </xsd:schema>
> > >>>
> > >>> After deployment I can get the WSDL under
> > >>> "http://localhost:8082/PS?wsdl . But a closer look reveals, that
> > >>> the imports are replaced by the schema they contain with the
> > >>> problem, that the namespaces are not longer correct.
> > >>>
> > >>> <wsdl:types>
> > >>> <xs:schema jaxb:version="2.0"
> > >>> targetNamespace="http://www.w3.org/2001/XMLSchema
> > >>> " xmlns:jaxb="http://java.sun.com/xml/ns/jaxb";
> > >>> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/
> > >>> " xmlns:tns="http://servicemix.apache.org/samples/wsdl-first";
> > >>> xmlns:typens="http://servicemix.apache.org/samples/wsdl-
> first/types"
> > >>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> > >>> xmlns:xs="http://www.w3.org/2001/XMLSchema
> > >>> " xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> > >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
> > >>> ">
> > >>>    <xsd:annotation>
> > >>>    <xsd:appinfo>
> > >>>          <jaxb:schemaBindings>
> > >>>            <jaxb:package name="de.heuboe.simtd.tmm.jaxb"/>
> > >>>          </jaxb:schemaBindings>
> > >>>        </xsd:appinfo>
> > >>>  </xsd:annotation>
> > >>>  <xsd:element name="GetPerson">
> > >>>    <xsd:complexType>
> > >>>      <xsd:sequence>
> > >>>        <xsd:element name="personId" type="xsd:string"/>
> > >>>      </xsd:sequence>
> > >>>    </xsd:complexType>
> > >>>  </xsd:element>
> > >>>  <xsd:element name="GetPersonResponse">
> > >>>    <xsd:complexType>
> > >>>      <xsd:sequence>
> > >>>          <xsd:element name="personId" type="xsd:string"/>
> > >>>        <xsd:element name="ssn" type="xsd:string"/>
> > >>>        <xsd:element name="name" type="xsd:string"/>
> > >>>      </xsd:sequence>
> > >>>    </xsd:complexType>
> > >>>  </xsd:element>
> > >>>  <xsd:element name="UnknownPersonFault">
> > >>>    <xsd:complexType>
> > >>>               <xsd:complexContent>
> > >>>                       <xsd:extension base="hb:ExceptionInfo"/>
> > >>>               </xsd:complexContent>
> > >>>    </xsd:complexType>
> > >>>  </xsd:element>
> > >>>
> > >>>
> > >>>        <xs:simpleType name="Identifier">
> > >>>               <xs:annotation>
> > >>>                       <xs:documentation>
> > >>>                               HB wide string id type to use in
> > >>> soap web-services
> > >>>                       </xs:documentation>
> > >>>               </xs:annotation>
> > >>>               <xs:restriction base="xs:string"/>
> > >>>        </xs:simpleType>
> > >>>
> > >>>        <xs:complexType name="ExceptionInfo">
> > >>>               <xs:annotation>
> > >>>                       <xs:documentation>
> > >>>                               HB wide exception type that should
> > >>> be use in a WS-Exception/Fault-element
> > >>>                       </xs:documentation>
> > >>>               </xs:annotation>
> > >>>               <xs:sequence>
> > >>>                       <xs:element name="errorType" type="xs:string">
> > >>>                               <xs:annotation>
> > >>>                                      <xs:documentation>
> > >>>                                              Should be restricted
> > >>> by a derived object via
> > >>>                                              the fixed keyword to
> > >>> a constant value that describes the type.
> > >>>                                              E.g.
> > >>> fixed="DBException".
> > >>>                                      </xs:documentation>
> > >>>                               </xs:annotation>
> > >>>                       </xs:element>
> > >>>                       <xs:element name="errorCode" type="xs:string">
> > >>>                               <xs:annotation>
> > >>>                                      <xs:documentation>
> > >>>                                              Specification of the
> > >>> (type) of error.
> > >>>                                      </xs:documentation>
> > >>>                               </xs:annotation>
> > >>>                       </xs:element>
> > >>>                       <xs:element minOccurs="0"
> > >>> name="errorDescription" type="xs:string">
> > >>>                               <xs:annotation>
> > >>>                                      <xs:documentation>
> > >>>                                              Longer textual
> > >>> description of the error
> > >>>                                      </xs:documentation>
> > >>>                               </xs:annotation>
> > >>>                       </xs:element>
> > >>>               </xs:sequence>
> > >>>        </xs:complexType>
> > >>>   </xs:schema>
> > >>> </wsdl:types>
> > >>>
> > >>> Is this a bug or do I need to set a certain property ?
> > >>>
> > >>> BTW:
> > >>> If you deploy the consumer and the provider in to seperate service
> > >>> assemblies the expected WSDL is returned.
> > >>> If you just use to service units it seems, only the first will be
> > >>> depoyed.
> > >>> If you use more than one <xs:schema> element with the <xs:types>
> > >>> element it won't work in any constalation, but if you call the
> > >>> service directly everything is fine.
> > >>>
> > >>>
> > >>>
> > >>> xbeans.xml, wsdl etc. are attached to this mail.
> > >>>
> > >>> -----
> > >>> Thanx in advance
> > >>> Jürgen
> > >>>
> > >>> <xbean.xml><person.xsd><jhbWSBase.xsd>
> > >>
> > >>
> > >> --
> > >> Freeman Fang
> > >>
> > >> ------------------------
> > >>
> > >> FuseSource: http://fusesource.com
> > >> blog: http://freemanfang.blogspot.com
> > >> twitter: http://twitter.com/freemanfang Apache
> > >> Servicemix:http://servicemix.apache.org
> > >> Apache Cxf: http://cxf.apache.org
> > >> Apache Karaf: http://karaf.apache.org Apache Felix:
> > >> http://felix.apache.org
> > >
> >
> >
> > --
> > Freeman Fang
> >
> > ------------------------
> >
> > FuseSource: http://fusesource.com
> > blog: http://freemanfang.blogspot.com
> > twitter: http://twitter.com/freemanfang Apache
> > Servicemix:http://servicemix.apache.org
> > Apache Cxf: http://cxf.apache.org
> > Apache Karaf: http://karaf.apache.org
> > Apache Felix: http://felix.apache.org

Reply via email to