将应用程序从Weblogic 8.1升级到Weblogic 10.3.6时出现IllegalArgumentException

时间:2016-04-14 23:43:42

标签: java deployment weblogic11g

我正在将遗留Java应用程序从Weblogic 8.1升级到Weblogic 10.3.6(也是从1.4到1.6的java版本)。我构建了weblogic完整客户端jar文件as per these instructions并将其添加到类路径中。

当我在Weblogic 10.3.6中部署应用程序时,它失败并出现以下错误...

Caused by: java.lang.IllegalArgumentException: javacc,ant,commons-collections,log4j,junit-Extension-Name
        at java.util.jar.Attributes$Name.<init>(Attributes.java:447)
        at java.util.jar.Attributes.getValue(Attributes.java:99)
        at weblogic.application.library.LibraryReferenceFactory.getOptPackReference(LibraryReferenceFactory.java:135)
        at weblogic.application.internal.OptionalPackageProviderImpl.getOptionalPackages(OptionalPackageProviderImpl.java:44)
        at weblogic.utils.classloaders.ClassFinderUtils.getOptionalPackages(ClassFinderUtils.java:145)
        at weblogic.utils.classloaders.ClassFinderUtils.getManifestClassPath(ClassFinderUtils.java:126)
        at weblogic.utils.classloaders.ClassFinderUtils.getManifestFinder(ClassFinderUtils.java:98)
        at weblogic.utils.classloaders.ClassFinderUtils.getManifestFinder(ClassFinderUtils.java:79)
        at weblogic.utils.classloaders.JarClassFinder.<init>(JarClassFinder.java:41)
        at weblogic.utils.classloaders.JarClassFinder.<init>(JarClassFinder.java:30)
        at weblogic.utils.classloaders.ClasspathClassFinder2.getClassFinder(ClasspathClassFinder2.java:87)
        at weblogic.utils.classloaders.ClasspathClassFinder2.setClasspath(ClasspathClassFinder2.java:80)
        at weblogic.utils.classloaders.ClasspathClassFinder2.<init>(ClasspathClassFinder2.java:54)
        at weblogic.utils.classloaders.ClasspathClassFinder2.<init>(ClasspathClassFinder2.java:45)
        at weblogic.application.io.ExplodedJar.buildClasspathFinder(ExplodedJar.java:141)
        at weblogic.application.io.ExplodedJar.getClassFinder(ExplodedJar.java:87)
        at weblogic.servlet.internal.ArchivedWar.getClassFinder(ArchivedWar.java:72)
        at weblogic.servlet.internal.War.init(War.java:246)
        at weblogic.servlet.internal.War.<init>(War.java:217)
        at weblogic.servlet.internal.WebAppServletContext.processDocroot(WebAppServletContext.java:2785)
        at weblogic.servlet.internal.WebAppServletContext.setDocroot(WebAppServletContext.java:2662)
        at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:414)
        at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:494)
        at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:418)
        at weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:976)
        at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:384)

有关如何解决此问题的任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

The answer to this question帮我解决了问题。

其中一个jar文件使用逗号分隔字符串与MANIFEST.MF文件中的Extension-List属性。使用后来的版本更新了jar文件,该版本没有以逗号分隔的字符串。

发布此解决方案作为答案,以帮助遇到此问题的任何人。