`
voff12
  • 浏览: 96492 次
  • 来自: 北京
社区版块
存档分类
最新评论

在tomcat下用hibernate的尝试

阅读更多
用Test.java类成功测试了hibernate的使有。但在tomcat下却失败了。看来这个入门还挺复杂的。
引用

JNDI的原理我原来也比较糊涂,后来是把Sun网站的JNDI的指南下载下来,一点点啃完以后就搞清楚了。JNDI通俗来说就是一个命名和查找资源的机制,把App Server中的所有资源对象进行统一的编号,并且把这些编号放在一个树装结构中,这样你要找什么资源,就按照编号去找这颗树就行了,就可以在相应的位置找到这个编号对应的“对象”(其实就是映射)。就好像我们每个人作为一个实体,都有一个姓名来映射。而每个App Server中的资源(这些资源包括数据库连接池对象,EJB对象等等)都有一个JNDI名字来映射。而所有的这些JNDI名字和他们对应的这些对象就统称Context。而这种映射和查找机制就叫做JNDI(Java Naming and Directory Interface)。


tomcat的运行原理;
Tomcat是一个带有jsp环境的servlet容器.servlet容器是一个根据用户的行为可以管理和激活servlet的运行时的shell. 
  
  粗略地可以将servlet容器分为如下几类: 
  
  独立的servlet容器 
  
  内置有web服务器的一部分.指当使用基于Java的web服务器的情形,例如servlet容器是JavaWebServer的一个部分. 独立的servlet容器是Tomcat的默认模式. 
  
  大多数的web服务器并非基于Java,因此,我们可以得出如下两种容器的模式. 
  
  进程内的servlet容器 
  
  servlet容器作为web服务器的插件和Java容器的实现.Web服务器插件在内部地址空间打开一个JVM(java virtual machine)使Java容器得以在内部运行.如有某个需要调用servlet的请求,,插件将取得对此请求的控制并将他传递(使用JNI)给Java容器.进程内容器对于多线程,单进程的服务器非常合适并且提供很好的运行速度,但伸缩性有所不足. 
  
  进程外的servlet容器 
  
  servlet容器运行于web服务器之外的地址空间且作为web服务器的插件和Java容器的实现的结合.web服务器插件和Java容器 JVM使用IPC机制(通常是TCP/IP)进行通讯.当一个调用servlet的请求到达时,插件将取得对此请求的控制并将其传递(使用IPC等)给Java容器,进程外容器的反应时间或进程外容器引擎不如进程内容器,但进程外容器引擎在许多其他可比的范围内更好(伸缩性,稳定性等). 
  
  Tomcat既可作为独立的容器(主要是用于开发与调试)又可作为对现有服务器的附加(当前支持Apache,IIS和Netscape服务器).即任何时候配置Tomcat你都必须决定如何应用他,如选择第二或第三种模式,你还需要安装一个web服务器接口
分享到:
评论
6 楼 snowspice 2008-04-03  
[i][/i][b][/b][img][/img]
引用
  • [i][/i][/b][b][/b][b]
[url][/url][flash=200,200][/flash]
      
5 楼 voff12 2007-01-14  
http://www.x2blog.cn/ljj3336/
讲解得不错。有时间一定要好好调试一下。
4 楼 voff12 2007-01-14  
hibernate用tomcat的ds需要额外的配置,因为tomcat的ds是用的jakarta的dbcp套壳的。你为啥不用jboss呢?
3 楼 voff12 2007-01-14  
hibernate 有通过jdbc driver 和jndi 两个种方式连接数据库我只不过是使用jndi连接数据库遇到问题
2 楼 voff12 2007-01-14  
tomcat服务器是一种Servlet/jsp容器,更实质性的说是Servlet容器,因为jsp最终还是被编译成servlet来执行的。而对于servlet来说,其最长见的用途是扩展java web服务器功能,为来自web客户的请求提供服务。它完全运行在java虚拟机上。由于它的运行在服务器端,因此他的运行不依赖于浏览器。

tomcat作为servlet容器,负责处理客户请求,把请求传给servlet并把结果返回给客户。servlet容器与servlet之间的接口是由java servlet api定义的,在此api中定义了servlet的各种方法,这些方法在servlet生命周期的不容阶段被servlet容器调用,servlet api还定义了servlet容器传递给servlet的对象类,如请求对象ServletRequest和相应对象ServletResponse

tomcat服务器是由一系列可配置的组件构成,其中核心组件是Catalina Servlet容器,它是所有其他tomcat组件的顶层容器。tomcat的组件可以在conf/server.xml文件当中进行配置,每个tomcat组件在server.xml文件中进行配置,每个tomcat组件在server.xml文件中对应一种配置元素。具体见下:
<server>
<service>

<Connector>
</Connector>

<Engine>
<Host>
<Context></Context>
</Host>
</Engine>

</service>
</server>

1.顶层类元素:
<Server>和<Service>,他们位于整个配置文件的顶层
<Server>元素代表整个Catalina Servlet容器,它是tomcat实例的顶层元素。<Server>元素当中可包含一个或多个<service>元素。
<service>元素中包含一个<Engine>元素,以及一个或多个<Connector>元素,这些<Connector>元素共享同一个<Engine>元素

2.连接器类元素:
connector,它代表了介于客户与服务器之间的通信接口,负责将客户的请求发送给服务器,并将服务器的相应结果传递给客户。
3.容器类元素
<Engine>,<Host>和<context〉
其中<Engine>组件处理在同一个<service>中所有<Connector>元素接受到的客户请求
<Host>组件为特定的虚拟机处理所有客户请求。每个<Host>元素定义了一个虚拟主机,它可以包含一个或多个web应用。
<context>组件为特定的web应用处理所有客户请求。它是使用最频繁的元素。每个<Context>元素代表了运行在虚拟机上的单个web应用,一个<Host>元素中可以包含多个<context>元素
说到<context>元素,java web应用的主要特征之一就是它与Context的关系,每个web应用有唯一的Context。当java web应用运行时,Servlet容器为每个web应用创建唯一的ServletContext对象,它被整个web应用中所有的组件共享。
如下代码:
<Context path="/reglog" docBase="reglog" debug="0"
crosscontext="true" reloadable="true">
</Context>
你可以自己在server.xml当中定义一个context元素,设定你所存在项目的参数及属性。其中path指定访问web应用的url入口
docBase指定web应用的文件路径,可以给定绝对路径,也可以给定向对于host的appBase属性的相对路径
reloadable,如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新,服务器会自动重新加载web应用。

另外说一下tomcat的运行脚本
如果仔细研究一下tomcat的启动和关闭脚本,会发现startup.bat和shutdown.bat都执行同一个目录下的catalina.bat脚本。其实质是这样的:执行startup.bat脚本,相当于执行了catalina start命令,执行shutdown.bat相当于执行了catalina stop命令。

common\lib,server\lib,shared\lib这三个目录相信大家都见过吧,但具体是干什么用的呢?
其中server\lib下的jar文件只能被tomcat服务器访问。
shared\lib下的jar文件可以被所有的web应用访问,但不能被tomcat服务器访问。
common\lib目录下的jar文件可以被tomcat服务器和所有的web应用访问
1 楼 voff12 2007-01-14  
Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。

相关推荐

    tomcat-jpa-sample

    反过来,Weld 检测到 Jandex 在类路径上可用并使用。 Weld 中与 Jandex 相关的类然后与 slf4j 不兼容,当它们尝试将带有“{}”的 slf4j 消息推送到 JBoss 日志记录时,它们会抛出 NumberFormatException,JBoss ...

    基于Annation的电子商城

    2.Aneshop为发布的war文件,放入\apache-tomcat-6.0.18\webapps\目录下,启动tomcat即可 3.在浏览器地址栏输入http://127.0.0.1:8080/Aneshop/运行web程序 4.后台http://127.0.0.1:8080/Aneshop/shopbg/bg.jsp 5.该...

    基于Java的网上购物系统的设计与实现-毕业设计论文

    本系统是尝试用 JSP 在网络上架构一个动态的电子商务网站,它是在 Windows 7 下,以 MySQL 为数据库开发平台,Tomcat 网络信息服务作为应用服务器,基于 J2EE 多层体系结构,应用 Java、Struts、Hibernate等技术...

    employeeManager:自己尝试写的一个简单的考勤管理系统,包含管理成员信息以及成员考勤,管理员审批的功能,采用SpringMVC+Hibernate4+Spring搭建

    WEB容器:Tomcat 7.0 视图框架:SpringMVC 4.3.6.RELEASE 核心框架:Spring Framework 4.3.6.RELEASE 持久层框架:Hibernate4.3.11.Final 数据库连接池:C3P0 工具类 Apache fileupload 文件上传组件 Apache commons-...

    Faceye 基础版概框

    如果不能使用命令模式导入数据库,请尝试使用navicat8进入数据库的导入操作. 4.3.部署 将x:/faceye/dist/faceye.war拷贝至Web容器 如果你使用的是tomcat,请拷贝至:x:/tomcat/Webapps/ 如果你使用的是JBoss,请拷贝至:...

    计算机专业毕业实习日记.docx

    我用的是Tomcat的最新版本6,估计有兼容性问题,所以换了版本5;还有就是一开始没安装微软JDBC for SQL Server2000的驱动程序,导致无法加载驱动类库。几天的工夫总归没白费! 今天装了MySQL数据库,想给网站换个...

    Spring_Framework_ API_5.0.5 (CHM格式)

    在框架代码中使用函数式编程 - lambda表达式 和 stream流 4. 响应式编程支持 响应式编程是 SpringFramework5.0 最重要的特性之一。响应式编程提供了另一种编程风格,专注于构建对事件做出响应的应用程序。 Spring...

    jsp传参 servlet接收中文乱码问题的解决方法

    毕竟数据是根本嘛,首先我用的是hibernate+servlet,但是在jsp页面传参到servlet的时候中文一直乱码,我尝试了好多方法,最后还是解决了。 第一,首先看清项目的编码,jsp页面的编码 第二,修改tomcat 下面的server....

    Jenkins_project

    很快,我将尝试更新这个项目或创建新项目,以 Spring MVC、Hibernate 的新趋势。 先决条件: - Maven (I tested with Apache Maven 3.0.3) - Apache Tomcat (I tested with apache-tomcat-7.0.52) - MySQL ( I ...

    Myeclipse连接mysql数据库心得体会

    我是给同学做一个J2EE 关于struct+hibernate结构的课设,数据库以前用的是Oracle,数据库丢失,不想装Oracle,那玩意装在本子上太刀了,卸不掉恶心…就换个mysql给他改改,网上的一些帖子,太老了,版本以及网址都是...

    JAVA上百实例源码以及开源项目

    得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...

    JAVA上百实例源码以及开源项目源代码

    得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...

Global site tag (gtag.js) - Google Analytics