1. 程式人生 > >idea中配置maven的web專案報錯

idea中配置maven的web專案報錯

報錯資訊:

15-Oct-2018 18:34:29.895 嚴重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:   org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/JOSNTest]]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)     at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1736)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:483)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:432)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466)     at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)     at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)     at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399)     at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:828)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)     at sun.rmi.transport.Transport$1.run(Transport.java:200)     at sun.rmi.transport.Transport$1.run(Transport.java:197)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.Transport.serviceCall(Transport.java:196)     at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$254(TCPTransport.java:683)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/1601533956.run(Unknown Source)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)     at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.catalina.LifecycleException: Failed to start component [

[email protected]]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)     at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4907)     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5042)     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)     ... 43 more Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [
[email protected]
]     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)     at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:724)     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)     ... 46 more Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)     at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:142)     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)     ... 49 more Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)     at java.util.zip.ZipFile.read(Native Method)     at java.util.zip.ZipFile.access$1400(ZipFile.java:61)     at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717)     at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:420)     at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)     at sun.misc.IOUtils.readFully(IOUtils.java:65)     at java.util.jar.JarFile.getBytes(JarFile.java:425)     at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)     at java.util.jar.JarFile.getManifest(JarFile.java:180)     at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140)     ... 50 more

15-Oct-2018 18:34:29.904 嚴重 [RMI TCP Connection(3)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method manageApp  java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/JOSNTest]]     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:758)     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)     at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1736)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:483)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:432)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466)     at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)     at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)     at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399)     at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:828)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)     at sun.rmi.transport.Transport$1.run(Transport.java:200)     at sun.rmi.transport.Transport$1.run(Transport.java:197)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.Transport.serviceCall(Transport.java:196)     at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$254(TCPTransport.java:683)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/1601533956.run(Unknown Source)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)     at java.lang.Thread.run(Thread.java:745)

15-Oct-2018 18:34:29.905 嚴重 [RMI TCP Connection(3)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method createStandardContext  javax.management.RuntimeOperationsException: Exception invoking method manageApp     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:308)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:483)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:432)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466)     at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)     at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)     at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399)     at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:828)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)     at sun.rmi.transport.Transport$1.run(Transport.java:200)     at sun.rmi.transport.Transport$1.run(Transport.java:197)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.Transport.serviceCall(Transport.java:196)     at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$254(TCPTransport.java:683)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/1601533956.run(Unknown Source)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)     at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/JOSNTest]]     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:758)     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)     at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1736)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)     ... 34 more

我的配置:

web.xml,我是註解形式配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    



</web-app>
        

我的pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.qfedu</groupId>
  <artifactId>JSONTest</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>JSONTest Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>



    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.18</version>
    </dependency>


    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.47</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>JSONTest</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.7.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.20.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

出現這個錯誤之後,去網上各種查詢,還是沒有找到錯誤,網上說錯誤的大概是這幾種情況:

①建立專案時出錯:

建立的時候選擇第二個,不應該選擇第一個,而我的確選擇的第二個,還是出錯。

②tomcat和jdk版本問題

我的tomcat是8.5,jdk是1.8,按查詢的說法,應該不存在問題呀,而且我之前那麼多專案都正常運行了。

③web.xml路徑配置問題

我使用的註解的形式配置的,不可能出現配置路徑的問題

④web.xml的標頭檔案配置問題

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

我這個標頭檔案配置,還真沒發現哪裡有問題,我專門從我以前的專案上貼上過來,依舊出問題。

⑤最後還是沒有找到問題,我就去檢視我的jar包是否有問題,我看到一個jstl,我就把jstl註釋瞭然後再執行,結果就能正常運行了。

這次的問題就是jstl匯入的問題,關於如何正確匯入jstl,我將在其它文章中提及。