Problems with my Apache CXF client

18,817

You have an ancient version of xerces in your classpath someplace as well. Do a mvn dependency:tree and see if there are any xerces related jars that need to be removed.

Share:
18,817
Alan
Author by

Alan

I have over 20 years of experience as a software craftsman specializing in back end development, across a broad variety of verticals such as integrated circuit development, research laboratories, media industry, government and eCommerce.  I have international experience working with clients in the US, Canada and Asia. I like leveraging technology so that business stakeholders solve their business problems. I've forgotten technologies such as EJB 2.0, Pascal, Perl, BASIC, Matlab, and GBIP.

Updated on July 17, 2022

Comments

  • Alan
    Alan almost 2 years

    I'm trying to write an Apache CXF JAX-WS client.

    The dependencies in my pom.xml are

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-common-utilities</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-tools-common</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    

    where:

    <cxf.version>2.4.0</cxf.version>
    

    Unfortunately, when uses Maven uses the code generator (org.apache.cxf:cxf-codegen-plugin:${cxf.version}), it barfs:

    [DEBUG] Calling wsdl2java with args: [-d, C:\projects\src\b2b_pmd\trunk\b2b_pmd\pmd-service\promotionalDocument\target\generated\src\main\java, -client, -verbose, file:/C:/projects/src/b2b_pmd/trunk/b2b_pmd/pmd-service/promotionalDocument/src/main/wsdl/test.wsdl]
    Loading FrontEnd jaxws ...
    Loading DataBinding jaxb ...
    wsdl2java -d C:\projects\src\b2b_pmd\trunk\b2b_pmd\pmd-service\promotionalDocument\target\generated\src\main\java -client -verbose file:/C:/projects/src/b2b_pmd/trunk/b2b_pmd/pmd-service/promotionalDocument/src/main/wsdl/test.wsdl
    wsdl2java - Apache CXF 2.4.0
    
    [DEBUG] 
    java.lang.AbstractMethodError: org.apache.xerces.dom.ElementNSImpl.setUserData(Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object;
        at org.apache.cxf.staxutils.StaxUtils.addLocation(StaxUtils.java:1085)
        at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:973)
        at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:949)
        at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:876)
        at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:226)
        at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:186)
        at org.apache.cxf.wsdl11.WSDLDefinitionBuilder.parseWSDL(WSDLDefinitionBuilder.java:78)
        at org.apache.cxf.wsdl11.WSDLDefinitionBuilder.build(WSDLDefinitionBuilder.java:69)
        at org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11.JAXWSDefinitionBuilder.build(JAXWSDefinitionBuilder.java:84)
        at org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11.JAXWSDefinitionBuilder.build(JAXWSDefinitionBuilder.java:61)
        at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:171)
        at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:138)
        at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:290)
        at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
        at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
        at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
        at org.apache.cxf.maven_plugin.WSDL2JavaMojo.callWsdl2Java(WSDL2JavaMojo.java:586)
        at org.apache.cxf.maven_plugin.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:412)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:105)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:577)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeForkedExecutions(DefaultLifecycleExecutor.java:685)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:560)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:121)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
    

    Is there something I'm missing?

  • Alan
    Alan about 13 years
    Daniel, thanks! That did the trick. I upgraded from an implied version of xerces (2.6) to declaring one that works (2.9.1)
  • Anand
    Anand about 11 years
    Thanks Daniel as I had similar problems, but it was related to beanio XML marshall
  • batwad
    batwad over 8 years
    This. This this this thissity this. Found an old version of xerces being pulled in as a transient dependency from some snapshot dependency. I hate Maven sometimes.