2011-4-12 17:51:23 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Program Files\Myeclipse\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin;D:\Program Files\Myeclipse\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_7.9.100.zmyeclipse80020090924a\tomcat\bin
2011-4-12 17:51:23 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2011-4-12 17:51:23 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 609 ms
2011-4-12 17:51:23 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2011-4-12 17:51:23 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.13
17:51:26,607 FATAL org.apache.struts2.spring.StrutsSpringObjectFactory:89 - ********** FATAL ERROR STARTING UP STRUTS-SPRING INTEGRATION **********
Looks like the Spring listener was not configured for your web app! 
Nothing will work until WebApplicationContextUtils returns a valid ApplicationContext.
You might need to add the following to web.xml: 
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
17:51:26,633 ERROR org.apache.struts2.dispatcher.Dispatcher:38 - Dispatcher initialization failed
java.lang.NullPointerException
at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:220)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:530)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:501)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:457)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:275)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4340)
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:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
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:566)
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)
2011-4-12 17:51:26 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter struts2
Class: com.opensymphony.xwork2.spring.SpringObjectFactory
File: SpringObjectFactory.java
Method: getClassInstance
Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:428)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4340)
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:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
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:566)
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)
Caused by: java.lang.NullPointerException
at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:220)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:530)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:501)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:457)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:275)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)
... 29 more
2011-4-12 17:51:26 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2011-4-12 17:51:26 org.apache.catalina.core.StandardContext start
严重: Context [/model4] startup failed due to previous errors
2011-4-12 17:51:27 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2011-4-12 17:51:27 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2011-4-12 17:51:27 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/24  config=null
2011-4-12 17:51:27 org.apache.catalina.startup.Catalina start
信息: Server startup in 3567 ms
什么问题啊?我用的myeclipse的tomcat;struts2包里面只有基本的6个jar包。

解决方案 »

  1.   

    You might need to add the following to web.xml: 
      <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
    17:51:26,633 ERROR org.apache.struts2.dispatcher.Dispatcher:38 - Dispatcher initialization failed
    java.lang.NullPointerException
    很明显的问题啊。。
    在你的web.xml文件中添加listener
    <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
      

  2.   

    项目里面不用Spring,也要加那个?
      

  3.   

    检查struts2的struts.xml配置文件中是不是有<constant name="struts.objectFactory" value="spring" />   或者struts.properties中是否有struts.objectFactory=spring  
      

  4.   

    没有
    这个是xml<?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
       
          <filter>
            <filter-name>struts2</filter-name>
          
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>  <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
     
        </web-app>
      

  5.   

    web.xml有问题啊,如果加了监听器,肯定要报错的,你项目里面没有那个包吧
      

  6.   

     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    这个是Struts的filter啊
      

  7.   

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>这个是Struts的filter啊
      

  8.   

    lz说没用spring,但我怀疑lz加了与spring相关的jar包了,lz,把你的jar包贴出来看一下吧
      

  9.   

    楼主。你是用的自动编译么?重新编译次再启动试试。报是报说SPRING配置问题 需要加
    Looks like the Spring listener was not configured for your web app!
    <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      

  10.   

    You might need to add the following to web.xml:  
      <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
    兄弟,spring还没配置正确就,先别整合啦!!
      

  11.   

    Looks like the Spring listener was not configured for your web app!  
    Nothing will work until WebApplicationContextUtils returns a valid ApplicationContext.
    You might need to add the following to web.xml:  
      <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
    然后,将struts-spring-plugin.jar加入到项目的lib目录下,就可以了。struts-spring-plugin.jar中包含有整合所需要的struts-default.xml文件,其中就有<constant name="struts.objectFactory" value="spring" />语句。
      

  12.   


    这个是hibernate的xml,是不是这个有错误?
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- Database connection settings -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost/gxlib2</property>
    <property name="connection.username">root</property>
    <property name="connection.password">6949453</property> <!-- JDBC connection pool (use the built-in) -->
    <!-- <property name="connection.pool_size">1</property>--> <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- Enable Hibernate's automatic session context management -->
    <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache  -->
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">true</property> <property name="format_sql">true</property> <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">update</property>

    <mapping class="cn.gss.gxlib.model.Book"/>
    <mapping class="cn.gss.gxlib.model.RefBook"/>





    </session-factory></hibernate-configuration>
      

  13.   

    我用的是注解:
    ----------------------------------------------------------------------------------
    package cn.gss.gxlib.model;import java.util.Date;
    import java.util.HashSet;
    import java.util.Set;import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.OneToMany;
    import javax.persistence.OneToOne;
    import javax.persistence.Transient;@Entity
    public class Book {
    private int bookId;
    private String bookName;
    private String author;
    private String publisher;
    private Date publishTime;
    private String requestNumber;
    private String bookAddr;
    //
    private int totalcount;
    private int bookCirculateCount;

    //private RefBook refBook ;



    private Set<RefBook> refBooks = new HashSet<RefBook>();
    @OneToMany
    @JoinColumn(name="bookId")
    public Set<RefBook> getRefBooks() {
    return refBooks;
    } public void setRefBooks(Set<RefBook> refBooks) {
    this.refBooks = refBooks;
    } public String getAuthor() {
    return author;
    } public String getBookAddr() {
    return bookAddr;
    } //不映射该属性
    @Transient
    public int getBookCirculateCount() {
    return bookCirculateCount;
    } @Id
    @GeneratedValue
    public int getBookId() {
    return bookId;
    } public String getBookName() {
    return bookName;
    } public String getPublisher() {
    return publisher;
    } public Date getPublishTime() {
    return publishTime;
    }
    public String getRequestNumber() {
    return requestNumber;
    } //不映射该属性
    @Transient
    public int getTotalcount() {
    return totalcount;
    } public void setAuthor(String author) {
    this.author = author;
    } public void setBookAddr(String bookAddr) {
    this.bookAddr = bookAddr;
    } public void setBookCirculateCount(int bookCirculateCount) {
    this.bookCirculateCount = bookCirculateCount;
    } public void setBookId(int bookId) {
    this.bookId = bookId;
    } public void setBookName(String bookName) {
    this.bookName = bookName;
    } public void setPublisher(String publisher) {
    this.publisher = publisher;
    } public void setPublishTime(Date publishTime) {
    this.publishTime = publishTime;
    } public void setRequestNumber(String requestNumber) {
    this.requestNumber = requestNumber;
    } public void setTotalcount(int totalcount) {
    this.totalcount = totalcount;
    }
    }
    ----------------------------------------------------------------------------------
    package cn.gss.gxlib.model;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.ManyToOne;
    import javax.persistence.OneToOne;@Entity
    public class RefBook {
    private int bookSameId;
    private String barCode;
    private String statu; public String getStatu() {
    return statu;
    } public void setStatu(String statu) {
    this.statu = statu;
    } @Id
    @GeneratedValue
    public int getBookSameId() {
    return bookSameId;
    } public void setBookSameId(int bookSameId) {
    this.bookSameId = bookSameId;
    } public String getBarCode() {
    return barCode;
    } public void setBarCode(String barCode) {
    this.barCode = barCode;
    }}
    -------------------------------------------------------------------------------