问题解决方法:Servlet: "testREST" failed to preload on startup in Web application: "claimInvoice".

问题描述:用jersey REST ful写的webservice接口项目,在window下JDK1.6032,weblogic10环境下,可以正常编译和部署。但是部署到Linux(CentOS 7)环境后,命令启动weblogic时候提示如下错误:java.lang.NoSuchMethodError: accept。也就是项目预加载未成功。在weblogic的console控制台也是报此错误。请各位大神看看这个错误原因和解决办法,万分感谢。

测试程序首页,提示Error 503--Service Unavailable错。

问题解决方法:Servlet:

错误日志如下:

Enter username to boot WebLogic server:weblogic
Enter password to boot WebLogic server:








Aug 20, 2018 3:39:02 AM com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Sun's JavaServer Faces implementation (1.2_03-b04-FCS) for context '/console'
Aug 20, 2018 3:39:02 AM com.sun.faces.config.ConfigureListener contextInitialized
INFO: Completed initializing Sun's JavaServer Faces implementation (1.2_03-b04-FCS) for context '/console'
log4j:WARN No appenders could be found for logger (org.directwebremoting.util.Logger).
log4j:WARN Please initialize the log4j system properly.
Aug 20, 2018 3:39:04 AM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
  com.sinosoft.claimCar.restful.service
<Servlet: "testREST" failed to preload on startup in Web application: "claimInvoice".
java.lang.NoSuchMethodError: accept
        at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:138)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner$1.f(FileSchemeScanner.java:86)
        at com.sun.jersey.core.util.Closing.f(Closing.java:71)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scanDirectory(FileSchemeScanner.java:83)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scanDirectory(FileSchemeScanner.java:80)
        Truncated. see log file for complete stacktrace
>
weblogic.application.ModuleException: [HTTP:101216]Servlet: "testREST" failed to preload on startup in Web application: "claimInvoice".
java.lang.NoSuchMethodError: accept
        at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:138)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner$1.f(FileSchemeScanner.java:86)
        at com.sun.jersey.core.util.Closing.f(Closing.java:71)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scanDirectory(FileSchemeScanner.java:83)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scanDirectory(FileSchemeScanner.java:80)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scan(FileSchemeScanner.java:71)
        at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:226)
        at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:142)
        at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:82)
        at com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:105)
        at com.sun.jersey.api.core.PackagesResourceConfig.(PackagesResourceConfig.java:79)
        at com.sun.jersey.api.core.PackagesResourceConfig.(PackagesResourceConfig.java:89)
        at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:696)
        at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:674)
        at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:205)
        at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:377)
        at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:560)
        at javax.servlet.GenericServlet.init(GenericServlet.java:242)
        at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
        at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
        at weblogic.servlet.internal.StubLifecycleHelper.(StubLifecycleHelper.java:48)
        at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:531)
        at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1915)
        at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1889)
        at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1807)
        at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3046)
        at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1397)
        at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:463)
        at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:427)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)
        at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
        at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:201)
        at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:249)
        at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:427)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)
        at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
        at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:28)
        at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:1269)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)
        at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:409)
        at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:39)
        at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
        at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
        at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
        at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
        at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:52)
        at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
        at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:31)
        at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
        at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:170)
        at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:124)
        at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:174)
        at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:90)
        at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

        at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1399)
        at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:460)
        at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)
        at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
        Truncated. see log file for complete stacktrace

Caused By: java.lang.NoSuchMethodError: accept
        at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:138)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner$1.f(FileSchemeScanner.java:86)
        at com.sun.jersey.core.util.Closing.f(Closing.java:71)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scanDirectory(FileSchemeScanner.java:83)
        at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scanDirectory(FileSchemeScanner.java:80)
        Truncated. see log file for complete stacktrace
>











 

