• Eclipse部署Web项目,常用操作和常见错误的解决方案


    部署Web项目到tomcat

    在eclipse中找到Servers项,打开服务器(F3)(建议直接删除服务器,重新建立再设置比较好)
    1、Servers Locations 中选择Use Tomcat installation
    2、Deploy path 改成 webapps
    这时候在eclipse上直接运行项目,就会自动部署到tomcat上,通过浏览器或者eclipse都可以访问该项目。

    Tomcat控制台的用户角色配置

    在Tomcat的Mapper App中,默认没有提供控制台角色。所以需要自己去添加。

    1、找到tomcat目录,进入conf目录,打开tomcat-users.xml 增加两条语句

    <role rolename="manager-gui"/>
    <user password="secret" roles="manager-gui" username="tomcat"/>
    //其中username 和 password请自定义。  

    设置后,重启tomcat服务,登录localhost:8080,即可通过Mapper app来管理部署的web项目。

    解压版ApacheTomcat无法添加tomcat本地服务的问题。【安装版可忽略】

    不开启tomcat本地服务,只能在eclipse中运行web项目,若想通过浏览器访问本地tomcat中webapps的项目,就必须开启tomcat服务。给ApacheTomcat增加一个本地服务,可以让eclipse和本地tomcat同时使用,方便部署。
    注意:eclipse中的服务器端口是默认的,在本地tomcat开启服务的情况下,需要修改端口号,防止冲突。

    tomcat添加服务解决方案。
    首先,保证Java运行环境要配置好,记住JAVA_HOME指向JDK,别指向JRE路径, 不然会出现CATALINA_HOME或Java配置错误。
    之后,在环境变量中,新建三个系统变量,全部指向tomcat目录

    CATALINA_BASE C:Program Files	omcat8
    CATALINA_HOME C:Program Files	omcat8
    TOMCAT_HOME C:Program Files	omcat8

    这时候再按照常规方式,在控制台中添加tomcat服务就可以成功了,然后可以去服务列表查看是否添加成功。

    运行web项目时,常见异常解决【长期更新】

    数据库相关

    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

    分析,出现这种异常的原因是:

    Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将 自动断开该connection。这就 是问题的所在,在C3P0 pools中的connections如果空闲超过8小时,mysql将其断开,而C3P0并不知道 该connection已经失效,如果 这时有Client请求connection,C3P0将该失效的Connection提供给Client,将会造成上面的异常。
    a)解决的方法有3种:
    增加wait_timeout的时间。
    减少Connection pools中connection的lifetime。
    测试Connection pools中connection的有效性。
    b)具体解决方案:
    1、换一下JDBC驱动,JDBC3.1.0-alpha及以前版本会出现此问题,下载新的JDBC驱动
    2、使用hibernate配置:
    使用hibernate:
    <property name=”connection.autoReconnect”>true</property>  <!–这个是最主要的–>
    <property name=”connection.autoReconnectForPools”>true</property>
    <property name=”connection.is-connection-validation-required”>true</property>
    加入以上property,可解决此问题,如果未使用hibernate等持久化管理框架,可在mysql的url中加入
    autoReconnect=true,这样就可以解决。原因很简单。在对数据库操作结束后关闭连接是正确的做法,没什么大问题。
    至于出现:No operations allowed after connection closed。这样的问题原因只有一个,你这里和数据库的连接Connection是一个Static的,程序共享这一个 Connection。所以第一次对数 据库操作没问题,当把Connection关闭后,第二次还想操作数据库时Connection肯定不存在了。
    如果是直接在DAO层方法中开启连接,执行完后关闭连接,获取的Connection不能是静态的, 还有用一 个对象获取的也是会关闭,因 为使用的都是同一个资源。所以要么单独开启事务,执行完后手动关闭。要么就使用线程池,或者用多个对象获取。


    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

      tomcat找不到MYSQL JAR包!必须把mysql-connector-java-5.1.7-bin.jar导入到tomcat的lib目录下面! 在java项目中,只需要引入mysql-connector-java-5.1.7-bin.jar就可以运行java项目。  在web项目中,当Class.forName("om.mysql.jdbc.Driver");时myeclipse是不会去查找字符串,不会去查找驱动的。所以只需要把 mysql-connector-java-5.1.7-bin.jar拷贝到tomcat下lib目录就可以了。

    JSP标签相关

    The absolute uri: [http://mytaglib.com] cannot be resolved in either web.xml or the jar files deployed with this application

      这个原因是因为taglib编译指令找不到uri对应的tld文件(标签库定义文件),是因为tld文件放错目录了,放在WEB-INF下即可访问。 

    自定义标签处理类时,无法继承SimpleTagSupport类

    这个问题是因为Web项目的Apache Tomcat Library没导入,所以找不到该类。

    解决步骤:在Eclipse中,右键点击出问题的Web项目,选择Build Path--->configure Build Path, 点击Add Library--->Server Runtime,选择当前的Tomcat,完成即可。 这时候再看Web项目中,Libraries 已经有Apache Tomcat X.0包了。

  • 相关阅读:
    初入水:vector
    Sort Colors
    Palindrome Partitioning II
    Search for a Range
    Container With Most Water
    Palindrome Partitioning
    Longest Consecutive Sequence
    简单写了一个堆排序
    Best Time to Buy and Sell Stock III
    4-7
  • 原文地址:https://www.cnblogs.com/fwnboke/p/9092475.html
Copyright © 2020-2023  润新知