简体   繁体   English

JBoss战争部署

[英]JBoss war deployment

Apologies for having the classes masked. 抱歉,屏蔽了课程。

A tricky scenario. 一个棘手的情况。

This war deploys ok when it is a part of an ear. 当战争成为耳朵的一部分时,这场战争就可以展开。 But when I try to deploy it as a separate deployable entity, it flashes this message. 但是,当我尝试将其部署为单独的可部署实体时,它会闪烁此消息。 It has all the dependencies it requires in 'provided' scope. 它具有“提供”范围内所需的所有依赖项。 I am not sure if JBoss class loader does a lookup in a different location other than that of the one which is looked up when the ear is loaded. 我不确定JBoss类加载器是否在加载耳朵时查找的位置之外的其他位置进行查找。

2015-01-20 17:50:35,485 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-13) WELD-000119 Not generating any bean definitions from com.xxxx.yyy.services.dddd.zzzz.eeee.LoadedClass because of underlying class loading error
2015-01-20 17:50:35,485 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-13) catching: org.jboss.weld.resources.spi.ResourceLoadingException: Error while loading class com.xxxx.yyy.services.dddd.zzzz.eeee.LoadedClass
        at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:176) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.bootstrap.BeanDeployer.loadWeldClass(BeanDeployer.java:116) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:79) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:135) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:63) [jboss-as-weld-7.3.4.Final-redhat-1.jar:7.3.4.Final-redhat-1]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60]
Caused by: java.lang.NoClassDefFoundError: com/xxxx/yyy/services/dddd/zzzz/eeee/MyClass
        at java.lang.Class.getDeclaredMethods0(Native Method) [rt.jar:1.7.0_60]
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2570) [rt.jar:1.7.0_60]
        at java.lang.Class.getDeclaredMethods(Class.java:1855) [rt.jar:1.7.0_60]
        at org.jboss.weld.util.reflection.SecureReflections$8.work(SecureReflections.java:175) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.util.reflection.SecureReflections$8.work(SecureReflections.java:172) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:63) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.util.reflection.SecureReflections.getDeclaredMethods(SecureReflections.java:172) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:240) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:126) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.load(ClassTransformer.java:60) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.load(ClassTransformer.java:51) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
        at org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:71) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:112) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:93) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:164) [weld-core-1.1.17.SP3-redhat-1.jar:1.1.17.SP3-redhat-1]
        ... 11 more
Caused by: java.lang.ClassNotFoundException: com.xxxx.yyy.services.dddd.zzzz.eeee.MyClassfrom [Module "deployment.blah-server-war-1.0.23-SNAPSHOT.war:main" from Service Module Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final-redhat-1]
        ... 34 more

Any Help appreciated. 任何帮助表示赞赏。

War content looks like the below. 战争内容如下所示。

Blahblah.War Blahblah.War
| |
---META-INF --- META-INF
| |
---WEB-INF---- --- WEB-INF ----
| | | |
---index.htm |_____classes --- index.htm | _____类
|_____lib | _____ LIB
|_____beans.xml | _____ beans.xml中
|_____faces-config.xml | _____ faces-config.xml中
|_____web.xml | _____的web.xml

If the error doesn't happen when you deploy it inside an ear, then probably the lib folder of your ear is providing the missing class. 如果将错误部署到耳朵内部时没有发生错误,则可能是您耳朵的lib文件夹正在提供缺少的类。

I recommend comparing the jars contained in the lib folder of your ear against the one's in your war's lib. 我建议将您耳朵的lib文件夹中包含的jar与战争中的lib中的jar进行比较。

Maybe you have another app bundled in the ear which uses the missing jar, so it gets copied in the lib folder of your ear and makes your war deploy. 也许您的耳朵上捆绑了另一个应用程序,该应用程序使用了缺少的罐子,因此将其复制到您耳朵的lib文件夹中,使您的战争得以展开。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM