首页 文章

RMIIO和NoClassDefFoundError

提问于
浏览
0

我'm trying to upload a file from the client (JSE) to the server application (Java EE, EJB, Wildfly). I'尝试使用this page的第一个示例,但是当我尝试在Wildfly服务器上运行服务器应用程序时 - 我收到此错误:

19:08:30,077 ERROR [org.jboss.msc.service.fail](MSC服务线程1-1)MSC000001:无法启动服务jboss.deployment.unit . “ProjectEngineerServer.jar”.POST_MODULE:org.jboss . 服务jboss.deployment.unit中的msc.service.StartException . “ProjectEngineerServer.jar”.POST_MODULE:JBAS018733:无法在org.jboss.as.server.deployment.DeploymentUnitPhaseService.start处理部署“ProjectEngineerServer.jar”的阶段POST_MODULE( deployUnitPhaseService.java:166)[wildfly-server-8.2.0.Final.jar:8.2.0.Final] org.jboss.msc.service.ServiceControllerImpl $ StartTask.startService(ServiceControllerImpl.java:1948)[jboss-msc -1.2.2.Final.jar:1.2.2.Final] at org.jboss.msc.service.ServiceControllerImpl $ StartTask.run(ServiceControllerImpl.java:1881)[jboss-msc-1.2.2.Final.jar:1.2 .2.Final] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[rt.jar:1.8.0_20] at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) [rt.jar中:1.8.0_20在java.lang.Thread.run(Thread.java:745)[rt.jar:1.8.0_20]引起:java.lang.RuntimeException:JBAS018757:获取类com.system.main.HandlingBean的反射信息时出错来自服务模块Loader的模块“deployment.ProjectEngineerServer.jar:main”的ClassLoader ModuleClassLoader,位于org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:72)[wildfly-server-8.2.0.Final .jar:8.2.0.Final] atg.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java) :107)org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:92)at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77)at at org.jboss.as.server.deployment . DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159)[wildfly-server-8.2.0.Final.jar:8.2.0.Final] ... 5更多引起:java.lang.NoClassDefFoundError:com / healthmarketscience / rmiio / RemoteInputStream at java.lang.Class.getDeclaredMethods0(Native Method)[rt.jar:1.8.0_20] at java.lang的java.lang.Class.privateGetDeclaredMethods(Class.java:2688)[rt.jar:1.8.0_20] . org.jboss.as.server.deployment.reflect.ClassReflectionIndex中的Class.getDeclaredMethods(Class.java:1962)[rt.jar:1.8.0_20 . (ClassReflectionIndex.java:65)[wildfly-server-8.2.0 . Final.jar:8.2.0.Final] at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:68)[wildfly-server-8.2.0.Final.jar:8.2.0 . 最终] ... 10更多引起:java.lang.ClassNotFoundException:来自org.jboss.modules.ModuleClassLoader.findClass的[Module“deployment.ProjectEngineerServer.jar:main”来自Service Module Loader]的com.healthmarketscience.rmiio.RemoteInputStream (ModuleClassLoader . java:213)[jboss-modules.jar:1.3.3.Final] org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)[jboss-modules.jar:1.3.3.Final] at org . jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)[jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)[jboss- modules.jar :1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)[jboss-modules.jar:1.3.3.Final] ... 15 more 19:08:31,657 ERROR [org .jboss.as.controller.management-operation](DeploymentScanner-threads - 2)JBAS014613:操作(“完全替换 - 部署”)失败 - 地址:([]) - 失败描述:{“JBAS014671:失败的服务”= > {“jboss.deployment.unit . \” . ProjectEngineerServer.jar \“ . POST_MODULE”=>“org.jboss.msc.service.StartException in service jboss.deployment.unit . \”ProjectEngineerServer.jar \“ . POST_MODULE:JBAS018733 :无法处理阶段POST_MODULE部署\“ProjectEngineerServer.jar \”引起:java.lang.RuntimeException:JBAS018757:获取类com.system.main.HandlingBean的反射信息与使用ClassLoader获取反射信息时出错Module.slassEngineerServer.jar:main \ “来自服务模块加载器引起:java.lang.NoClassDefFoundError:com / healthmarketscience / rmiio / RemoteInputStream引起:java.lang.ClassNotFoundException:来自Service Module Loader的[Module \“deployment.ProjectEngineerServer.jar:main \”的com.healthmarketscience.rmiio.RemoteInputStream ]“}}

我不明白为什么这个 class 找不到( com/healthmarketscience/rmiio/RemoteInputStream ) . 我使用Maven并将其添加到我的pom.xml中:

<dependency>
    <groupId>com.healthmarketscience.rmiio</groupId>
    <artifactId>rmiio</artifactId>
    <version>2.0.5</version>
</dependency>

所以我的项目中有rmiio库 .

我怎么解决这个问题?

1 回答

  • 0

    我解决了这个问题 . 我一步一步做了什么:

    • 我在Wildfly_HOME下为rmiio库创建了以下路径: WILDFLY_HOME\modules\system\layers\base\com\healthmarketscience\main .

    • 我在 main 目录中添加了 rmiio-2.0.5.jar 文件和 module.xml 文件 . 这是 module.xml 文件:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <module xmlns="urn:jboss:module:1.3" name="com.healthmarketscience">
      <resources>
        <resource-root path="rmiio-2.0.5.jar"/>
      </resources>
      <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
      </dependencies>
    </module>
    
    • 我在项目的 META-INF 目录中添加了一个 jboss-deployment-structure.xml 文件 . 这是 jboss-deployment-structure.xml 文件:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <jboss-deployment-structure>
        <deployment>
            <dependencies>
                <module name="com.healthmarketscience" slot="main" export="true"/>
            </dependencies>        
        </deployment>
    </jboss-deployment-structure>
    

相关问题