Erro usando jaxb ligações externas personalização
Pergunta
Eu uso a ferramenta wsdlc (weblogic 10.3.1) para gerar classes de wsdl. Eu tenho o seguinte arquivo de ligações JAXB personalização externo:
<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>
A mensagem de erro na complilation é: não pode encontrar my.MySuperClass símbolo.
E a partir javac: "Pacote minha não existe". O caminho de classe I incluem = tudo através <pathelement location=
etc e 60 linhas de encaixes eclipse. As mentiras problema no comando javac que inicia wsdlc. O classpath deste comando está correta (caminhos codificados por exemplo), mas ainda "pacote ... não existe".
O uso de wsdlc de formiga é assim:
<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>
Solução 3
Eu não jar minhas aulas corretamente, eu pensei que eu poderia usar o WinZip para adicionar rapidamente algumas classes para uma jarra, mas o 'caminho' no WinZip não era igual ao nome do pacote em java. Levei um tempo, mas eu aprendi algo sobre classpaths.
Outras dicas
my.SuperClass
tem que existir, wsdlc
não irá gerar para você. Quando se trata de compilar o código gerado (que é onde eu suponho que é o que está a falhar aqui), é porque javac não consegue encontrar my.SuperClass
em seu caminho de classe.
Por favor, forneça o trecho da exibição build.xml
como você usa usar o wsdlc
.
De acordo com a documentação :
Além do específico do WebLogic atributos wsdlc, também é possível definir o seguinte padrão javac atributos; consulte a documentação Ant Para obter informações adicionais sobre cada atributo:
bootclasspath
bootClasspathRef
classpath
- [...]
Você também pode usar o seguinte elementos filhos padrão Formiga com o tarefa wsdlc Ant:
<FileSet>
<SourcePath>
<Classpath>
Você quis especificar o classpath para incluir my.SuperClass
?