我试图用maven运行一个Web应用程序,以智能的方式在tomcat服务器上运行。我得到:工件crm-web:war爆炸:工件部署期间出错。
Loggs:
原因:java.lang.NoClassDefFoundError:org / springframework / web / context / WebApplicationContext原因:java.lang.ClassNotFoundException:org.springframework.web.context.WebApplicationContext SEVERE:异常调用方法createStandardContext SEVERE:异常调用方法manageApp
这是项目结构:
src
-main
-webapp
-js
-pages
-css
-tiles
-WEB-INF
-web.xml
-tiles.xml
-springservlet-servlet.xml
-applicationContext.xml
-pom.xml
pom.xml
<packaging>war</packaging>
<version>1.0</version>
<!-- Shared version number properties -->
<properties>
<org.springframework.version>3.1.0.RELEASE</org.springframework.version>
<TR-CA-VERSION>1.0</TR-CA-VERSION>
<lib_scope>provided</lib_scope>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<profiles>
<profile>
<id>local-dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>unzip-war</id>
<phase>none</phase> <!-- this disables plugin -->
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>production-artifact-compilation</id>
<activation>
<property>
<name>env</name>
<value>production-artifact-compilation</value>
</property>
</activation>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>ru.berkana</groupId>
<artifactId>crm-server</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.1.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Core utilities used by other modules.
Define this if you use Spring Utility APIs (org.springframework.core.*/org.springframework.util.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Expression Language (depends on spring-core)
Define this if you use Spring Expression APIs (org.springframework.expression.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Bean Factory and JavaBeans utilities (depends on spring-core)
Define this if you use Spring Bean APIs (org.springframework.beans.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Aspect Oriented Programming (AOP) Framework (depends on spring-core, spring-beans)
Define this if you use Spring AOP APIs (org.springframework.aop.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Application Context (depends on spring-core, spring-expression, spring-aop, spring-beans)
This is the central artifact for Spring's Dependency Injection Container and is generally always defined
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
<scope>${lib_scope}</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Various Application Context utilities, including EhCache, JavaMail, Quartz, and Freemarker integration
Define this if you need any of these integrations
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Transaction Management Abstraction (depends on spring-core, spring-beans, spring-aop, spring-context)
Define this if you use Spring Transactions or DAO Exception Hierarchy
(org.springframework.transaction.*/org.springframework.dao.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
JDBC Data Access Library (depends on spring-core, spring-beans, spring-context, spring-tx)
Define this if you use Spring's JdbcTemplate API (org.springframework.jdbc.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Object-to-Relation-Mapping (ORM) integration with Hibernate, JPA, and iBatis.
(depends on spring-core, spring-beans, spring-context, spring-tx)
Define this if you need ORM (org.springframework.orm.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Object-to-XML Mapping (OXM) abstraction and integration with JAXB, JiBX, Castor, XStream, and XML Beans.
(depends on spring-core, spring-beans, spring-context)
Define this if you need OXM (org.springframework.oxm.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Web application development utilities applicable to both Servlet and Portlet Environments
(depends on spring-core, spring-beans, spring-context)
Define this if you use Spring MVC, or wish to use Struts, JSF, or another web framework with Spring (org.springframework.web.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<!--
Spring MVC for Servlet Environments (depends on spring-core, spring-beans, spring-context, spring-web)
Define this if you use Spring MVC with a Servlet Container such as Apache Tomcat (org.springframework.web.servlet.*)
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
<scope>${lib_scope}</scope>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
<version>2.4.5</version>
<scope>${lib_scope}</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>unzip-war</id>
<phase>package</phase>
<configuration>
<tasks>
<echo message="unzip phase"/>
<unzip src="${project.build.directory}/${project.build.finalName}.war"
dest="C:/Users/Наталья/IdeaProjects/Berkana/tr-ca-private-cs/common/1/current/web/trca"/>
<delete dir="C:/Users/Наталья/IdeaProjects/Berkana/tr-ca-private-cs/common/1/current/web/trca/css/joined/"/>
<delete dir="C:/Users/Наталья/IdeaProjects/Berkana/tr-ca-private-cs/common/1/current/web/trca/css/notjoined/"/>
<delete dir="C:/Users/Наталья/IdeaProjects/Berkana/tr-ca-private-cs/common/1/current/web/trca/js/joined/"/>
<delete file="C:/Users/Наталья/IdeaProjects/Berkana/tr-ca-private-cs/common/1/current/web/trca/js/jquery-1.7.11.0.js"/>
<delete file="C:/Users/Наталья/IdeaProjects/Berkana/tr-ca-private-cs/common/1/current/web/trca/js/jquery-1.7.1.min1.0.js"/>
<delete file="C:/Users/Наталья/IdeaProjects/Berkana/tr-ca-private-cs/common/1/current/web/trca/js/jquery-1.7.1.js"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>package-with-source-js-css</id>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.3.0</version>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<statistics>true</statistics>
<nosuffix>false</nosuffix>
<failOnWarning>false</failOnWarning>
<gzip>false</gzip>
<suffix>${TR-CA-VERSION}</suffix>
<aggregations>
<aggregation>
<removeIncluded>false</removeIncluded>
<inputDir>src/main/webapp/css/joined</inputDir>
<includes>
<include>**/*.css</include>
</includes>
<output>${project.build.directory}/${project.build.finalName}/css/all.css</output>
</aggregation>
<aggregation>
<removeIncluded>false</removeIncluded>
<inputDir>src/main/webapp/css/joinedNew</inputDir>
<includes>
<include>**/*.css</include>
</includes>
<output>${project.build.directory}/${project.build.finalName}/css/allnew.css</output>
</aggregation>
<aggregation>
<!-- remove files after aggregation (default: false) -->
<removeIncluded>false</removeIncluded>
<inputDir>src/main/webapp/js/joined</inputDir>
<includes>
<include>**/*.js</include>
</includes>
<output>${project.build.directory}/${project.build.finalName}/js/all.js</output>
</aggregation>
</aggregations>
</configuration>
</plugin>
</plugins>
</build>
<pluginRepositories>
<pluginRepository>
<name>oss.sonatype.org - github-releases</name>
<id>oss.sonatype.org-github-releases</id>
<url>http://oss.sonatype.org/content/repositories/github-releases</url>
</pluginRepository>
</pluginRepositories>
<?xml version="1.0" encoding="UTF-8"?>
Tiles.xml
<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<!--Set up your Tiles definition RIGHT HERE-->
<value>/WEB-INF/tiles.xml</value>
</list>
</property>
</bean>
<bean id="messageSource"
class="ru.berkana.crm.util.web.CustomMessageSource">
<property name="basename" value="/WEB-INF/classes/locales/strings_ru_STUDY_CLUB.properties" />
<property name="defaultEncoding" value="UTF-8"/>
</bean>
<bean id="localeResolver"
class="ru.berkana.crm.util.web.CustomLocaleResolver">
</bean>
web.xml
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>ru.berkana.crm.util.web.AllRequestsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>ru.berkana.crm.util.web.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>ru.berkana.crm.util.web.TRCASessionListener</listener-class>
</listener>
<servlet>
<servlet-name>springservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>changepassword</servlet-name>
<servlet-class>ru.berkana.crm.util.web.ChangePasswordServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>login</servlet-name>
<jsp-file>/tiles/login.jsp</jsp-file>
</servlet>
<servlet>
<servlet-name>zadarma</servlet-name>
<servlet-class>ru.berkana.crm.providers.servlets.ZadarmaAPIServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>mango</servlet-name>
<servlet-class>ru.berkana.crm.providers.servlets.MangoAPIServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>robomarket</servlet-name>
<servlet-class>ru.berkana.crm.robomarket.RobomarketAPIServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>robokassa</servlet-name>
<servlet-class>ru.berkana.crm.robomarket.RobokassaAPIServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>push_callback</servlet-name>
<jsp-file>/pages/pushcallback.jsp</jsp-file>
</servlet>
<servlet>
<servlet-name>push_confirm</servlet-name>
<servlet-class>ru.berkana.crm.providers.servlets.PushConfirmServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>push</servlet-name>
<servlet-class>org.atmosphere.cpr.MeteorServlet</servlet-class>
<init-param>
<param-name>org.atmosphere.servlet</param-name>
<param-value>org.springframework.web.servlet.DispatcherServlet</param-value>
</init-param>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.useNative</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.websocket.suppressJSR356</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter>
<filter-name>loginredirection</filter-name>
<filter-class>ru.berkana.crm.security.LoginRedirectionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>loginredirection</filter-name>
<url-pattern>/login</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>changepassword</servlet-name>
<url-pattern>/changePassword.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>zadarma</servlet-name>
<url-pattern>/zadarmaapi.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mango</servlet-name>
<url-pattern>/mangoapi.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mango</servlet-name>
<url-pattern>/mangoapi/*</url-pattern> <!-- mango api test-->
</servlet-mapping>
<servlet-mapping>
<servlet-name>mango</servlet-name>
<url-pattern>/mangoapi/events/call</url-pattern> <!-- mango api test-->
</servlet-mapping>
<servlet-mapping>
<servlet-name>robomarket</servlet-name>
<url-pattern>/robomarketapi.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>push</servlet-name>
<url-pattern>/push.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>push_confirm</servlet-name>
<url-pattern>/pushconfirm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>push_callback</servlet-name>
<url-pattern>/pushcallback.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springservlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>robokassa</servlet-name>
<url-pattern>/robokassa.htm</url-pattern>
</servlet-mapping>
<error-page>
<error-code>500</error-code>
<location>/tiles/error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/tiles/error404.jsp</location>
</error-page>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
我已经完成的工作:
添加了spring-asm-3.1.4.RELEASE.jar
清除缓存
添加到pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.1.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
通过将所有必需的jar移到WEB-INF / lib文件夹,我能够解决此问题。原来他们在不同的目录中
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句