ssh应用部署时遇到的问题及解决方案

 今天在部署一个ssh应用的时候遇到下面的错误
   信息: ExtensionValidator[/spring-struts][commons-attributes-compiler.jar]: Required extension "ant" not found.
   2009-5-22 14:00:24 org.apache.catalina.util.ExtensionValidator validateManifestResources
   信息: ExtensionValidator[/spring-struts][commons-attributes-compiler.jar]: Required extension "qdox" not found.
   2009-5-22 14:00:24 org.apache.catalina.util.ExtensionValidator validateManifestResources
   信息: ExtensionValidator[/spring-struts][commons-attributes-compiler.jar]: Required extension "commons-attributes-api" not found.
   2009-5-22 14:00:24 org.apache.catalina.util.ExtensionValidator validateManifestResources
   信息: ExtensionValidator[/spring-struts][commons-attributes-compiler.jar]: Required extension "javadoc" not found.
   2009-5-22 14:00:24 org.apache.catalina.util.ExtensionValidator validateManifestResources
   信息: ExtensionValidator[/spring-struts]: Failure to find 4 required extension(s).
   2009-5-22 14:00:24 org.apache.catalina.core.StandardContext start
   严重: Error getConfigured
   2009-5-22 14:00:24 org.apache.catalina.core.StandardContext start
   严重: Context [/spring-struts] startup failed due to previous errors

在网上找了很多发现是commons-attributes-compiler.jar有问题,网上许多教程说可以将此包下的META-INF/MANIFEST.MF修改下就
可以了,原因是由于此文件中有些本来应该写在一行的东西却分在两行写了,有的可能行末有空格。我照着这些做了发现还是不行,
我估计是我的这个版本的jar包不可以按照这个方法做。于是干脆在网上找了一个正确的包就好了。

但是换了jar包后却出现了下面的问题
严重: Error listenerStart
2007-5-31 14:27:13 org.apache.catalina.core.StandardContext start
严重: Context [/testWSH] startup failed due to previous errors

此问题在网上找了一下,一般是由于导入的jar包可能有冲突。这个问题就比较麻烦了,这么多的jar包到底谁和谁有冲突,如何解决?
而错误信息只有仅此的一点点,这简直就是一个灾难。这是我想到将tomcat中的日志输出信息输出详细点也许能看出点问题。

配置tomcat5.5.20中的日志输出信息

一、将这两个jar包commons-logging-1.0.4.jar,log4j-1.2.12.jar拷贝到common/lib中,
二、将log4j.properties文件拷贝到common/classes中,log4j.properties中的内容如下
 
   log4j.rootLogger=ERROR,R
   
   log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
   log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
   log4j.appender.CONSOLE.layout.ConversionPattern=[%p]%t-%c-%m%n
   
   log4j.appender.R=org.apache.log4j.RollingFileAppender
   log4j.appender.R.File=${catalina.home}/logs/lizongbo.log
   log4j.appender.R.MaxFileSize=10MB
   log4j.appender.R.MaxBackupIndex=10
   log4j.appender.R.layout=org.apache.log4j.PatternLayout
   log4j.appender.R.layout.ConversionPattern=[%p]%t-%c-%m%n
   
   log4j.logger.org.apache.catalina=INFO,R,CONSOLE
   
   此时重启tomcat就可以见到详细的错误信息了
   
   [ERROR]main-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/spring-struts]-Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in ServletContext resource [/WEB-INF/spring-config/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
   Caused by:
   java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
    at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
    at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)
    at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
    at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
    at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
    at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:107)
    at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
    at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
    at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:295)
    at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1175)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1145)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:144)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:276)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:360)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:241)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
   [ERROR]main-org.apache.catalina.core.StandardContext-Error listenerStart
    [ERROR]main-org.apache.catalina.core.StandardContext-Context [/spring-struts] startup failed due to previous errors
    [INFO]main-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/spring-struts]-Closing Spring root WebApplicationContext
    [INFO]main-org.apache.catalina.loader.WebappClassLoader-validateJarFile(E:/greensoftware/apache-tomcat-5.5.20/webapps/upload/WEB-INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    [INFO]Finalizer-org.apache.catalina.loader.WebappClassLoader-Illegal access: this web application instance has been stopped already.  Could not load java.net.BindException.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
    java.lang.IllegalStateException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1241)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:155)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2652)
    at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1345)
    at com.mysql.jdbc.Connection.realClose(Connection.java:4784)
    at com.mysql.jdbc.Connection.cleanup(Connection.java:2040)
    at com.mysql.jdbc.Connection.finalize(Connection.java:3296)
    at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
    at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
    at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
   [INFO]Finalizer-org.apache.catalina.loader.WebappClassLoader-Illegal access: this web application instance has been stopped already.  Could not load com.mysql.jdbc.Messages.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
    java.lang.IllegalStateException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1241)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:174)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2652)
    at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1345)
    at com.mysql.jdbc.Connection.realClose(Connection.java:4784)
    at com.mysql.jdbc.Connection.cleanup(Connection.java:2040)
    at com.mysql.jdbc.Connection.finalize(Connection.java:3296)
    at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
    at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
    at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
   [INFO]main-org.apache.catalina.storeconfig.StoreLoader-Find registry server-registry.xml at classpath resource
   
   
   此问题是由于Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar
   然后重启 Tomcat.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值