2016-04-14 114 views
0

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

当我部署的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) 

如何解决这个问题的任何想法?

在此先感谢。

+0

您正在升级到java 1.6吗?为什么?它不再被支持(除非你有扩展的Oracle支持)。升级到1.8。 - http://www.oracle.com/technetwork/java/eol-135779.html – Asaph

+0

@Asaph 1.8不支持Weblogic 11g,我们现在必须使用use 11g。 [JRE 8与weblogic 10.3.6(11g)兼容](http://stackoverflow.com/questions/22513660/jre-8-compatibility-with-weblogic-10-3-6-11g) – neo108

+0

对,不要用1.8在10.3.x中 – devwebcl

回答

0

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

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

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

+0

很高兴看到您解决了这个问题,但将wlfullclient捆绑到您的应用程序中并不好,因为所有这些库都已存在于WLS中。 (这是多余的) – devwebcl

+0

是的,我注意到@devwebcl,所以我将它们从应用程序包中删除。谢谢。 – neo108

相关问题