maven环境下jetty插件启动不报错. tomcat启动报错

atearsan 发布于 2012/05/05 17:14
阅读 4K+
收藏 2

这两天跑一个maven项目的时候,在pom里配置jetty可以跑。但是配置tomcat (tomcat-maven-plugin插件)不行。如果把项目install成一个war包放到tomcat/webapps下面可以跑。

pom配置:

<build>
	<finalName>com.abcd</finalName>
	<resources>
		<resource>
			<directory>${project.basedir}/src/main/resources</directory>
			<filtering>true</filtering>
		</resource>
		<!-- 
		<resource>
			<directory>${basedir}/src/main/java</directory>
			<includes>
				<include>**/*.xml</include>
			</includes>
		</resource>
		<resource>
			<directory>${basedir}src/main/resources</directory>
			<includes>
				<include>**/*.*</include>
			</includes>
		</resource>
		-->
	</resources>
	<!-- 
	<testResources>
		<testResource>
			<directory>${project.basedir}/src/test/resources</directory>
			<filtering>true</filtering>
		</testResource>
	</testResources>
	 -->
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>2.3.2</version>
			<configuration>
				<source>1.6</source>
				<target>1.6</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
		
		<!-- 
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-plugin</artifactId>
			<version>2.5</version>
			<configuration>
				<skipTests>true</skipTests>
			</configuration>
		</plugin>
		-->
		<!--  -->
		<plugin>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>maven-jetty-plugin</artifactId>
			<version>6.1.25</version>
			<configuration> 
				<contextPath>/com.7lvshi</contextPath>
				<classesDirectory>target/classes</classesDirectory>
				<scanIntervalSeconds>1</scanIntervalSeconds>
				<webAppSourceDirectory>${project.basedir}/src/main/webapp</webAppSourceDirectory>
				<webXml>${project.basedir}/src/main/webapp/WEB-INF/web.xml</webXml>
				<connectors>
					<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
						<port>80</port>
					</connector>
				</connectors>
				<stopPorl>9966</stopPorl>
				<stopKey>foo</stopKey>
			</configuration>
			<dependencies>
				<dependency>
					<groupId>org.mortbay.jetty</groupId>
					<artifactId>jetty-ajp</artifactId>
					<version>6.1.25</version>
				</dependency>
			</dependencies>
		</plugin>
		<!-- 
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>tomcat-maven-plugin</artifactId>
			<version>1.1</version>
			<executions>
				<execution>
					<id>tomcat-deploy</id>
					<phase>deploy</phase>
					<goals>
						<goal>deploy</goal>
					</goals>
				</execution>
			</executions>
			<configuration>
				<path>/com.7lvshi</path>
				<port>8090</port>
				<warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
				<tomcatWebXml>${basedir}/src/main/webapp/WEB-INF/web.xml</tomcatWebXml>
			</configuration>
		</plugin> -->
		<!-- 
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>2.3.2</version>
		</plugin> -->
	</plugins>
</build>

web.xml配置:(tomcat对web.xml里面元素的顺序还有要求? 以前context-param不是配置在最上面, tomcat老报错说有重复的context-param配置 - -. 后来调整下就没报这个错了. 顺便分享个文章 tomcat中web.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">
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<!-- <param-value>classpath*:service/application-*.xml</param-value> -->
		<param-value>classpath:service/application-*.xml</param-value>
	</context-param>
	<filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- 
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>
	 -->
	
	<servlet>
		<servlet-name>dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:web/web-servlet-*.xml</param-value>
<!-- 			<param-value>classpath*:web/web-servlet-*.xml</param-value> -->
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcher</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>/WEB-INF/views/index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

  报错信息:

 Java HotSpot(TM) Client VM warning: MaxNewSize (524288k) is equal to or greater than the entire heap (524288k).  A new generation size of 524224k will be used.

[INFO] Scanning for projects...

[INFO]                                                                         

[INFO] ------------------------------------------------------------------------

[INFO] Building com.abcd Maven Webapp 0.0.1-SNAPSHOT

[INFO] ------------------------------------------------------------------------

[INFO] 

[INFO] >>> tomcat-maven-plugin:1.1:run (default-cli) @ com.abcd >>>

[INFO] 

[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ com.abcd ---

[INFO] Using 'UTF-8' encoding to copy filtered resources.

[INFO] Copying 10 resources

[INFO] 

[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ com.abcd ---

[INFO] Nothing to compile - all classes are up to date

[INFO] 

[INFO] <<< tomcat-maven-plugin:1.1:run (default-cli) @ com.abcd <<<

[INFO] 

[INFO] --- tomcat-maven-plugin:1.1:run (default-cli) @ com.abcd ---

[INFO] Running war on http://localhost:8090/com.abcd

[INFO] Creating Tomcat server configuration at D:\workspace\Uhan\com.abcd\target\tomcat

2012-5-5 17:06:35 org.apache.catalina.startup.Embedded start

信息: Starting tomcat server

2012-5-5 17:06:35 org.apache.catalina.core.StandardEngine start

信息: Starting Servlet Engine: Apache Tomcat/6.0.29

2012-5-5 17:06:35 org.apache.tomcat.util.digester.Digester endElement

严重: End event threw exception

java.lang.reflect.InvocationTargetException

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.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:959)

at org.apache.tomcat.util.digester.CallMethodRule.end(CallMethodRule.java:579)

at org.apache.tomcat.util.digester.Rule.end(Rule.java:229)

at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1138)

at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)

