Unable to get managed connection java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter when using sqljdbc42.jar/sqljdbc6.jar
book
Article ID: KB0075337
calendar_today
Updated On:
Description
When sql server database is used, we need sqljdbc jar in the jboss modules location. But if we use sqljdbc42.jar/sqljdbc6.jar and specify the module.xml located at JBOSS_HOME\modules\system\layers\base\com\microsoft\sqlserver\mainas as below, it throws error Unable to get managed connection for java:jboss/eCMDataSource with Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter when we start the server
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver">
<resources>
<resource-root path="sqljdbc42.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Environment
OS: Linux, Windows
Application Server: JBOSS EAP and Wildfly
Resolution
We need to add the dependency <module name="javax.xml.bind.api"/> in module.xml file to avoid this error. The updated module.xml will look as below.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver">
<resources>
<resource-root path="sqljdbc42.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.xml.bind.api"/>
</dependencies>
</module>
Issue/Introduction
Unable to get managed connection and NoClassDefFoundError: javax/xml/bind/DatatypeConverter when using sqljdbc42.jar or higher for sql server database
Feedback
thumb_up
Yes
thumb_down
No