tomcat7中导入war包

来源:互联网 发布:系统优化对比报告 编辑:程序博客网 时间:2024/05/22 03:18

环境:jdk1.7,myeclipse 10, ubuntu12.04

1.在ubuntu 12.04下安装tomcat的方法我是参照的这篇文章(用的其中的apt-get install方法):ubuntu12.04安装tomcat7

2.安装好tomcat后,终端下运行命令:

sudo /etc/init.d/tomcat7 restart
可是tomcat开启失败,查看tomcat的log文件,路径为:

/var/log/tomcat7
看到报错为8080端口被占用。此时有两中方法解决这个问题:

    一:修改server.xml文件,用其他端口,server.xml文件的路径为:

/etc/tomcat7/server.xml
讲其中的8080端口修改为其他未被占用的端口号即可。

   二:查看正在占用8080端口的进程,然后杀掉:

netstat -a -n | grep "8080"   #要看到进程id可能需要root权限kill -9 11902     #11902为正在占用8080端口的进程id
然后再重启tomcat即可。

3.然后我将java web工程从myeclipse中导出SGU.war包,放入tomcat的webapp目录下,本机的目录是

/var/lib/tomcat7/webapps
再重启tomcat来deploy这个war工程。然后打开web工程的首页出现404错误。

查看tomcat的log文件发现报如下错误:

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanDefinitionStoreException: Parser configuration exception parsing XML from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is javax.xml.parsers.ParserConfigurationException: Unable to validate using XSD: Your JAXP provider [org.apache.xerces.jaxp.DocumentBuilderFactoryImpl@32503873] does not support XML Schema. Are you running on Java 1.4 with Apache Crimson? Upgrade to Apache Xerces (or Java 1.5) for full XSD support.at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:397)at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:327)at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:295)at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:97)at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:411)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:338)at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)at java.util.concurrent.FutureTask.run(FutureTask.java:262)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:744)Caused by: javax.xml.parsers.ParserConfigurationException: Unable to validate using XSD: Your JAXP provider [org.apache.xerces.jaxp.DocumentBuilderFactoryImpl@32503873] does not support XML Schema. Are you running on Java 1.4 with Apache Crimson? Upgrade to Apache Xerces (or Java 1.5) for full XSD support.at org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:102)at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:70)at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:381)... 26 moreCaused by: java.lang.IllegalArgumentException: No attributes are implementedat org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:98)at org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:99)... 28 more三月 20, 2014 10:45:34 上午 org.apache.catalina.core.StandardContext startInternal严重: Error listenerStart三月 20, 2014 10:45:34 上午 org.apache.catalina.core.StandardContext startInternal严重: Context [/SGU] startup failed due to previous errors

google后发现是项目中xerces包太旧的问题。在项目工程根目录下输入如下命令搜索:
find . -name xerces*.jar
我的项目的xerces包为xerces-1.2.3.jar,从网上下载了一个xerces_2_6_2.jar包,然后将其替换掉了。

接着在myeclipse中clean工程,然后重新export出war文件,放入tomcat的webapps目录下,重启tomcat,在浏览器中输入项目工程的页面url,成功!~

2 0