Java 将应用程序从Weblogic 8.1升级到Weblogic 10.3.6时发生IllegalArgumentException

Java 将应用程序从Weblogic 8.1升级到Weblogic 10.3.6时发生IllegalArgumentException,java,deployment,weblogic11g,Java,Deployment,Weblogic11g,我正在将一个遗留java应用程序从Weblogic 8.1升级到Weblogic 10.3.6(java版本也从1.4升级到1.6)。我构建了weblogic完整客户端jar文件,并将其添加到类路径中 当我在Weblogic 10.3.6中部署应用程序时,它会失败,并出现以下错误 Caused by: java.lang.IllegalArgumentException: javacc,ant,commons-collections,log4j,junit-Extension-Name

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

当我在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)
原因:java.lang.IllegalArgumentException:javacc、ant、commons集合、log4j、junit扩展名
位于java.util.jar.Attributes$Name.(Attributes.java:447)
位于java.util.jar.Attributes.getValue(Attributes.java:99)
在weblogic.application.library.LibraryReferenceFactory.getOptPackReference(LibraryReferenceFactory.java:135)
位于weblogic.application.internal.OptionalPackageProviderImpl.getOptionalPackages(OptionalPackageProviderImpl.java:44)
在weblogic.utils.classloaders.ClassFinderUtils.getOptionalPackages(ClassFinderUtils.java:145)上
在weblogic.utils.classloaders.ClassFinderRutils.getManifestClassPath(ClassFinderRutils.java:126)
在weblogic.utils.classloaders.ClassFinderRutils.getManifestFinder(ClassFinderRutils.java:98)
在weblogic.utils.classloaders.ClassFinderRutils.getManifestFinder(ClassFinderRutils.java:79)
在weblogic.utils.classloaders.JarClassFinder(JarClassFinder.java:41)
在weblogic.utils.classloaders.JarClassFinder.(JarClassFinder.java:30)
在weblogic.utils.classloaders.ClasspathClassFinder2.getClassFinder(ClasspathClassFinder2.java:87)
在weblogic.utils.classloaders.ClasspathClassFinder2.setClasspath(ClasspathClassFinder2.java:80)
在weblogic.utils.classloaders.ClasspathClassFinder2.(ClasspathClassFinder2.java:54)
在weblogic.utils.classloaders.ClasspathClassFinder2.(ClasspathClassFinder2.java:45)
位于weblogic.application.io.ExplodedJar.buildClasspathFinder(ExplodedJar.java:141)
位于weblogic.application.io.ExplodedJar.getClassFinder(ExplodedJar.java:87)
位于weblogic.servlet.internal.ArchivedWar.getClassFinder(ArchivedWar.java:72)
位于weblogic.servlet.internal.War.init(War.java:246)
位于weblogic.servlet.internal.War。(War.java:217)
位于weblogic.servlet.internal.WebAppServletContext.processDocroot(WebAppServletContext.java:2785)
位于weblogic.servlet.internal.WebAppServletContext.setDocroot(WebAppServletContext.java:2662)
位于weblogic.servlet.internal.WebAppServletContext。(WebAppServletContext.java:414)
位于weblogic.servlet.internal.WebAppServletContext。(WebAppServletContext.java:494)
位于weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:418)
位于weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:976)
位于weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:384)
关于如何解决这个问题有什么想法吗

提前谢谢。

帮我解决了问题

所使用的一个jar文件在MANIFEST.MF文件中的
扩展名列表
属性上有逗号分隔的字符串。使用没有逗号分隔字符串的更高版本更新了jar文件


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

您要升级到java 1.6吗?为什么?它不再受支持(除非您获得Oracle的扩展支持)。升级到1.8。-@Weblogic 11g不支持Asaph 1.8,目前我们必须使用11g。是的,不要在10.3.x中使用1.8。您是否已将wlfullclient捆绑到应用程序中,然后将其部署?@devwebcl是的,我有。很高兴看到您解决了这个问题,但是将wlfullclient捆绑到应用程序中并不好,因为所有这些都是库,都已在WLS中。(这是多余的)是的,我确实注意到@devwebcl,所以我从应用程序包中删除了它们。谢谢