ste*_*han 2 java web-deployment guava weblogic12c
我正在尝试在weblogic服务器上部署带有war文件的Web项目。但是我遇到了类似上面的错误,
java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
at com.google.common.eventbus.EventBus.<init>(EventBus.java:138)
Run Code Online (Sandbox Code Playgroud)
我尝试了最新版本和最旧版本的番石榴。在最旧的版本中,我遇到了eventbus错误(在旧版本中未定义此方法)。在最新版本中,我再次遇到相同的错误。
我怎么解决这个问题?
编辑:它在我的编辑器(IntelliJ)中运行清晰,当我尝试在Weblogic服务器上运行它时,在部署中出现此错误。
更新:
我只是在WEB-INF路径中添加了一个如上所述的weblogic.xml文件。无需任何其他配置。@ luc14n0为我解决了问题
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
Run Code Online (Sandbox Code Playgroud)
Weblogic 12c(12.1.3)在Oracle / Middleware / Oracle_Home / wlserver / modules / com.google.common_1.2.0.0_11-0-2.jar中附带了自己的Guava依赖项
通过告诉WebLogic您更喜欢使用自己的版本,可以避免在加载错误的库时发生冲突。
如果是EAR,请将以下内容添加到application.xml:
<prefer-application-packages>
<package-name>com.google.common.*</package-name>
</prefer-application-packages>
Run Code Online (Sandbox Code Playgroud)
如果发生WAR,请将以下内容添加到weblogic.xml中:
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
748 次 |
| 最近记录: |