Frage

Ich verwende das wsdlc Werkzeug (WebLogic 10.3.1) von Wsdl Klassen zu erzeugen. Ich habe folgende externe jaxb Bindungen Anpassungsdatei:

<jaxb:bindings
    xmlns="http://java.sun.com/xml/ns/jaxb"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    schemaLocation="web/WEB-INF/....xsd"
    version="2.1">

    <jaxb:bindings  node="/xs:schema">
        <jaxb:globalBindings>
            <xjc:superClass name="my.MySuperClass" />
        </jaxb:globalBindings>
    </jaxb:bindings>
</jaxb:bindings>

Die Fehlermeldung auf Compilation ist: kann nicht Symbol my.MySuperClass finden. Und von javac: „-Paket meine existiert nicht“. Der Classpath = alles, was ich bin über <pathelement location= usw. und 60 Zeilen von Eclipse-Plugins. Das Problem liegt in dem Befehl, die Javac Initiierten wsdlc. Der Classpath dieses Befehls korrekt ist (hart codierte Pfade zum Beispiel), aber immer noch „Paket ... existiert nicht“.

Die Verwendung von wsdlc von Ameise ist etwa so:

<path id="class.path">
  <pathelement path="${java.class.path}" />
  <pathelement location="... hard coded path on disk to a jar" />
</path>

<target name="generate-ws-from-wsdl">
<wsdlc failOnError="true"
       srcWsdl="${basedir}/web/WEB-INF/ps.wsdl"
       destImplDir="${basedir}/src"
       destJwsDir="${basedir}/web/WEB-INF/lib"
       srcPortName="PsPort"
       type="JAXWS">
    <binding file="jaxb-bindings.xml" />
    <classpath refid="class.path" />
</wsdlc>
</target>
War es hilfreich?

Lösung 3

Ich habe nicht meine Klassen jar richtig, ich dachte, ich WinZip verwenden könnte, um schnell einige Klassen in ein Gefäß hinzufügen, aber der ‚Pfad‘ in WinZip war der Paketnamen in Java nicht gleich. Es dauerte eine Weile, aber ich lernte etwas über CLASSPATHs.

Andere Tipps

my.SuperClass bereits vorhanden sein muss, wsdlc generiert es nicht für Sie. Wenn es darum geht, den generierten Code kompilieren (das ist, wo ich davon ausgehen, ist das, was hier versagt), es ist, weil javac nicht my.SuperClass in seiner Classpath finden.

Bitte geben Sie den Auszug des build.xml zeigt, wie Sie die wsdlc verwenden verwenden.

Nach dem Dokumentation :

  

Neben dem WebLogic-spezifischen   wsdlc Attribute, können Sie auch festlegen,   das folgende Standard Javac   Attribute; finden Sie in der Ant-Dokumentation   Für weitere Informationen zu den einzelnen   Attribut:

     
      
  • bootclasspath
  •   
  • bootClasspathRef
  •   
  • classpath
  •   
  • [...]
  •   
     

Sie können auch die folgenden Befehle verwenden   Standard Ant Kind-Elemente mit der   wsdlc Ant-Task:

     
      
  • <FileSet>
  •   
  • <SourcePath>
  •   
  • <Classpath>
  •   

Haben Sie den Classpath angeben my.SuperClass enthalten?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top