java - Wildfly-9.0.2.Final 中的 ClassNotFoundException : javax. xml.datatype.DatatypeFactory

标签 java ant jboss java-8 wildfly

Enviornment - AS@wildfly-9.0.2.Final, 
BuildingTool@ant,
JDK@jdk1.8.0_66

从我的 java 代码访问以下类,这导致了错误。

javax.xml.datatype.DatatypeFactory

Java claas 已配置为模块

jaroneapi'==>模块添加 --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;
 }  
   }

访问上述“TestJarOneDetails”类时发生以下错误。

    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)

我认为我必须使用一些依赖项配置模块“jaroneapi”,但是/jdk1.8.0_66/jre/lib/rt.jar 中存在“javax.xml.datatype.DatatypeFactory”依赖项。

最佳答案

您需要在模块中添加对 javax.api 模块的依赖项。对于该命令,您只需添加 --dependencies=javax.api

module add --name=jaroneapi --resources=~/modules/jaroneapi.jar --dependencies=javax.api

或者您可以直接编辑 module.xml 并手动添加依赖项。

<module xmlns="urn:jboss:module:1.3" name="jaroneapi">

    <resources>
        <resource-root path="jaroneapi.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
    </dependencies>
</module>

关于java - Wildfly-9.0.2.Final 中的 ClassNotFoundException : javax. xml.datatype.DatatypeFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37338537/

相关文章:

java - 使用 Java 将 JSON 文件转换为 RDF 格式

java - Android:传递允许 recyclerview 由特定字符串填充的变量

java - 字符串常量池在java中是如何工作的

java - Mac 10.9 上的 Subclipse/Subversion,ANT 调用 svn 信息返回 "too old"错误

java - 在 Jboss EAP 6 中哪里可以找到 Server.xml?

java - 更改应用程序/窗口标签和图标而不更改启动器快捷方式

Ant 目标调用

jsp - 升级项目后 JSP 中的未终止标记

java - 为什么在 Wildfly 中 com/sun/rowset/CachedRowSetImpl 出现 NoClassDefFoundError?

java - 野蝇15 : Failed to process phase STRUCTURE of deployment