几天前,我接到了将一个程序员团队(我无法与其联系)部署的应用程序部署到tomcat服务器的任务。
我设法通过sudo mvn tomcat7:deploy
来构建应用程序并将其部署到tomcat服务器,除了它说FAIL - Deployed application at context path /jbExtratools but context failed to start
我通读了pom.xml,试图了解应用程序的配置方式,我看到一些与百里香和spring有关的依赖关系,所以也许我需要使用它们来进行部署?还是安装其他软件包?如您所见,我现在很失落,我已经尝试了很多不同的方法,但是我无法启动应用程序……这是我第一次使用maven,tomcat等。通常与服务器一起使用,因此这可能是非常愚蠢/简单的事情...
我将发布pom.xml,让我知道是否需要其他文件。
在pom中显示“ IP_OF_SERVER”的地方,我有实际的IP地址。 (可以吗?还是应该说localhost?还是一样)
POM.XML:
<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>ma.jb.extratools</groupId>
<artifactId>jbExtratools</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>Extratools</name>
<properties>
<!-- Generic properties -->
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Spring -->
<spring-framework.version>4.3.3.RELEASE</spring-framework.version>
<spring.security.version>4.0.0.RELEASE</spring.security.version>
<spring-data-jpa.version>1.3.0.RELEASE</spring-data-jpa.version>
<!-- Thymeleaf -->
<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
<!-- Java EE / Java SE dependencies -->
<jsp.version>2.2</jsp.version>
<jstl.version>1.2</jstl.version>
<servlet.version>3.1.0</servlet.version>
<javax-el.version>2.2</javax-el.version>
<jaxb-api.version>2.2.7</jaxb-api.version>
<jaxb-impl.version>2.2.7-b53</jaxb-impl.version>
<!-- Hibernate / JPA -->
<hibernate.version>4.1.9.Final</hibernate.version>
<hibernate-jpa.version>1.0.1.Final</hibernate-jpa.version>
<!-- Bean validation -->
<validation.version>1.1.0.Final</validation.version>
<hibernate-validator.version>5.2.4.Final</hibernate-validator.version>
<!-- Database access -->
<commons-dbcp.version>1.4</commons-dbcp.version>
<ehcache.version>2.6.5</ehcache.version>
<hsqldb.version>2.2.9</hsqldb.version>
<!-- AOP -->
<aspectj.version>1.7.2</aspectj.version>
<!-- Logging -->
<logback.version>1.1.8</logback.version>
<log4j.version>2.6.2</log4j.version>
<slf4j.version>1.7.21</slf4j.version>
<!-- Test -->
<junit.version>4.11</junit.version>
<hamcrest.version>1.3</hamcrest.version>
<!-- Dates -->
<jodatime-hibernate.version>1.3</jodatime-hibernate.version>
<jodatime-jsptags.version>1.1.1</jodatime-jsptags.version>
<jodatime.version>2.2</jodatime.version>
<jadira-usertype-core.version>3.1.0.CR1</jadira-usertype-core.version>
<!-- Web dependencies -->
<webjars-bootstrap.version>3.3.7-1</webjars-bootstrap.version>
<webjars-jquery-ui.version>1.12.1</webjars-jquery-ui.version>
<webjars-jquery.version>3.1.1</webjars-jquery.version>
<!-- MYSQL dependencies -->
<mysql.version>5.1.31</mysql.version>
<!-- Codec -->
<codec.version>1.10</codec.version>
<!-- Jackson JSON Mapper -->
<jackson.version>1.9.13</jackson.version>
<jetty.maven.plugin-version>9.3.11.v20160721</jetty.maven.plugin-version>
</properties>
<!-- all Maven plugin versions are mentioned in order to guarantee the build
reproducibility in the long term -->
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http:/ IP_OF_SERVER :8080/manager/text</url>
<server>tomcatserver</server>
<path>/jbExtratools</path>
<username>manager</username>
<password>manager</password>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<systemProperties>
<JAVA_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=512m</JAVA_OPTS>
</systemProperties>
</configuration>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.2.v20120308</version>
<configuration>
<webAppConfig>
<contextPath>/jbExtratools</contextPath>
</webAppConfig>
<scanIntervalSeconds>1</scanIntervalSeconds>
<stopKey>stop-jetty</stopKey>
<stopPort>9999</stopPort>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>enforce</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2.4,)</versionRange>
<goals>
<goal>unpack</goal>
<goal>sources</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>build-dist</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-assembly-dist</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${basedir}/src/assembly/sources.xml</descriptor>
</descriptors>
<appendAssemblyId>true</appendAssemblyId>
<finalName>${project.groupId}-${project.artifactId}-${project.version}</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
编辑:
检查了catalina.log文件,发现了一些错误。还从pom.xml
中删除了依赖项27-Jul-2018 13:39:00.031 INFO [http-nio-8080-exec-23] org.apache.catalina.util.LifecycleBase.stop The stop() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/jbExtratools]] after stop() h$
27-Jul-2018 13:39:00.565 INFO [http-nio-8080-exec-23] org.apache.catalina.startup.HostConfig.undeploy Undeploying context [/jbExtratools]
27-Jul-2018 13:39:42.140 INFO [http-nio-8080-exec-24] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /opt/tomcat/webapps/jbExtratools.war
27-Jul-2018 13:39:50.505 INFO [http-nio-8080-exec-24] 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 $
27-Jul-2018 13:39:50.524 SEVERE [http-nio-8080-exec-24] org.apache.catalina.core.StandardContext.startInternal Error during ServletContainerInitializer processing
javax.servlet.ServletException: Failed to instantiate WebApplicationInitializer class
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:158)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5352)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:755)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:731)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:973)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:501)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1645)
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:498)
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.manager.ManagerServlet.check(ManagerServlet.java:1461)
at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:734)
at org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:433)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:651)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:604)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1152)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.accessibleConstructor(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:155)
... 44 more
27-Jul-2018 13:39:50.542 SEVERE [http-nio-8080-exec-24] org.apache.catalina.core.StandardContext.startInternal Context [/jbExtratools] startup failed due to previous errors
27-Jul-2018 13:39:50.561 INFO [http-nio-8080-exec-24] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /opt/tomcat/webapps/jbExtratools.war has finished in 8,421 ms