我用的是spring2.5+hibernate3.2+struts1.3整合  出现下面问题  请高手帮忙 说是找不到sessionFactory  但我配了啊  
严重: action: null
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [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
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.struts.ContextLoaderPlugIn.createWebApplicationContext(ContextLoaderPlugIn.java:354)
at org.springframework.web.struts.ContextLoaderPlugIn.initWebApplicationContext(ContextLoaderPlugIn.java:295)
at org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:225)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:871)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4149)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4458)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:987)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:909)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:495)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
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:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

解决方案 »

  1.   

    struts+spring没出现这问题 当配上hibernate时就出现找不到sessionFactoryappricationContext.xml配置如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
                        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation">
    <value>classpath:hibernate.cfg.xml</value>
    </property>
    </bean>
    <bean id="hibernateUserDao" class="cn.letao.spring.dao.HibernateUserDaoImpl">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean> <bean name="/user" class="cn.letao.spring.action.UserAction"
    scope="prototype">
    <property name="userDao" ref="userDao" />
    </bean>
    <bean id="userDao" class="cn.letao.spring.manager.UserDaoImpl">
    <property name="hibernateUserDao" ref="hibernateUserDao" />
    </bean></beans>
      

  2.   

    web.xml配置如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <!--过滤器 解决传输参数乱码-->
      <filter>
      <filter-name>encodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
      </init-param>
      <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
      </init-param>
      </filter>
      <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
      </filter-mapping>
     
      <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:applicationContext-*.xml</param-value>
      </context-param>
      <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <!--保持session打开-->
        <filter>
      <filter-name>hibernateFilter</filter-name>
      <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
      </filter>
      <filter-mapping>
      <filter-name>hibernateFilter</filter-name>
      <url-pattern>/*</url-pattern>
      </filter-mapping>
      <!--struts ActionServlet配制-->
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
      

  3.   

    appricationContext.xml配置看有那里地方有错误啊
    看看事务配置有错没有。
      

  4.   

    <bean id="dataSource" class="..." destroy-method="close">
      <property name="configLocation"> 
        <value>classpath:hibernate.cfg.xml</value> 
      </property>
    </bean>
    <bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
      <property name="dataSource" ref="dataSource"/> 
      <property name="mappingLocations">
                <list>
                   <value>.....</value>
                </list>
    </bean> 
    应该这样吧????
      

  5.   

    <context-param> 
      <param-name>contextConfigLocation </param-name> 
      <param-value>classpath*:applicationContext-*.xml </param-value> 
      </context-param> 是这样写的吧:
    <context-param> 
      <param-name>contextConfigLocation </param-name> 
      <param-value>classpath:*applicationContext*.xml </param-value> 
      </context-param> 
    看看是不是这里出了问题
      

  6.   

    应该是你将sessionFactory这个bean放在了不合适的地方
      

  7.   

    你在web.xml里是这样配的
      <context-param> 
      <param-name>contextConfigLocation </param-name> 
      <param-value>classpath*:applicationContext-*.xml </param-value> 
      </context-param>
    但是你的spring配置文件是appricationContext.xml,应该是不符合要求吧,
    你把spring的配置文件改成appricationContext-common.xml试试
      

  8.   

    都不是 还是不行   我换了用spring2.0+struts1.3+hibernate3.1才可以  框架里面不懂  遇到点问题就晕了
      

  9.   

    LZ :appricationContext.xml配置,是否需要配置数据源 dataSource
     
      

  10.   

    我是在hibernate配置文件里配的
      

  11.   

    把asm.jar那个包删了,看看好不好使
      

  12.   

    asm包冲突问题
    NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
    解决方案:删除其他版本asm JAR包,只留一个
      

  13.   

    首先 :删除 Spring 的asm JAR包其次:
    你这里错了, HibernateTemplement 没有配, 应该是 :<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation">
    <value>classpath:hibernate.cfg.xml </value>
    </property>
    </bean><bean id="ht" class="hibernamte模版的那个类">
     <property ="hibernateTep....." ref=sessionFactory" />
    </bean>
    你这下面还有好多没有配, 晕死, 不知道你怎么搞的, 层次都没搞清楚,
    你这下面 Dao 里面 是注入 sessionFactory? 应该是 持久化里注入把, Dao 里注入 持久化, 所以说你层次错了
    <bean id="hibernateUserDao" class="cn.letao.spring.dao.HibernateUserDaoImpl">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean><bean name="/user" class="cn.letao.spring.action.UserAction"
    scope="prototype">
    <property name="userDao" ref="userDao" />
    </bean>
    <bean id="userDao" class="cn.letao.spring.manager.UserDaoImpl">
    <property name="hibernateUserDao" ref="hibernateUserDao" />
    </bean></beans>
      

  14.   

    将asm-2.2.3的三个包删掉
    ,这三个包于spring 提供的asm出现冲突!
      

  15.   

    确定配置文件没错的话,应该是.jar文件冲突
      顶楼上