tomcat7中导入war包

环境: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.ContextLoaderListener
org.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 more
Caused by: java.lang.IllegalArgumentException: No attributes are implemented
	at 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,成功!~

在使用Idea发布Tomcat服务时,部署多个war需要进行以下步骤: 1. 将每个war解压到不同的文件夹下,并进入tomcat/bin目录。 2. 启动Tomcat服务,可以通过运行"./startup.sh"命令来启动。 3. 访问服务器地址,端口8080,可以看到Tomcat成功运行的界面。 4. 将每个war分别放置在Tomcat的webapps目录下,可以使用scp命令或者其他工具进行文件传输。 5. 配置Tomcat的路由文件server.xml,以便访问不同的war。 在host标签下添加以下配置: <Context path="/项目1" docBase="项目1路径"/> <Context path="/项目2" docBase="项目2路径"/> 其,path指向该项目需要访问的路由,docBase指向各自项目的路径(注意不要加".war"后缀)。 这样就可以通过访问服务器地址加上对应的路由来访问不同的war了。 当存在多个war相互配合使用时,可以在Idea使用以下步骤导入war: 1. 在Idea的项目结构,右击项目名,选择"Open Module Settings"。 2. 在弹出的窗口,点击左侧的"Artifacts"。 3. 点击窗口右上角的"+"按钮,选择"Web Application: Exploded"。 4. 在弹出的窗口,选择对应的war文件夹,并设置输出路径。 5. 点击"OK"按钮完成导入。 需要注意的是,每个war都需要进行以上的操作,确保它们在Tomcat能够正常运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [IDEA生成两个WAR,部署到tomcat服务器并配置路由](https://blog.csdn.net/sxs_smile/article/details/79108971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Idea使用Tomcat发布多个War服务](https://blog.csdn.net/chice0853/article/details/100598016)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值