zoukankan      html  css  js  c++  java
  • The web application [/zzti] registered the JDBC driver [com.microsoft.sqlserver.jdbc.SQLServerDriver

    先说下题目:因为是在我进行处理项目升级时同时遇到了上面的问题,一般都会遇到,所以就一并说了

    不罗嗦了,正题:

    在本地服务器中提供tomcat6,然后在myeclipse中配置severs tomcat,将本地tomcat6添加

    如果你的web页面里面的EL表达式使用了#{}表达式,或者配置了severlet依赖的jstl版本,升级会遇到问题的原因为:tomcat5和tomcat6使用的jsp/severlet规范不同

    Tomcat6   JSP2.1 / Servlet2.5 / JSTL2.0

    Tomcat5   JSP2.0 / Servlet2.4 / JSTL1.1

    Tomcat4   JSP1.2 / Servlet2.3 / JSTL1.0

    在JSP2.1以前,JSP编译器并不解析#{}表达式(不是保留的表达式),因为在之前的JSP中,EL表达式是${}来表示的;正因为#{}不是JSP保留的表达式,所以在JSP中,EL表达式采用了#{}表示的;同时,在Struts2中,OGNL(Object-Graph Navigation Language,一种功能强大的表达式语言)也是用#{}表示的;  
    然而,在JSP2.1规范中,SUN为了统一JSP的EL表达式语法,将#{}作为了JSP的保留的表达式(SUN号称在纯jsp中也能够直接引用JSF的managedBean),也就是说,采用JSP2.1规范的服务器会自动编译#{}表达式,所以EL表达式不能再使用#{}表达式

    问题已经知道了,接下来解决之:

    1、将web-inf下lib中的jstl外部jar包进行替换:JSTL1.2(jstl-1.2.jar)替换JSTL1.1(standard-1.1.jar和jstl-1.1.jar)

    2、web.xml必须指定使用servlet 2.5 和JSP2.1的规范:
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd">

    这里注意一下:tomcat版本是可以向下兼容servlet规范和jsp规范的,例如上面的,如果项目中没有用到tomcat6对应的servlet2.5规范和jsp2.1规范,可以还是用servlet2.4和jsp2.0规范(针对xml文件的配置)

    3、此步的解决方法有多种:

    第一:在web.xml文件中添加

     <jsp-property-group>
      <deferred-syntax-allowed-as-literal>
       true
      </deferred-syntax-allowed-as-literal>
     </jsp-property-group>

    第二:在jsp页面中添加<%@ page contentType="text/html; charset=UTF-8" deferredSyntaxAllowedAsLiteral="true"%> 

    以上两种方式我都试过了,没起作用,

    我采用第三种:将#{。。。。}更改为#{。。。。}

    还有第四种方法:将页面中所用使用的#{}表达式换掉,

    ps:当你选择tomcat6时还可能遇到一个问题,那就是控制台

    严重: The web application [/codeMarket] registered the JBDC driver[.........]   but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

    如果你报错了上面的这个严重,那么你的tomcat版本一定是在6.0.25之上的

    原因:tomcat 6.025以后在sever.xml中引入了内存泄露侦测,对于垃圾回收不能处理的对像,它就会做日志。

    解决办法:

    1、tomcat版本换为6.0.25之下的

    2、在tomcat的server.xml文件中,把
    <!-- Prevent memory leaks due to use of particular java/javax APIs-->
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>这个监听给关了,对项目有没有影响,如果没有关闭监听前没有报此类异常,则关闭监听没有影响,如果关闭监听前有相关异常抛出,那么影响就相当于没有痛觉的人,生病了也不知道,网上并没有治本的方法,因为治本的方法是把你的内存泄露问题处理好

    解决了  吧mysql-connection-java.jar放在tomcat的lib就可以了

  • 相关阅读:
    Hadoop学习:Map/Reduce初探与小Demo实现
    OCR OneNote
    百度OCR识别示例
    Sqlserver 中添加数据库登陆账号并授予数据库所有者权限
    IIs 中运行asp程序出现“An error occurred on the server when processing the URL. Please contact the system administrator.”错误
    SqlServer 删除重复记录
    Chrome 制作绿色便携版
    Asp.net 在网页编写C#代码示例-- 一个简单的web MsSql 命令执行环境
    C# 中如何将List<string>里的集合转换成字符串并按指定的字符进行分隔?
    使用SQL SERVER FOR XML PATH将多个结果集转换成一行并进行去重处理
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/4276727.html
Copyright © 2011-2022 走看看