将web应用程序从Tomcat移动到WebLogic时出现错误的库版本

将web应用程序从Tomcat移动到WebLogic时出现错误的库版本,web,weblogic,java,Web,Weblogic,Java,我的java web应用程序正在ApacheTomcat上运行。它的工作需要一些第三方库(特别是jasperreports 3.7.2)。但现在有必要在WebLogic上移动应用程序。而且它似乎使用的不是它以前使用的库(在Tomcat上),而是这个库的其他版本(我怀疑默认情况下WebLogic附带的版本)。如何指定库的具体版本并使WebLogic使用它?我以前从未使用过weblogic。也许我应该在部署描述符中键入一些东西或类似的东西?感谢您的回复。如果您在war中的WEB-INF/lib中有您

我的java web应用程序正在ApacheTomcat上运行。它的工作需要一些第三方库(特别是jasperreports 3.7.2)。但现在有必要在WebLogic上移动应用程序。而且它似乎使用的不是它以前使用的库(在Tomcat上),而是这个库的其他版本(我怀疑默认情况下WebLogic附带的版本)。如何指定库的具体版本并使WebLogic使用它?我以前从未使用过weblogic。也许我应该在部署描述符中键入一些东西或类似的东西?感谢您的回复。

如果您在war中的WEB-INF/lib中有您想要的JAR,您可以告诉Weblogic将该JAR用于类加载器中可能存在的任何其他JAR

  • 使用
    weblogic.xml
    Web应用程序部署描述符中的元素(位于
    Web.xml
    旁边的Web-INF中)
下面是一个示例weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app
 xmlns="http://www.bea.com/ns/weblogic/90"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic- web-app.xsd">
    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
     </container-descriptor>
</weblogic-web-app>

真的

注意:在这种用法中,所有WEB\u INF/lib类都将优先于类路径中的其他版本。

您自己带来jasper报告了吗?你改变了类加载顺序了吗?我不太明白第一个问题。据我所知,jasperreports库位于war存档中的WEB-INF/lib文件夹中。我没有更改类加载顺序。默认情况下,jasperreports不是Weblogic的一部分。您是否收到任何错误,如ClassNotFoundException或NoClassDefFoundError?如果Tomcat和WebLogic安装(搜索文件系统)中只有一个jasperreports.jar,则您的部署方案显然已被破坏。可能是jasperreport本身使用的库是WebLogic standart库。我的意思是,这个问题在jasperreports中是不必要的,但似乎问题在库版本中。