0

我正在尝试部署一个 sar 文件,但出现与 java.lang.ClassNotFoundException 相关的错误。我的 sar 文件是

10:46:27,697 错误 [org.jboss.msc.service.fail](MSC 服务线程 1-7)MSC00001:无法启动服务 jboss.mbean.service."backend.actipstation:service=SnmpStationService1".start: org .jboss.msc.service.StartException in service jboss.mbean.service."backend.actipstation:service=SnmpStationService1".start: JBAS017222: 无法在 org.jboss.as.service.StartStopService 执行旧服务 start() 方法。 start(StartStopService.java:56) 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 org .jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor .java:1145) [rt.jar:1.7.0_65] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_65] 在 java.lang.Thread.run(Thread.java:745) [rt.jar: 1.7.0_65] 引起:java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_65] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_65] 在 java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_65] 在 org.jboss.as.service.AbstractService.invokeLifecycleMethod(AbstractService.java:52) 在 org.jboss.as.service.StartStopService.start(StartStopService.java:54) ... 5 更多原因:java.lang.NoClassDefFoundError:org/snmp4j/smi/变量在 cl.auter.sictrav.comunicacion.snmp.backend.SnmpStation.startService(SnmpStation.java:154) 在 cl.auter.sictrav.comunicacion.snmp.backend.SnmpStationService.start(SnmpStationService.java :11) ... 11 更多原因:java.lang.ClassNotFoundException: org.snmp4j.smi.Variable from [Module "deployment.sictrav3_actstationservice.sar:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader。 findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.1.1.GA ] 在 org.jboss.modules.ConcurrentClassLoader 的 org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.1.1.GA]。performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.1.1.GA ] ... 13 更多

我的 sar 文件有这个结构

+ actstationservice.sar
|-cl/
    |- /* compiled class files here */
| snmp4j-1.11.1.jar
|-META-INF/
    |- jboss-service.xml
    |- jboss-deployment-structure.xml

jboss-部署-结构.xml

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>  
    <resources>
        <resource-root path="snmp4j-1.11.1.jar"></resource-root>
    </resources>
    <dependencies>
        <module name="org.snmp4j" export="true" />
    </dependencies>
</deployment>
</jboss-deployment-structure>

我的清单.MF

Manifest-Version: 1.0
Dependencies: org.snmp4j export,org.hibernate

我也有 /lib 文件夹内的库

我错过了什么?

4

1 回答 1

-1

sar 文件不包括 META-INF 中的 jboss-deployment-structure.xml。我添加了它,它起到了一种魅力。

于 2016-04-26T14:08:19.607 回答