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.