在 Weblogic 上部署 Nexus

将 Nexus 发布到 Weblogic 上,启动 Nexus 时会报错,仔细看了下错误:

提示 ImmutableSet 没有 copyOf(Collection ) 方法。


看了一下异常,又找了一下,原因为 nexus 中带有的 guava.jar 和 weblogic 自身带有的 guava.jar 冲突。

查看了下 weblogic 的文档,weblogic 支持定义类加载的优先级,这就可以解决了。
修改方法为: 修改 weblogic.xml ,添加

<?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.

你可能感兴趣的:(weblogic,nexus)