Reputation: 124
Enviornment - [email protected],
BuildingTool@ant,
[email protected]_66
Following class is accessed from my java code, which is causing errror.
javax.xml.datatype.DatatypeFactory
Java claas has been configured as a module
jaroneapi'==>module add --name=jaroneapi --resources=~/modules/jaroneapi.jar
package api.jarone.com.pojo;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.datatype.DatatypeFactory;
public class TestJarOneDetails {
public XMLGregorianCalendar convertDatetoXMLGregorian(String inputDate)
{
XMLGregorianCalendar date2 = null;
try {
System.out.println("[TestJarOne][convertDatetoXMLGregorian] This class is present in " +
"jaroneapi.jar which has been configured as a module 'module add --name=jaroneapi --resources=~/modules/jaroneapi.jar' ");
SimpleDateFormat fmt = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");
Date date = fmt.parse(inputDate);
GregorianCalendar c = new GregorianCalendar();
c.setTime(date);
date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
} catch (Exception e) {
e.printStackTrace();
}
return date2;
}
}
Following error occurred while accessing above 'TestJarOneDetails' class.
10:43:13,337 ERROR [org.jboss.as.ejb3.invocation] (default task-1) WFLYEJB0034: EJB Invocation failed on component ClientTestHelperBean for method public abstract java.lang.String client.test.ejb.session.ClientTestHelperLocal.getValueByParamName(int,java.lang.String,java.lang.String) throws java.lang.Exception: javax.ejb.EJBException: WFLYEJB0442: Unexpected Error
at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:184)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)
Caused by: java.lang.NoClassDefFoundError: javax/xml/datatype/DatatypeFactory
at api.jarone.com.pojo.TestJarOneDetails.convertDatetoXMLGregorian(TestJarOneDetails.java:21)
at client.test.ejb.session.ClientTestHelperBean.getValueByParamName(ClientTestHelperBean.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Caused by: java.lang.ClassNotFoundException: javax.xml.datatype.DatatypeFactory from [Module "jaroneapi:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /home/cmsim/manish/wildfly-9.0.2.Final/modules,/home/cmsim/manish/wildfly-9.0.2.Final/modules/system/layers/base))]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
10:43:13,341 ERROR [stderr] (default task-1) javax.ejb.EJBException: WFLYEJB0442: Unexpected Error
10:43:13,341 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:184)
10:43:13,341 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)
10:43:13,341 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327)
10:43:13,342 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)
10:43:13,361 ERROR [stderr] (default task-1) Caused by: java.lang.ClassNotFoundException: javax.xml.datatype.DatatypeFactory from [Module "jaroneapi:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /home/cmsim/manish/wildfly-9.0.2.Final/modules,/home/cmsim/manish/wildfly-9.0.2.Final/modules/system/layers/base))]
10:43:13,361 ERROR [stderr] (default task-1) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
10:43:13,361 ERROR [stderr] (default task-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
10:43:13,361 ERROR [stderr] (default task-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
10:43:13,361 ERROR [stderr] (default task-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
I think i have to configure module 'jaroneapi' with some dependencies, but what will be dependency as 'javax.xml.datatype.DatatypeFactory' is present in /jdk1.8.0_66/jre/lib/rt.jar.
Upvotes: 1
Views: 3359
Reputation: 17760
You need to add a dependency on the javax.api
module in your module. For the command you just need to add --dependencies=javax.api
module add --name=jaroneapi --resources=~/modules/jaroneapi.jar --dependencies=javax.api
Or you can just edit the module.xml and add the dependency manually.
<module xmlns="urn:jboss:module:1.3" name="jaroneapi">
<resources>
<resource-root path="jaroneapi.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
Upvotes: 1