web.xml配置如下:


    
        weblogic.httpd.inputCharset./*
        GBK
    

    
        action    
        com.sinosoft.sysframework.web.control.ExtendedStrutsActionServlet
        
            config
            /WEB-INF/struts-config.xml
        

        
            debug
            3
        

        
            detail
            3
        

        
            Log4j
            WEB-INF/config/log4j.properties
        

        2
    

    
    
         XFireServlet
        
                 org.codehaus.xfire.transport.http.XFireConfigurableServlet
        

    

 
    
    
        action
        *.do
    

 
 
         XFireServlet
         /servlet/XFireServlet/*
    

 
    
         XFireServlet
          /services/*
    

 
     
 
  
        CometTest
        com.chinalife.comet.CometServlet
        1
   

   
        CometTest
        /test
   

   
        Producer
        com.chinalife.comet.ProducerServlet
   

   
        Producer
        /send
   

   
   
        dwr-invoker
        org.directwebremoting.servlet.DwrServlet
       
            debug
            true
       

       
            activeReverseAjaxEnabled
            true
       

       
            maxWaitAfterWrite
            1000
       

       
            crossDomainSessionSecurity
            false
       

   
     
        org.directwebremoting.extend.ServerLoadMonitor  
        org.directwebremoting.impl.PollingServerLoadMonitor  
   
   
     
     
        disconnectedTime  
        60000   
   
 
        1
   

   
        dwr-invoker
        /dwr/*
   

        
       
   
        testREST
        com.sun.jersey.spi.container.servlet.ServletContainer
       
       
            com.sun.jersey.config.property.packages
            com.sinosoft.claimCar.restful.service           
       

        
       
            com.sun.jersey.spi.container.ContainerRequestFilters
            com.sinosoft.claimCar.restful.service.filter.RequestFilter
       

       
            com.sun.jersey.spi.container.ContainerResponseFilters
            com.sinosoft.claimCar.restful.service.filter.ResponseFilter
       

       
            com.sun.jersey.api.json.POJOMappingFeature
            true
       

        1
   

    
        testREST
        /rest/*    
    
    
   
 
    

    
        abs
        audio/x-mpeg
    

    
        ai
        application/postscript
    

   
        zip
        application/zip
    

    
        /common/index.html
    

    
    
    
        /WEB-INF/app.tld
        /WEB-INF/claim-app.tld
    

    
        /WEB-INF/struts-bean.tld
        /WEB-INF/struts-bean.tld
    

    
        /WEB-INF/struts-html.tld
        /WEB-INF/struts-html.tld
    

    
        /WEB-INF/struts-logic.tld
        /WEB-INF/struts-logic.tld
    

    
        struts/bean-el
        /WEB-INF/struts-bean-el.tld
    

    
        struts/html-el
        /WEB-INF/struts-html-el.tld
    

    
        struts/logic-el
        /WEB-INF/struts-logic-el.tld
    

    
        jstl/c
        /WEB-INF/c.tld
    

 

 

上网查询了一些方法,大概就是说Spring和Hibernate中asm的版本冲突问题,最终是删除了asm开头的4个jar包(asm-2.2.3.jar,asm-attrs.jar,asm-commons-2.2.3.jar,asm-util-2.2.3.jar)才解决问题。

下面搜集了一些其他的解决办法供参考:

 检查lib下面关于asm的包,分别有如下几个JAR包:
       asm-2.2.3.jar
       asm.jar
       asm-attrs.jar
       asm-commons-2.2.3.jar
       asm-util-2.2.3.jar


第一种方法↓

-->删除 asm-2.2.3.jar 重启应用服务器 OK! ...

第二种方法↓

-->从网上下一个最新的asm-all-3.0.jar的jar包,然后把原来的关于Hibernate的所有asm开头的jar包全部删掉,还有一个cglib-2.1.3.jar也删掉.

重新部署工程,OK! ...

第三种方法↓

-->去掉类路径上的关于Hibernate的3个lib
    asm.jar
    asm-attrs.jar
    cglib-2.1.3.jar
    再加入Spring中的以下4个lib
    asm-2.2.2.jar
    asm-commons-2.2.2.jar
    asm-util-2.2.2.jar
    cglib-nodep-2.1_3.jar

 

最终,使用方法2成功。即

从网上下一个最新的asm-all-3.0.jar的jar包,然后把原来的关于Hibernate的所有asm开头的jar包全部删掉,还有一个cglib-2.1.3.jar也删掉。重新部署工程,OK。

附: asm-all-3.0.jar的jar包下载:https://download.csdn.net/download/juncailiao/10980608

 

你可能感兴趣的:(java应用)