昨天将一个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"

最新文章

  1. iOS - 分析JSON、XML的区别和解析方式的底层是如何实现的(延伸实现原理)
  2. [Erlang 0116] 当我们谈论Erlang Maps时,我们谈论什么 Part 1
  3. vim 学习积累(一)
  4. LeetCode —— Merge k Sorted Lists
  5. hdu 4412 2012杭州赛区网络赛 期望
  6. Oracle等待事件db file parallel read
  7. namenode需要升级
  8. C++ 面向对象的三个特点--继承与封装(一)
  9. 在Java中&gt;、&gt;&gt;、&gt;&gt;&gt;三者的区别
  10. 5.PHP内核探索:多进程/线程的SAPI生命周期
  11. 有序列表和无序列表、流、格式布局:position
  12. POJ 2010
  13. 使用google map v3 api 开发地图服务
  14. Python第一天——初识Python
  15. 转:Oracle EBS FND User Info API
  16. you can Solve a Geometry Problem too(hdoj1086)
  17. 用U盘装win7/XP系统的操作
  18. PHP 操作redis 详细讲解转的
  19. 【iOS】swift 74个Swift标准库函数
  20. Loader转换器

热门文章

  1. MY_0002:导出单位设置
  2. C# WPF Bing地图展示
  3. ng-辅助操作
  4. 如何通过 SSH/Telnet 用 root 权限登录群晖
  5. 正确安装Windows server 2012 r2的方法
  6. Java(一)环境的安装与配置
  7. npm常用模块之mkdirp使用
  8. gulp常用插件之http-proxy-middleware使用
  9. springboot的yml配置文件里有多个参数的调用方式
  10. ntoskrnl.exe导致蓝屏解决方法