Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-1880

org.apache.cxf.xjc.ts.ToStringPlugin cannot be used with a 1.6 JVM

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.1.2
    • 2.1.6, 2.2.3, 2.3
    • None
    • None

    Description

      If CXF is on the classpath when you invoke the JXC code generator, it tries to load the org.apache.cxf.xjc.ts.ToStringPlugin as a JAXB plugin, but due to some problems with the 1.6 JVM, it fails:

      bash-2.05b$ gunzip -c apache-cxf-2.1.2.tar.gz | tar xf -
      bash-2.05b$ cd apache-cxf-2.1.2/lib
      bash-2.05b$ java -classpath $(pwd)/cxf-manifest.jar com.sun.tools.xjc.XJCFacade
      grammar is not specified

      Usage: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...
      If dir is specified, all schema files in it will be compiled.
      If jar is specified, /META-INF/sun-jaxb.episode binding file will be compiled.
      Options:
      -nv : do not perform strict validation of the input schema(s)
      -extension : allow vendor extensions - do not strictly follow the
      Compatibility Rules and App E.2 from the JAXB Spec
      -b <file/dir> : specify external bindings files (each <file> must have its own -b)
      If a directory is given, */.xjb is searched
      -d <dir> : generated files will go into this directory
      -p <pkg> : specifies the target package
      -httpproxy <proxy> : set HTTP/HTTPS proxy. Format is [user[:password]@]proxyHost:proxyPort
      -httpproxyfile <f> : Works like -httpproxy but takes the argument in a file to protect password
      -classpath <arg> : specify where to find user class files
      -catalog <file> : specify catalog files to resolve external entity references
      support TR9401, XCatalog, and OASIS XML Catalog format.
      -readOnly : generated files will be in read-only mode
      -npa : suppress generation of package level annotations (**/package-info.java)
      -no-header : suppress generation of a file header with timestamp
      -target 2.0 : behave like XJC 2.0 and generate code that doesnt use any 2.1 features.
      -xmlschema : treat input as W3C XML Schema (default)
      -relaxng : treat input as RELAX NG (experimental,unsupported)
      -relaxng-compact : treat input as RELAX NG compact syntax (experimental,unsupported)
      -dtd : treat input as XML DTD (experimental,unsupported)
      -wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported)
      -verbose : be extra verbose
      -quiet : suppress compiler output
      -help : display this help message
      -version : display version information

      Exception in thread "main" java.util.ServiceConfigurationError: com.sun.tools.xjc.Plugin: Provider org.apache.cxf.xjc.ts.ToStringPlugin could not be instantiated: java.lang.ClassCastException
      at java.util.ServiceLoader.fail(ServiceLoader.java:207)
      at java.util.ServiceLoader.access$100(ServiceLoader.java:164)
      at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:353)
      at java.util.ServiceLoader$1.next(ServiceLoader.java:421)
      at com.sun.tools.xjc.Options.findServices(Options.java:884)
      at com.sun.tools.xjc.Options.getAllPlugins(Options.java:336)
      at com.sun.tools.xjc.Driver.usage(Driver.java:510)
      at com.sun.tools.xjc.Driver._main(Driver.java:125)
      at com.sun.tools.xjc.Driver.access$000(Driver.java:74)
      at com.sun.tools.xjc.Driver$1.run(Driver.java:96)
      Caused by: java.lang.ClassCastException
      at java.lang.Class.cast(Class.java:2990)
      at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:345)
      ... 7 more
      bash-2.05b$ which java
      /...<snip>.../sunjdk/1.6.0_06/bin/java

      The only solution to this problem that I have been able to find is to put all XJC plugins in a subpackage of com.sun.tools.xjc.addon. No endorsed dirs hackery seems to work.

      Attachments

        1. newPatch.sh.txt
          7 kB
          Chris McClelland
        2. ASF.LICENSE.NOT.GRANTED--image001.png
          4 kB
          Amita Bhandari

        Activity

          People

            dkulp Daniel Kulp
            prophet36 Chris McClelland
            Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: