昨天将一个web项目部署到本地的tomcat,历程很艰辛,各种报错。首先这个项目可以用eclipse内嵌的jetty启动起来,试着用tomcat容器,各种报错。以下是详细步骤:

1、用eclipse打包程序,右键项目--run as--run configurations --maven build--右键新建,如下图

2、打包报错:编码gbk 的不可映射字符

因为我的项目是从svn检出的,有的文件编译格式是gbk,不是utf-8,所以在pom.xml中的maven-compiler-plugin中加入<encoding>utf8</encoding>

<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>utf8</encoding>
</configuration>
</plugin>

3、在项目的target文件夹下有打成功的war包,但是项目的webapp文件夹里的配置文件没有打入包里

打包日志里有一句Copying webapp resources [D:\workspace_armc_app3\armc-asi\WebContent],这应该是将webapp里的配置文件打在了webcontent文件夹,但是查看了下,右键项目--build path--configure build path--Deployment Assembly,已经设置了webapp的文件打到路径"/"下,如图

结果发现pom.xml文件里有<warSourceDirectory>WebContent</warSourceDirectory>,将它注掉了,就好了

<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<!-- <warSourceDirectory>WebContent</warSourceDirectory> -->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>

4、将打好的war包放置在本地tomcat的webapps文件夹里

5、启动tomcat(cmd,进入到apache-tomcat-7.0.82\bin下,执行命令startup.bat,闭关 tomcat用shutdown.bat)

6、访问http://localhost:8080/成功
7、访问http://localhost:8080/项目名失败,提示404,为了在eclipse控制台里好看错误日志,决定在eclipse中设置tomcat

8、此时我修改了一下tomcat访问端口,改为了8081


9、接下来eclipse中配置tomcat,windows--preferences-tomcat

localhost下写配置文件armc-asi.xml

<Context path="/armc-asi" docBase="D:\workspace_armc_app4\armc-asi\src\main\webapp" reloadable="true"> 

        <Resource acquireIncrement="2" auth="Container" description="Oracle 11g Connection Pool"
driverClass="oracle.jdbc.driver.OracleDriver"
factory="org.apache.naming.factory.BeanFactory"
jdbcUrl="jdbc:oracle:thin:@ip:port:service-name" maxPoolSize="10" minPoolSize="2"
password="" type="com.mchange.v2.c3p0.ComboPooledDataSource" user=""/> </Context>

10、右键项目,run on server,警告

警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:armc-asi' did not find a matching property.
解决办法:双击server,勾选publish module contexts...
11、接着报错:找不到类,但是已经引入了jar包,后来发现pom中有的jar包是provided,将其注释掉就可以了,如果有provided,那么jar包是不会打入包里的

<dependency>
<groupId>weblogic</groupId>
<artifactId>wlclient</artifactId>
<version>1.0.0</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wljmsclient</artifactId>
<version>1.0.0</version>
<!-- <scope>provided</scope> -->

12、接着报错:
Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
但是项目已经引入了ojdbc6.jar
原因是没有把ojdbc6.jar放到D:\apache-tomcat-7.0.82\lib下,查了一下tomcat只会查自己lib下的驱动
13、继续报错,双击server,改下时间上限即可,默认是45

14、继续报错
Exception in thread "http-bio-8081-exec-2" Exception in thread "http-bio-8081-exec-1" Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" Exception in thread "http-bio-8081-exec-3"
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=256M"

部署web应用程序到tomcat的更多相关文章

  1. Jboss AS 7 部署web应用程序时无法初始化spring的bean的解决办法

    Jboss AS 7 在部署web应用程序的时候无法初始化spring的bean(在tomcat下边不会出现这个问题) 原因是web应用程序没有导入jboss对spring的支持的jar包 解决方法: ...

  2. 部署WEB应用程序

    部署WEB应用程序: 1.在模板机上新建IIS站点 2.安装WebDeploy后在IIS控制台中导出站点为应用程序包 其站点在新虚机上必须存在,否则会报错,如下: 应用程序(C:\ProgramDat ...

  3. 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目

    原文: 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目 本主题介绍如何在以下产品中使用 一键式发布 发布(部署)Web 应用程序项目: Visual Studio ...

  4. Jenkins进阶-部署Web项目到远程tomcat(7)

    之前讲到的是如何构建一个项目,并且将代码进行编译.打包,那么打包完成最后的结果就需要发布到应用服务器,将项目部署成功.在之前的项目中我们采用的shell脚本来部署,下面讲解通过Jenkins部署web ...

  5. Jenkins部署Web项目到远程tomcat(通过jenkins插件)

    之前讲到的是如何构建一个项目,并且将代码进行编译.打包,那么打包完成最后的结果就需要发布到应用服务器,将项目部署成功.在之前的项目中我们采用的shell脚本来部署,下面讲解通过Jenkins部署web ...

  6. Azure Terraform(三)部署 Web 应用程序

    一,引言 上一节关于 Terraform 的文章讲到 Terraform 使用到的一些语法,以及通过演示使用 Terraform 在Azure 上部署资源组,极大的方便了基础设施实施人员,也提高了基础 ...

  7. Tomcat部署web应用程序

    对Tomcat部署web应用的方式总结,常见的有以下四种: 1.[替换ROOT目录] 最简单的一种方法,webapps目录下面ROOT文件夹的文件为你的文件,然后输入localhost:8080/首页 ...

  8. Apache Tomcat 之路(二 部署web 应用程序)

    1.创建一个webapplication,不论是解压的应用程序包还是war包,在tomcat 上都能部署,这里提供一个简单的web项目:git地址:https://github.com/coderxi ...

  9. Linux Ubuntu从零开始部署web环境及项目 -----tomcat+jdk+mysql (二)

    上一篇介绍如何在linux系统下搭建ssh环境 这篇开始将如何搭建web服务器 1,下载文件 在官网下载好 tomcat.jdk.mysql的linux压缩包 后缀名为.tar.gz 并通过xftp上 ...

随机推荐

  1. MySQL 8 批处理模式

    shell> mysql -h host -u user -p < batch-file 强制执行脚本,即使某些语句参数错误,可以添加 --force 参数 如果MySQL运行在Windo ...

  2. Java泛型(T)与通配符?

    前言:使用泛型的目的是利用Java编译机制,在编译过程中帮我们检测代码中不规范的有可能导致程序错误的代码.例如,我们都知道list容器可以持有任何类型的数据,所以我们可以把String类型和Integ ...

  3. java文件分割及合并

    分割设置好分割数量,根据源文件大小来把数据散到子文件中代码如下; package word; import java.io.File; import java.io.FileInputStream; ...

  4. java通过递归统计文件大小

    思路就是通过文件的遍历,对一个文件夹中的非目录文件进行大小统计,并对其中目录文件进行相同的遍历操作,代码如下: package word; import java.io.File; import ja ...

  5. 如何调试TaskPaper的JavaScript上下文?

    Mac 上的纯文本 GTD 工具TaskPaper for Mac(纯文本任务管理器)是一款适用于Mac操作系统的软件.如何调试TaskPaper的JavaScript上下文?[dl]15-1068[ ...

  6. 积分题1之来自G.Han的一道积分题

    今天,收到G.Han的提问,第一个是计算积分 \[\int_0^{\infty}{\frac{\ln x}{(x^2+1)^n}dx}\]顿时不明觉厉,然后在宝典<Table of Integr ...

  7. Google Waymo自动驾驶安全技术报告(二)

    Waymo的技术在公开道路上.封闭测试场.仿真器进行了广泛的测试,所以可以保证自动驾驶系统的每一部分在其ODD内都有强大.可靠.安全的处理能力. Waymo的自动驾驶系统由三个相互独立.严格测试的子系 ...

  8. BZOJ 3280: 小R的烦恼

    Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要 求小R帮助他一起解决一个难题.问题是这样的,程设老师最近要进行一项邪恶的实 ...

  9. jQuery---弹幕效果

    弹幕效果 <!doctype html> <html> <head> <meta charset="utf-8"> <titl ...

  10. ECMAScript基本对象——function定义函数

    function:函数对象=java方法,java的方法或者函数是,java对象的一部分. JavaScript的函数或者方法,就是一个对象实参:都必须具有确定的值, 以便把这些值传送给形参. 形参: ...