2016-04-14 86 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