Well, the problem with weblogic is indeed...
Question one:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/_appsdir_scrcu_kstrap_war/a4dr3u/war/WEB-INF/lib/_wl_cls_gen.jar!/com/kayak/util/cache/loader/xxxxxx.class]; nested exception is java.lang.ArrayIndexOutOfBoundsException: 768
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:303)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:248)
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:87)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1427)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1417)
……………………………………………………………………
org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1868)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3154)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1518)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:484)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
………………………………………………………………………………………………weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:180)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:96)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: java.lang.ArrayIndexOutOfBoundsException: 768
at org.springframework.asm.ClassReader.readClass(ClassReader.java:2462)
at org.springframework.asm.ClassReader.accept(ClassReader.java:544)
at org.springframework.asm.ClassReader.accept(ClassReader.java:508)
……………………………………………………………………………………………………
[Solution] First of all, this anomaly really made me very uncomfortable. . Looking at the error log, it is not a problem with the web project, and the web project is deployed normally in tomcat. . Seeing that there is java.lang.ArrayIndexOutOfBoundsException: is even more confusing. I tried setting the memory of weblogic as mentioned on the Internet, and I used jd-gui.exe to see the underlying jar package to track the source of the error, but I still couldn't do anything. .
See the red part of the first line of the error log, it should be caused by incorrect loading into xxx.class, trace : E:/weblogic/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/_appsdir_scrcu_kstrap_war/a4dr3u/war/WEB -INF/lib/_wl_cls_gen.jar , jd-gui.exe opens the _wl_cls_gen.jar package, and finds that xxx.class is indeed an error of // INTERNAL ERROR // (not correctly parsed) ; but found that the project startup did not specify that it should be used xxx.java ah. .
Later, I changed a file format and placed it under autodeploy with WebRoot, and it can finally be deployed normally! !
As for why the war package can't be used (some projects can, but I don't know why this project can't) I don't know the reason. .
- Note that there will be some temporary files under E:/weblogic/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user. When deployed through the war package, a jar package named _wl_cls_gen.jar will be automatically generated; when deployed through WebRoot (or the decompressed file of the war package), there will be no such jar package. .
When some projects fail to be deployed through war package, and the strange exception of Caused By: java.lang.ArrayIndexOutOfBoundsException occurs, you might as well change to its decompressed file to deploy, maybe it will be successful.