我正在Tomcat 8、IntelliJ IDEA 14上部署一个Spring网络应用。但是,部署失败,出现以下错误日志。
""C:\Program Files (x86)\apache-tomcat-8.0.22\bin\catalina.bat" run
[2015-05-20 08:19:25,312] Artifact bookmanager:war exploded: Server is not connected. Deploy is not available.
Using CATALINA_BASE: "C:\Users\svetlana\.IntelliJIdea14\system\tomcat\Tomcat_8_0_22_bookmanager"
Using CATALINA_HOME: "C:\Program Files (x86)\apache-tomcat-8.0.22"
Using CATALINA_TMPDIR: "C:\Program Files (x86)\apache-tomcat-8.0.22\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_05"
Using CLASSPATH: "C:\Program Files (x86)\apache-tomcat-8.0.22\bin\bootstrap.jar;C:\Program Files (x86)\apache-tomcat-8.0.22\bin\tomcat-juli.jar"
20-May-2015 20:19:26.942 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.0.22
20-May-2015 20:19:26.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 29 2015 11:46:15 UTC
20-May-2015 20:19:26.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.0.22.0
20-May-2015 20:19:26.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 8
20-May-2015 20:19:26.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 6.2
20-May-2015 20:19:26.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
20-May-2015 20:19:26.945 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk1.8.0_05\jre
20-May-2015 20:19:26.946 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_05-b13
20-May-2015 20:19:26.947 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
20-May-2015 20:19:26.947 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\svetlana\.IntelliJIdea14\system\tomcat\Tomcat_8_0_22_bookmanager
20-May-2015 20:19:26.947 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files (x86)\apache-tomcat-8.0.22
20-May-2015 20:19:26.948 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
20-May-2015 20:19:26.948 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
20-May-2015 20:19:26.948 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
20-May-2015 20:19:26.948 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
20-May-2015 20:19:26.948 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
20-May-2015 20:19:26.948 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\svetlana\.IntelliJIdea14\system\tomcat\Tomcat_8_0_22_bookmanager\conf\logging.properties
20-May-2015 20:19:26.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
20-May-2015 20:19:26.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=C:\Program Files (x86)\apache-tomcat-8.0.22\endorsed
20-May-2015 20:19:26.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\svetlana\.IntelliJIdea14\system\tomcat\Tomcat_8_0_22_bookmanager
20-May-2015 20:19:26.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\Program Files (x86)\apache-tomcat-8.0.22
20-May-2015 20:19:26.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\Program Files (x86)\apache-tomcat-8.0.22\temp
20-May-2015 20:19:26.949 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.5.1.
20-May-2015 20:19:26.950 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
20-May-2015 20:19:28.021 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.0.1m 19 Mar 2015)
20-May-2015 20:19:28.201 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"]
20-May-2015 20:19:28.216 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-apr-8009"]
20-May-2015 20:19:28.218 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 2202 ms
20-May-2015 20:19:28.274 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
20-May-2015 20:19:28.274 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.22
20-May-2015 20:19:28.286 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
20-May-2015 20:19:28.308 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
20-May-2015 20:19:28.309 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 91 ms
Connected to server
[2015-05-20 08:19:28,372] Artifact bookmanager:war exploded: Artifact is being deployed, please wait...
20-May-2015 20:19:31.035 INFO [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
20-May-2015 20:19:31.151 INFO [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Root WebApplicationContext: initialization started
20-May-2015 20:19:31.343 INFO [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.prepareRefresh Refreshing Root WebApplicationContext: startup date [Wed May 20 20:19:31 EEST 2015]; root of context hierarchy
20-May-2015 20:19:31.403 INFO [RMI TCP Connection(3)-127.0.0.1] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions Loading XML bean definitions from ServletContext resource [/WEB-INF/application-context.xml]
20-May-2015 20:19:31.523 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Context initialization failed
...
Caused by: org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 110; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:property-placeholder'.
20-May-2015 20:19:31.530 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
...
20-May-2015 20:19:31.532 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
20-May-2015 20:19:31.536 INFO [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.doClose Closing Root WebApplicationContext: startup date [Wed May 20 20:19:31 EEST 2015]; root of context hierarchy
20-May-2015 20:19:31.537 WARNING [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.doClose Exception thrown from ApplicationListener handling ContextClosedEvent
...
Caused by: org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 110; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:property-placeholder'.
...
20-May-2015 20:19:31.649 WARNING [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.doClose Exception thrown from LifecycleProcessor on context close
java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Wed May 20 20:19:31 EEST 2015]; root of context hierarchy
...
[2015-05-20 08:19:31,935] Artifact bookmanager:war exploded: Error during artifact deployment. See server log for details.
...
20-May-2015 20:19:38.284 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory C:\Program Files (x86)\apache-tomcat-8.0.22\webapps\manager
20-May-2015 20:19:38.359 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory C:\Program Files (x86)\apache-tomcat-8.0.22\webapps\manager has finished in 74 ms
这里是WEB-INF应用程序上下文.xml:
<context:property-placeholder location="classpath:jdbc.properties" system-properties-mode="ENVIRONMENT"/>
<context:component-scan base-package="com.svetlana.bookmanager.repository"/>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.databaseurl}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">${jdbc.dialect}</prop>
<prop key="hibernate.connection.charSet">UTF-8</prop>
</props>
</property>
</bean>
外部图书馆(想法项目)
< 1.8 >
Maven: antlr:antlr:2.7.6
Maven: aopalliance:aopalliance:1.0
Maven: asm:asm:1.5.3
Maven: asm:asm-attrs:1.5.3
Maven: cglib:cglib:2.1_3
Maven: commons-collections:commons-collections:3.1
Maven: commons-logging:commons-logging:1.1.3
Maven: dom4j:dom4j:1.6.1
Maven: javax.persistence:persistence-api:1.0
Maven: javax.servlet.jsp:jsp-api:2.1
Maven: javax.servlet:javax.servlet-api:3.1.0
Maven: javax.transaction:jta:1.1
Maven: jstl:jstl:1.2
Maven: junit:junit:4.11
Maven: mysql:mysql-connector-java:5.1.34
Maven: net.sf.ehcache:ehcache:1.2.3
Maven: org.hamcrest:hamcrest-core:1.3
Maven: org.hibernate:ejb3-persistence:1.0.1.GA
Maven: org.hibernate:hibernate:3.2.6.ga
Maven: org.hibernate:hibernate-annotations:3.3.1.GA
Maven: org.hibernate:hibernate-commons-annotations:3.3.0.ga
Maven: org.hibernate:hibernate-core:3.3.2.GA
Maven: org.slf4j:slf4j-api:1.5.8
Maven: org.springframework:spring-aop:4.1.1.RELEASE
Maven: org.springframework:spring-beans:4.1.1.RELEASE
Maven: org.springframework:spring-context:4.1.1.RELEASE
Maven: org.springframework:spring-core:4.1.1.RELEASE
Maven: org.springframework:spring-expression:4.1.1.RELEASE
Maven: org.springframework:spring-jdbc:4.1.1.RELEASE
Maven: org.springframework:spring-orm:4.1.1.RELEASE
Maven: org.springframework:spring-test:4.1.1.RELEASE
Maven: org.springframework:spring-tx:4.1.1.RELEASE
Maven: org.springframework:spring-web:4.1.1.RELEASE
Maven: org.springframework:spring-webmvc:4.1.1.RELEASE
Maven: xml-apis:xml-apis:1.0.b2
我想问题出在JAR的旧版本和指定版本之间的差异。我从视频课上做了这个项目,使用的旧版本比我的电脑上多,但不知道如何检查。
问题出在application-context.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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
然后我又改了一下,增加了context -declarations:
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache.xsd ">