CXF webservice code-first ist das erstellen von wsdl-mit xs:element form="unqualified" nicht Abholung namespace

Ich bin erstellen von Web Services mit CXF mit den code-first-Ansatz.
Ich möchte namespaces verwenden, und daher elementFormDefault eingestellt ist wahr.
Die WSDL ist gut, außer für die Elemente, eingebettet in die complextypes, bekomme ich folgende xs:element mit einer form="unqualified" tag. Aber ich möchte, um loszuwerden, das form=unqualifizierten tag

<xs:element form="unqualified" name="LikeSearch" type="xs:boolean"/>

Meine package-info.java sieht wie folgt aus:

@javax.xml.bind.annotation.XmlSchema(namespace="http://registry.erpel.at",
   attributeFormDefault=javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
   elementFormDefault=javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
   package at.erpel.registry.services.webservice;

Java Endpunkt sieht folgendermaßen aus:

@WebService(targetNamespace = "http://registry.erpel.at", name="CompanyEndpoint")
public interface CompanyEndpoint {
    List<Company> findCompanies(
        @WebParam(name = "FindCompaniesRequest") @XmlElement(required=true) FindCompaniesRequest findCompaniesRequest)
        throws ServiceFault ;

Dies ist die FindCompaniesRequest:

@XmlRootElement(name = "FindCompaniesRequest")
public class FindCompaniesRequest extends AbstractRequestType implements Serializable
{
   @XmlElement(name = "LikeSearch", required = true)
   protected boolean likeSearch;
   ...
}

Und schließlich die WSDL:

<xs:complexType name="FindCompaniesRequest">
   <xs:complexContent>
      <xs:extension base="tns:AbstractRequestType">
        <xs:sequence>
            <xs:element form="unqualified" name="LikeSearch" type="xs:boolean"/>

Was ich will, ist, um loszuwerden, das form="unqualified" tag

Die einzige Lösung, die ich bis jetzt gefunden habe ist das hinzufügen der Namensraum-Attribut auf jedes einzelne XMLElement:

 @XmlElement(name = "LikeSearch", required = true, namespace="http://registry.erpel.at")
 protected boolean likeSearch;

Aber ich will die Kind-Elemente nur zum abholen der namespace aus der übergeordneten Elemente. Ich habe versucht, indem die Namensraum-Attribut der @XMLRootElement annotation @WebParam-annotation und der @XmlElement-annotation in der Methode Beschreibung, aber ohne Erfolg.

Jemand weiß, wie man mit dieser arbeiten?

Welches Paket ist FindCompaniesRequest? Wenn es nicht at.erpel.registry.services.webservice, ist das dein problem genau dort. Auch, was das Paket ist CompanyEndpoint?
CompanyEndpoint ist.erpel.Registrierung.services.webservice-und FindCompaniesRequest ist.erpel.Registrierung.services.Personen.Anfrage, So haben Sie beide im selben Paket dann? oder gibt es eine andere Lösung?
Dank Donal ich habe die Lösung gefunden, ich habe bis package-info.java in Paket enthält Klassen, die für die Generierung der WSDL. In meinem Fall, ich hatte auch um Sie in die Paket FindCompaniesRequest! Vielen Dank, Donal! P. S. ich kann die Frage nicht beantworten jetzt, denn es ist meine erste, und das system braucht mich warten, 7 Stunden, Donal, vielleicht möchten Sie eine Antwort für mich 😉 thx
Es war so einfach? OK, Umgerechnet auf eine Antwort. 🙂

InformationsquelleAutor ddawg | 2011-07-21

Schreibe einen Kommentar