at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)

at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)

at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)

at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)

at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)

at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)

at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:365)

at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1076)

at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4540)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)

at org.apache.catalina.startup.Embedded.start(Embedded.java:825)

at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)

at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)

at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:140)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)

at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)

at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:316)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)

at org.apache.maven.cli.MavenCli.execute(MavenCli.java:451)

at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:188)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:134)

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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)

at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)

at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

Caused by: java.lang.IllegalArgumentException: Duplicate context initialization parameter contextConfigLocation

at org.apache.catalina.core.StandardContext.addParameter(StandardContext.java:2593)

... 52 more

2012-5-5 17:06:35 org.apache.catalina.startup.ContextConfig applicationWebConfig

严重: Parse error in application web.xml file at jndi:/localhost/com.abcd/WEB-INF/web.xml

java.lang.IllegalArgumentException: Duplicate context initialization parameter contextConfigLocation

at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2806)

at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2832)

at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1141)

at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)

at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)

at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)

at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)

at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)

at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)

at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)

at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:365)

at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1076)

at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4540)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)

at org.apache.catalina.startup.Embedded.start(Embedded.java:825)

at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)

at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)

at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:140)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)

at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)

at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:316)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)

at org.apache.maven.cli.MavenCli.execute(MavenCli.java:451)

at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:188)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:134)

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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)

at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)

at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

Caused by: java.lang.IllegalArgumentException: Duplicate context initialization parameter contextConfigLocation

at org.apache.catalina.core.StandardContext.addParameter(StandardContext.java:2593)

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.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:959)

at org.apache.tomcat.util.digester.CallMethodRule.end(CallMethodRule.java:579)

at org.apache.tomcat.util.digester.Rule.end(Rule.java:229)

at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1138)

... 44 more

2012-5-5 17:06:35 org.apache.catalina.startup.ContextConfig applicationWebConfig

严重: Occurred at line 10 column 18

2012-5-5 17:06:35 org.apache.catalina.startup.ContextConfig start

严重: Marking this application unavailable due to previous error(s)

2012-5-5 17:06:35 org.apache.catalina.core.StandardContext start

严重: Error getConfigured

2012-5-5 17:06:35 org.apache.catalina.core.StandardContext start

严重: Context [/com.abcd] startup failed due to previous errors

2012-5-5 17:06:35 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc

严重: The web application [/com.abcd] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.


如果是在pom.xml里改成jetty启动没问题.tomcat就这样. 

求解啊...(红色加粗那个地方看不懂 - -)

------------------------------------------

jetty跑项目也无所谓. 但是发现tomcat好像可以改了js/css后直接刷新页面就可以. jetty不支持?(求解)...

tomcat这个问题弄了好久. 纠结啊- -

加载中
0
atearsan
atearsan

// jetty不能修改静态文件解决方案

在web.xml中插入这段代码

 	<servlet>
		<servlet-name>default</servlet-name>
		<servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class>
		<init-param>
			<param-name>useFileMappedBuffer</param-name>
			<param-value>false</param-value>
		</init-param>
		<load-on-startup>0</load-on-startup>
	</servlet>

0
atearsan
atearsan
唉. 沉了
0
岳静
岳静

引用来自“atearsan”的答案

唉. 沉了
啥意思
返回顶部
顶部