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

                 Key: CXF-1880
                 URL: https://issues.apache.org/jira/browse/CXF-1880
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.1.2
            Reporter: Chris McClelland


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[:[EMAIL 
PROTECTED]: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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to