Domanda

Uso lo strumento wsdlc (weblogic 10.3.1) per generare classi da wsdl. Ho il seguente file di personalizzazione dei collegamenti jaxb esterni:

<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>

Il messaggio di errore durante la compilazione è: impossibile trovare il simbolo my.MySuperClass. E da javac: & Quot; pacchetto my non esiste & Quot ;. Il classpath = tutto ciò che includo tramite <pathelement location= ecc. E 60 righe dai plugin eclipse. Il problema risiede nel comando javac che wsdlc avvia. Il percorso di classe di questo comando è corretto (es. Percorsi codificati) ma ancora & Quot; pacchetto ... non esiste & Quot ;.

L'uso di wsdlc da formica è così:

<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>
È stato utile?

Soluzione 3

Non ho eseguito il jar delle mie classi correttamente, ho pensato di poter usare WinZip per aggiungere rapidamente alcune classi a un jar, ma il 'percorso' in WinZip non era uguale al nome del pacchetto in Java. Mi ci è voluto un po ', ma ho imparato qualcosa sui percorsi di classe.

Altri suggerimenti

my.SuperClass deve già esistere, wsdlc non lo genererà per te. Quando si tratta di compilare il codice generato (che è dove suppongo sia ciò che non riesce qui), è perché javac non riesce a trovare <=> nel suo percorso di classe.

Fornisci l'estratto di build.xml che mostra come usi usa wsdlc.

Secondo la documentazione :

  

Oltre al WebLogic specifico   attributi wsdlc, è anche possibile definire   il seguente javac standard   attributi; vedere la documentazione della formica   per ulteriori informazioni su ciascuno di essi   attributo:

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

Puoi anche usare quanto segue   elementi figlio di formica standard con il   wsdlc Compito formica:

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

Hai specificato il percorso di classe da includere my.SuperClass?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top