将 Nexus 发布到 Weblogic 上,启动 Nexus 时会报错,仔细看了下错误:web
提示 ImmutableSet 没有 copyOf(Collection ) 方法。app
看了一下异常,又找了一下,缘由为 nexus 中带有的 guava.jar 和 weblogic 自身带有的 guava.jar 冲突。google
查看了下 weblogic 的文档,weblogic 支持定义类加载的优先级,这就能够解决了。
修改方法为: 修改 weblogic.xml ,添加code
<?xml version=”1.0″?> <weblogic-web-app xmlns=”http://www.bea.com/ns/weblogic/90″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”> <context-root>/nexus</context-root> <container-descriptor> <!– <prefer-web-inf-classes>true</prefer-web-inf-classes> –> <prefer-application-packages> <package-name>org.xmlpull</package-name> <package-name>com.google</package-name> <package-name>org.slf4j</package-name> <!– <package-name>net</package-name> –> </prefer-application-packages> <prefer-application-resources> <resource-name>org.xmlpull</resource-name> <resource-name>com.google</resource-name> <resource-name>org.slf4j</resource-name> <resource-name>META-INF/services/org.xmlpull</resource-name> <resource-name>META-INF/services/org.slf4j</resource-name> <!– <resource-name>META-INF/services/com</resource-name> <resource-name>META-INF/services/net</resource-name> –> </prefer-application-resources> </container-descriptor> </weblogic-web-app>
将这个 weblogic.xml 添加到 nexus 的 WEB-INF 目录下, 从新发布,启动, OK.
xml