Errore durante la personalizzazione dei collegamenti esterni jaxb
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>
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
?