Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Guava和Weblogic:ClassNotFoundException_Java_Maven_Weblogic_Guava - Fatal编程技术网

Java Guava和Weblogic:ClassNotFoundException

Java Guava和Weblogic:ClassNotFoundException,java,maven,weblogic,guava,Java,Maven,Weblogic,Guava,我正在尝试开发一个部署到WebLogic10.3.5的web应用程序。maven的一个依赖项是番石榴 不幸的是,在尝试发布项目时,weblogic会引发以下异常: java.lang.ClassNotFoundException: com.google.common.eventbus.EventBus at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297) at w

我正在尝试开发一个部署到WebLogic10.3.5的web应用程序。maven的一个依赖项是番石榴

不幸的是,在尝试发布项目时,weblogic会引发以下异常:

java.lang.ClassNotFoundException: com.google.common.eventbus.EventBus
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
我的其他maven依赖项似乎都在工作,但我不确定问题出在哪里

有人能帮忙排除故障吗?环境是带有M2E插件的Eclipse,Weblogic服务器集成到Eclipse中

更新:pom.xml中的番石榴条目:

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>11.0.2</version>
    </dependency>

番石榴
. 似乎WLS使用了一些google commons库


我试图通过在weblogic.xml文件中进行更改来强制它使用我的版本,但它似乎不起作用。

转到您的weblogic文件夹weblogic home>modules,如果有com.google.common….jar文件,只需将其删除并替换为guava.jar文件,您必须使用旧的com.google.common……jar名称重命名guava文件(因为weblogic正在寻找这个名称,但它与您的guava文件冲突)

我也遇到了同样的问题

转到您的weblogic文件夹,weblogic home>模块,如果有com.google.common…jar文件,只需删除它并替换为guava.jar文件,您必须用旧的com.google.common…jar名称重命名guava文件(因为weblogic正在查找此名称,但它与您的guava文件冲突)。

我也遇到了同样的问题
  • 是的,这是类装入器问题(应用程序与WebLogic类装入)
  • guava
    库和
    com.google.common
    包含相同的类
  • WebLogic在其类路径的modules目录中有
    com.google.common\u 1.0.0\u 0-6.jar
    com.google.common\u 1.1.0.0\u 0-6.jar
    (取决于WebLogic版本,但jar内容相同,只有META-INF\MANIFEST.MF不同)
  • 您在WebLogic(CAT)中找不到此库。我不确定这是为什么
  • 为什么不在FilteringClassLoaders的帮助下使用WebLogic内置功能
  • 如果您在EAR应用程序中,则需要将类似的内容添加到
    weblogic.xml
    weblogic应用程序.xml

    <wls:container-descriptor>
        <wls:prefer-application-packages>
                <wls:package-name>com.google.common.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
    
    
    com.google.common*
    
    然后重新部署应用程序

    它对我们有用

    • 优点:无需用com.google.common*.jar文件替换和重命名magic,这是自杀的一种方式
    希望能有帮助

    有关更多信息,请参阅链接:

    • 是的,这是类装入器问题(应用程序与WebLogic类装入)
    • guava
      库和
      com.google.common
      包含相同的类
    • WebLogic在其类路径的modules目录中有
      com.google.common\u 1.0.0\u 0-6.jar
      com.google.common\u 1.1.0.0\u 0-6.jar
      (取决于WebLogic版本,但jar内容相同,只有META-INF\MANIFEST.MF不同)
    • 您在WebLogic(CAT)中找不到此库。我不确定这是为什么
    • 为什么不在FilteringClassLoaders的帮助下使用WebLogic内置功能
    如果您在EAR应用程序中,则需要将类似的内容添加到
    weblogic.xml
    weblogic应用程序.xml

    <wls:container-descriptor>
        <wls:prefer-application-packages>
                <wls:package-name>com.google.common.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
    
    
    com.google.common*
    
    然后重新部署应用程序

    它对我们有用

    • 优点:无需用com.google.common*.jar文件替换和重命名magic,这是自杀的一种方式
    希望能有帮助

    有关更多信息,请参阅链接:

    您的
    pom.xml
    中的依赖关系是什么样子的?1.可以告诉guava的解决版本(查看m2e插件)2.您确定
    guava.jar
    包含在WebLogic部署的应用程序中吗?在properties->Java Build Path,Libraries选项卡下,列表是针对guava-11.0.2.jar的。老实说,我不确定在哪里可以找到实际的WebLogic部署,因为我不确定它是否指向maven目标目录。您的
    pom.xml
    看起来像?1.可以告诉我们guava的解析版本(查看m2e插件)2.您确定
    guava.jar
    包含在WebLogic部署的应用程序中吗?在properties->Java Build Path,Libraries选项卡下,列表是针对guava-11.0.2.jar的。老实说,我不确定在哪里可以找到实际的WebLogic部署,因为我不确定它是否指向maven目标目录。我们在他是WLS提供的spring.jar,但我一直在尝试找到一个不同的解决方案。删除服务器提供的jar让我觉得就像用电锯做手术一样。所以根本不要删除它,先将它剪切并粘贴到其他地方,然后按照我提到的做,如果它工作正常,那就开心吧!如果不只是将它粘贴回以前的位置。我们与WLS提供的spring.jar有相同的问题,但我一直在尝试找到不同的解决方案。删除服务器提供的jar让我觉得就像用电锯做手术一样。所以不要删除它,首先将它剪切并粘贴到其他地方,然后按照我提到的做,如果它工作正常,请高兴!如果不是,请将它粘贴回和以前一样。对我来说也很有用,但我的weblogic.xml不使用wls:前缀…我删除了它,它工作得很好。我有一个类似的问题,我想让它工作。问题是我不知道要将它添加到哪个xml。我使用的是weblogic 12c。我尝试将它添加到基本xml、临时域xml以及在我的项目的WEB-INF中创建一个新的xml。前两个不起作用。dtd强制执行的最后一个表明首选应用程序包无效。对于WAR:WEB-INF/weblogic.xml对于EAR应用程序META-INF/weblogic-application.xml,请检查您的xml结构或dtd验证器。O