- 浏览: 1060090 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (501)
- dwr (6)
- javascript (84)
- oracle (66)
- jsp/servlet (18)
- ant (3)
- 基础知识 (12)
- EXT (10)
- My SQL (10)
- java (71)
- spring (37)
- 学习的对象 (2)
- Linux (24)
- 面试 (1)
- HTML/CSS (11)
- tomcat (11)
- 收藏夹 (2)
- Power Designer (2)
- struts.xml配置文件 (1)
- sturts2 (3)
- myeclipse (8)
- eclipse (7)
- Maven (34)
- SVN (3)
- SAP JCO (2)
- JBOSS (11)
- webservice (8)
- word (1)
- 敏捷开发 (1)
- sybase (4)
- Nexus (3)
- EhCache (3)
- log4j (3)
- Cookie (4)
- Session (4)
- CXF (7)
- AXIS (2)
- SSO (1)
- LDAP (1)
- velocity (2)
- Jquery (5)
- redis (2)
- http (4)
- dojo (1)
- Linux资源监控软件mnon的安装与运用 (1)
- notepad++ (1)
- EA (1)
- UML (1)
- JasperReports (1)
- 权限 (0)
- freemarker (4)
- Spring MVC (1)
- JMS (1)
- activeMQ (1)
- hession (3)
- 安全 (1)
- ibatis (2)
- log (1)
- nginx (1)
最新评论
-
winhbb:
我刚好遇到了一个问题(在可以依赖注入的场合有效):有两个模块A ...
解决Maven项目相互依赖/循环依赖/双向依赖的问题 -
nanjiwubing123:
long3ok 写道你好 XmlOutputFormatter ...
用XStream转换复杂XML -
zhoujianboy:
另外一个方法实现eclipse tomcat 热部署:http ...
eclipse下实现maven项目在tomcat容器热部署方法 -
long3ok:
你好 XmlOutputFormatter 请问这个类是在什么 ...
用XStream转换复杂XML -
ganbo:
总结的好,文章给力。
解决Maven项目相互依赖/循环依赖/双向依赖的问题
貌似有段时间没来这里忽悠了,今天抽空接着忽悠下这三个服务器配置JNDI时的一些异同点并提点自己的建议。
•Jboss 4
Jboss中配置JNDI最常见的就是在配置数据源的时候,在server/default/deploy目录下方一个xxx-ds.xml文件,内容如下:
这样我们启动服务器后,在web应用中就可以通过如下代码就可以直接访问到数据源:
然而这里的java:jdbc/DataSource是一个全局资源名称,Jboss自动将资源加入全局资源,我们经常在应用中看到的java:comp/env/jdbc/DataSource 又是怎么回事?这其实是应用
的私有环境引用名,如果要使用这个引用名称,需要做两件事情(必须做),1、在应用的WEB-INF目录下创建jboss-web.xml,并设置全局到局部引用名得映射
2、在web.xml中设置
这样就可以在web应用中使用 java:comp/env/jdbc/DataSource 私有名了。
•Tomcat 6
tomcat中配置JNDI有三个地方:
1、在服务器的Server元素下配置全局的JNDI<GlobalNamingResources>
2、在host元素的<DefaultContext>中配置,配置后对该host下所有的context应用都有效
3、在context元素下配置,这里配置的只对该应用有效。
需要注意的是,第一种方式配置的全局JNDI,需要在context中使用<ResourceLink>元素转换成局部名才可以使用,功能跟jboss-web.xml中的转换类似。另外,tomcat 中配置的资源不需要在web.xml中进行声明,也可以通过java:comp/env形式进行访问,这一点跟Jboss/jetty有区别。
上面三个地方可以配置的资源元素是Resource/Environment,ResourceParams是配合Resource使用,而ResourceLink是为了连接转换全局资源。
举个简单例子,在context元素下的配置:(其他的各位自己去看元素如何使用)
这样就可以直接在web中使用 java:comp/env/mybase 来查询到资源了。不过还是建议在web.xml中声明一下。
•Jetty 7
Jetty的JNDI配置也分3个范围
1、基于JVM全局的,也就是同一个JVM下不同的Server都可以访问
2、基于Server的,只能在该server下可以访问
3、基于应用context上下文的,只能在该context下能够访问
配置方式见我上面一篇《JNDI和在JETTY中的运用》
不过这里要注意的是,采用java:comp/env方式访问时,一定要在web.xml中声明资源(除了配置的EnvEntry元素除外,他自动会加入到私有资源),否则你是拿不到资源的。
•总结
可以看到,每个服务器都有他自己的JNDI配置方式和全局访问方式,如果我们直接采用全局访问方式,第一对于一些只对某些应用有关的资源配置可能访问不到,例如JETTY,第二每个
应用服务器的全局访问方式可能不太一致。因此一般建议在应用程序中采用私有方式(java:comp/env)访问资源,并且无论如何都在web.xml中进行申明。这是一个良好的习惯。
另外:说到私有环境ENC(java:comp/env),他是如何变成私有的?其实私有是对每个应用上下文来说的,一般每个应用上下文都会用自己的classloader来加载应用,因此利用classloader便可以完成。具体方式是: 用每个应用自己的上下文 cloassloader 来初始化一个 JNDI context . 并以 classoader 为 key 保存起来,以后应用检索时需要使用的应用自己上下文的 classloader来查找这个JNDI 资源即可 ,由于其他应用使用不同的classloader实例,也就不能相互共享了,这就是每个应用私有了。另外如果资源命名时采用: java:resourceName, 或者 prefix:resourceName 的方式,虽然我们可以通过 java:resourceName, 或者 prefix:resourceName 的方式直接访问,但也注定了这不是私有资源,所有应用都可以访问,需要放到 ENC 下才是私有资源。绑定在 ENC 下访问: java:comp/env/prefix:resourceName
【转载】http://blog.csdn.net/lovingprince/article/details/6577920
•Jboss 4
Jboss中配置JNDI最常见的就是在配置数据源的时候,在server/default/deploy目录下方一个xxx-ds.xml文件,内容如下:
01.<?xml version="1.0" encoding="UTF-8"?> 02.<datasources> 03. <local-tx-datasource> 04. <jndi-name>jdbc/DataSource</jndi-name> 05. <connection-url>jdbc:jtds:sqlserver://localhost:1433/fnx</connection-url> 06. <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> 07. <user-name>sa</user-name> 08. <password>1234</password> 09. <metadata> 10. <type-mapping>MS SQLSERVER2000</type-mapping> 11. </metadata> 12. </local-tx-datasource> 13.</datasources>
这样我们启动服务器后,在web应用中就可以通过如下代码就可以直接访问到数据源:
01.Context ctx = new InitialContext(); 02.Object o=ctx.lookup("java:jdbc/DataSource");
然而这里的java:jdbc/DataSource是一个全局资源名称,Jboss自动将资源加入全局资源,我们经常在应用中看到的java:comp/env/jdbc/DataSource 又是怎么回事?这其实是应用
的私有环境引用名,如果要使用这个引用名称,需要做两件事情(必须做),1、在应用的WEB-INF目录下创建jboss-web.xml,并设置全局到局部引用名得映射
01.<jboss-web> 02. <resource-ref> 03. <res-ref-name>jdbc/DataSource</res-ref-name> 04. <res-type>javax.sql.DataSource</res-type> 05. <jndi-name>java:/jdbc/DataSource</jndi-name> 06. </resource-ref> 07. <context-root>/</context-root> 08.</jboss-web>
2、在web.xml中设置
01.<web-app> 02. <display-name>Archetype Created Web Application</display-name> 03. 04. <resource-ref> 05.<description>dataSource</description> 06.<res-ref-name>jdbc/DataSource</res-ref-name> 07.<res-type>javax.sql.DataSource </res-type> 08.<res-auth>Container</res-auth> 09. </resource-ref> 10.</web-app>
这样就可以在web应用中使用 java:comp/env/jdbc/DataSource 私有名了。
•Tomcat 6
tomcat中配置JNDI有三个地方:
1、在服务器的Server元素下配置全局的JNDI<GlobalNamingResources>
2、在host元素的<DefaultContext>中配置,配置后对该host下所有的context应用都有效
3、在context元素下配置,这里配置的只对该应用有效。
需要注意的是,第一种方式配置的全局JNDI,需要在context中使用<ResourceLink>元素转换成局部名才可以使用,功能跟jboss-web.xml中的转换类似。另外,tomcat 中配置的资源不需要在web.xml中进行声明,也可以通过java:comp/env形式进行访问,这一点跟Jboss/jetty有区别。
上面三个地方可以配置的资源元素是Resource/Environment,ResourceParams是配合Resource使用,而ResourceLink是为了连接转换全局资源。
举个简单例子,在context元素下的配置:(其他的各位自己去看元素如何使用)
01.<Resource name="mybase" auth="Container" 02. type="org.apache.catalina.UserDatabase" 03. description="User database that can be updated and saved" 04. factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 05. pathname="conf/tomcat-users.xml" />
这样就可以直接在web中使用 java:comp/env/mybase 来查询到资源了。不过还是建议在web.xml中声明一下。
•Jetty 7
Jetty的JNDI配置也分3个范围
1、基于JVM全局的,也就是同一个JVM下不同的Server都可以访问
2、基于Server的,只能在该server下可以访问
3、基于应用context上下文的,只能在该context下能够访问
配置方式见我上面一篇《JNDI和在JETTY中的运用》
不过这里要注意的是,采用java:comp/env方式访问时,一定要在web.xml中声明资源(除了配置的EnvEntry元素除外,他自动会加入到私有资源),否则你是拿不到资源的。
•总结
可以看到,每个服务器都有他自己的JNDI配置方式和全局访问方式,如果我们直接采用全局访问方式,第一对于一些只对某些应用有关的资源配置可能访问不到,例如JETTY,第二每个
应用服务器的全局访问方式可能不太一致。因此一般建议在应用程序中采用私有方式(java:comp/env)访问资源,并且无论如何都在web.xml中进行申明。这是一个良好的习惯。
另外:说到私有环境ENC(java:comp/env),他是如何变成私有的?其实私有是对每个应用上下文来说的,一般每个应用上下文都会用自己的classloader来加载应用,因此利用classloader便可以完成。具体方式是: 用每个应用自己的上下文 cloassloader 来初始化一个 JNDI context . 并以 classoader 为 key 保存起来,以后应用检索时需要使用的应用自己上下文的 classloader来查找这个JNDI 资源即可 ,由于其他应用使用不同的classloader实例,也就不能相互共享了,这就是每个应用私有了。另外如果资源命名时采用: java:resourceName, 或者 prefix:resourceName 的方式,虽然我们可以通过 java:resourceName, 或者 prefix:resourceName 的方式直接访问,但也注定了这不是私有资源,所有应用都可以访问,需要放到 ENC 下才是私有资源。绑定在 ENC 下访问: java:comp/env/prefix:resourceName
【转载】http://blog.csdn.net/lovingprince/article/details/6577920
发表评论
-
Tomcat配置远程调试端口
2015-03-09 12:10 9681.Linxu系统: apach/bin/startup.sh ... -
21,tomcat关闭钩子
2014-12-31 10:36 723在很多环境下,在关闭应用程序的时候需要做一些清理工作。问题在于 ... -
tomcat的maxThreads、acceptCount(最大线程数、最大排队数)
2014-01-23 10:39 1158tomcat 6的Connector配置如下 <Con ... -
jboss项目部署
2013-12-25 20:00 851http://xiao1227372602.iteye.com ... -
转载:《J2EE安全策略:为tomcat页面设置访问权限(j_security_check)》
2013-08-22 15:07 1512原文出处:http://www.blogj ... -
Tomcat j_security_check安全策略
2013-08-22 15:06 14921. 内存域:类名,MemoryRealm;在初始化阶段,从X ... -
JBoss4.2.x版本发布web应用,用ip直接访问的解决办法
2013-04-10 11:50 1031最近有个应用要部署到J ... -
JBOSS中配置JNDI数据源
2013-04-09 15:48 1274环境:JBOSS4.2+jdk1.6+oracle9i ... -
JBoss在开发模式下部署自己指定路径项目(可以发布为默认项目)
2013-01-12 00:05 1255D:\Program Files\jboss-4.2.2.GA ... -
将JBoss启动做成Windows的系统服务 服务器一开机自动运行JBoss .
2013-01-11 17:05 2603项目需要 参考了网上的一些资料 但用在自己这老是行不通 费老大 ... -
将JBOSS4上的项目Log日志输到其它文件中
2013-01-11 14:33 1130将JBOSS4下的项目Log日志输到其它文件中 如果不进 ... -
jboss连接池,断开后自动重连功能
2012-12-28 10:07 1559加上以下标注红线的内容就是加上自动重连功能! <? ... -
Jboss配置的连接池报 org.jboss.deployment.DeploymentException: Error during deploy;
2012-12-24 16:46 1658jboss 下部署程序,启动时报: org.jboss.dep ... -
如何加大tomcat连接数
2012-12-24 15:52 2362Tomcat实际上是不能承受2000的并发。关键还要看产生的连 ... -
配置TOMCAT SESSIONID 字符长度和生成算法
2012-12-24 15:30 6201修改TOMCAT 默认的生成SESSION ID的算法和字符长 ... -
tomcat中的session管理
2012-12-24 15:24 972Session的管理 当一个sesson开始时,Servle ... -
Tomcat的Session设置
2012-11-24 00:37 11631、为单个WEB设置SESSION 在WEB.XML中添加 ... -
eclipse中怎么配置jboss
2012-07-20 15:21 1237解决办法:到jboss.org下载个jbosstools插件就 ... -
2011-10-21 15:39 JBoss5.1.0 GA - 部署项目类库兼容和类库冲突问题解决方法
2012-07-20 11:15 1347在Tomcat6下开发,但将项目部署至JBoss5下运行的时候 ... -
Tomcat配置数据源
2012-07-16 00:05 01. 修改Tomcat安装目录下的conf文件夹里的conte ...
相关推荐
尽管核心服务不包含对 Servlet 和 JSP 的支持,但通常会与 Tomcat 或 Jetty 这样的 Web 容器结合使用,以提供完整的 J2EE 功能。 JBoss 的优势主要包括: 1. 免费且开源:遵循 LGPL 许可,使用者无需支付任何费用。...
在JBoss中配置Jetty Remote Glassfish EJBs from Jetty Jetty and Spring EJB3 (Pitchfork) JBoss EJB3 ObjectWeb EasyBeans (aka JOnAS EJB3Container) 集群技术 JBoss Infinispan (from Redhat) Gigaspaces ...
`jetty.xml`是Jetty最重要的配置文件之一,它定义了Jetty的启动配置。通常包含以下内容: - Server的配置:定义Server的生命周期管理。 - Connectors的配置:定义网络连接的监听地址、端口等。 - Handlers的配置:...
5. **Web容器**:JBoss内嵌了Tomcat或Jetty作为Web服务器,支持Servlet和JSP应用。 6. **数据缓存**:JBoss包含Infinispan,一个高性能、分布式的内存数据网格,用于缓存和数据共享,提升应用性能。 7. **服务注册...
8. **扩展性**:Tomcat可以与其他Java EE组件(如JBoss AS、Jetty等)集成,以实现更全面的企业级功能。 总结来说,"apache-tomcat-8.5.33-windowsx64.zip"是一个便捷的64位Windows系统上的Tomcat安装包,提供了...
5. **Web容器与Servlet**:JBoss内建Tomcat或Jetty等Web容器,用于运行Servlet和JSP,处理HTTP请求。 6. **EJB容器**:JBoss EJB容器支持无状态会话bean、有状态会话bean、实体bean和消息驱动bean,提供了企业级的...
- **HA-JNDI设计说明**:提供了关于HA-JNDI实现细节的信息。 - **HA-JNDI客户端和自动发现**:客户端可以自动发现集群中的HA-JNDI服务。 #### 4. EJB集群 EJB(Enterprise JavaBeans)可以在JBoss集群中进行集群...
尽管Jboss核心服务主要是一个EJB服务器,但它可以通过与其他轻量级Web服务器如Tomcat或Jetty结合来提供完整的J2EE环境。以下是Jboss的六大优点: 1. 免费:Jboss是基于LGPL许可证的开源J2EE实现。 2. 小巧:它对...
- **HttpSession状态复制**:适用于Jetty和Tomcat的会话管理。 - **分布式部署EJB和JBoss服务**:允许服务跨节点部署,实现负载均衡。 **3. JBoss基础知识与特点** - JBoss是J2EE服务器,与Weblogic和Websphere等...
JBoss核心并不包含对Servlet和JSP的支持,通常会与Tomcat或Jetty这样的WEB容器结合使用,以提供完整的WEB服务功能。 JBoss的架构由多个组件构成,包括JXM(Java Management Extensions,Java管理扩展)用于远程监控...
JBoss支持多种关键技术和服务,包括JNDI、Servlet/JSP(使用Tomcat或Jetty)、EJB、JTS/JTA、JCA、JMS等,同时兼容集群(如JavaGroups)、Web服务(如Axis)和IIOP(JacORB)集成。 ### 版本与许可 JBoss的生产...
1. **WEB SERVER介绍**:讲解了Web服务器的不同类型,如Jetty、Tomcat、Jweb、JBoss AS、GlassFish、Weblogic和WebSphere。其中,Tomcat因其良好的集群和监控支持,以及对最新Servlet和JSP规范的支持而备受推崇。 2...
目前有多种版本可供选择,其中标准版包含了用于Web页面和Servlets的Jetty,而另一种则使用了Tomcat替换Jetty。截至本文撰写时,JBoss 3.2.1是最新的稳定版本。 **安装步骤**: 1. **解压安装包**:将下载的JBoss...
- **Web服务器**:Tomcat/Jetty/Resin/JBossWeb。 - **JavaWeb核心技术**: - **网页开发** + **数据库设计** → **JavaWeb项目开发**。 - **6项基本技术**:JSP + JavaBean + Servlet + EL + JSTL + Taglib。 ...
JBoss,作为一款开放源码的J2EE应用服务器,不仅遵循EJB1.1和部分EJB2.0规范,还集成了JCA、完整的HTTP Server(如Jetty或Tomcat)、JMX内核等,形成了一个完整且功能丰富的J2EE应用服务器环境。其优势体现在以下几...
此外,JBoss AS还捆绑了HTTP服务器(如Jetty或Tomcat)和JCA(Java Connector Architecture),并提供了对JDBC数据对象存储的支持。 在安装和配置JBoss AS的过程中,作者强调了选择JBoss的原因,如其小内存需求、...
在基于Web的应用程序中,Web容器(如Tomcat或Jetty)和EJB容器协同工作。Web容器处理HTTP请求,而EJB容器则执行更复杂的业务逻辑。Web容器可以通过JNDI查找EJB,并调用其方法来处理业务逻辑。 ### EJB的部署与配置 ...
Web服务器如Tomcat、Jetty、Resin和JBoss的配置和管理也是必需的。 随着技能的提升,中级软件工程师会涉及SSH、SSI等经典架构,如Struts1和Struts2的表现层框架,Spring的业务层框架,以及Hibernate持久层框架。...
以下是关于这些技术的详细说明: 1. **服务器**: - **Tomcat**:作为Apache Jakarta项目的核心,Tomcat是一款开源的Web服务器和servlet容器,遵循最新的Servlet和JSP规范,具有跨平台能力。它可以与MyEclipse集成...
10. **容器与服务器**:J2EE应用通常运行在应用服务器上,如Tomcat、Jetty(轻量级)或者WebLogic、JBoss(全功能)。这些服务器提供运行时环境,管理EJB、Servlet、JSP等组件的生命周期。 在《J2EE案例开发》这个...