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>
Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top