Hello everyone,
I started playing with DocBook today and tried to transform my XML file into a PDF using docbkx-maven-plugin 2.0.14. I have a problem when I run a maven build:
Caused by: java.lang.NoClassDefFoundError: org/apache/xml/serializer/TreeWalker
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:821)
at com.agilejava.docbkx.maven.AbstractFoMojo.postProcessResult(AbstractFoMojo.java:145)
at com.agilejava.docbkx.maven.AbstractTransformerMojo.execute(AbstractTransformerMojo.java:166)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
... 20 more
Caused by: java.lang.ClassNotFoundException: org.apache.xml.serializer.TreeWalker
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
... 24 more
I googled this class and it seems that it's not contained in the xalan artifact but in the xalan-serializer artifact. Adding an extra dependency to the plugin works:
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.14</version>
<executions>
<execution>
<goals>
<goal>generate-pdf</goal>
</goals>
<phase>pre-site</phase>
<configuration>
<includes>myfile.xml</includes>
</configuration>
</execution>
</executions>
<configuration>
<paperType>A4</paperType>
<foCustomization>src/docbkx/docbook-fo.xsl</foCustomization>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.docbook</groupId>
<artifactId>docbook-xml</artifactId>
<version>5.0-all</version>
<classifier>resources</classifier>
<type>zip</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan-serializer</artifactId>
<version>2.7.0</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
Has anyone faced the same problem? Is it something missing from the maven plugin?
Thanks for your help.