Pregunta

Utilizo la herramienta wsdlc (weblogic 10.3.1) para generar clases desde wsdl. Tengo el siguiente archivo de personalización de enlaces jaxb externos:

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

El mensaje de error en la compilación es: no se puede encontrar el símbolo my.MySuperClass. Y desde javac: " package my no existe " ;. El classpath = todo lo que incluyo a través de < pathelement location = etc. y 60 líneas de los complementos de eclipse. El problema radica en el comando javac que inicia wsdlc. La ruta de clase de este comando es correcta (rutas codificadas de forma rígida, por ejemplo), pero aún así "paquete ... no existe".

El uso de wsdlc desde ant es así:

<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>
¿Fue útil?

Solución 3

No armé mis clases correctamente, pensé que podía usar WinZip para agregar rápidamente algunas clases a un tarro, pero la "ruta" en WinZip no era igual al nombre del paquete en java. Me tomó un tiempo pero aprendí algo sobre classpaths.

Otros consejos

my.SuperClass ya tiene que existir, wsdlc no lo generará por ti. Cuando se trata de compilar el código generado (que es donde supongo que es lo que está fallando aquí), es porque javac no puede encontrar my.SuperClass en su classpath.

Proporcione el extracto del build.xml que muestra cómo usa el wsdlc .

De acuerdo con documentación :

  

Además de los específicos de WebLogic   Atributos wsdlc, también puede definir   el siguiente javac standard   atributos; ver la documentación de la hormiga   para información adicional sobre cada   atributo:

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

También puedes usar lo siguiente   Elementos infantiles estándar de la hormiga con el   wsdlc Ant tarea:

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

¿Especificó la ruta de clase para incluir my.SuperClass ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top