`
jeff312
  • 浏览: 77327 次
  • 性别: Icon_minigender_1
  • 来自: 新加坡
社区版块
存档分类
最新评论

JBoss 5.1 GA 配置Web应用包括数据源在内的一系列问题

阅读更多
JBoss 5.x 的类路径检查非常严格,尤其是一些类库如Hibernate,xerces解析器在加载的时候,一旦有重复包存在,程序就会发生怪事,具体何种怪事则依情况而定,总之原则是你的程序一定跑不起来。

手头有个项目,构建原型的时候图方便,就暂时使用tomcat6做服务器,因为采用的是比较基本的ajax + servlet/jsp + javaBean 的架构,所以tomcat用起来还是相当顺手的。最近由于一些很无奈的原因,项目匆匆进入生产部署阶段,需要跟公司的产品集成并一齐部署在JBoss 5.1GA 上,麻烦开始接踵而至。

刚把JBoss注册进IDE(NetBeans6.5.1) 就立刻感到了一些不爽,首先是servlet-api和jasper库文件在JBoss的/common/lib 下面,NetBeans找不到(经过测试,即使是6.7的NB也不行),所以servlet的源文件开始时都无法编译,并且jsp在编辑的时候都不能即时编译,也就无法报错和代码提示,相当烦人。别无他法,只好手动从common/lib里把这几个缺席的哥们补上,当然,这些手动添加的库文件是JBoss里已经有了的,所以要在该新添库的右边把“package”的勾选去掉,负责项目加载的时候又将出现一个重复包引发的血案。

项目的DAO层使用Hibernate3.2实现,这里必须要注意的是,JBoss是自带Hibernate的绝大多数库文件的,所以IDE引入的Hibernate相关库绝对不能随着项目打包,做法同上,把“package”的勾选去掉即可。我曾被这个问题困扰,因为将Hibernate打进war包的结果就是JBoss将在程序运行的时候报出下面的错误信息:

org.jboss.resource.adapter.jdbc.WrapperDataSource cannot be cast to javax.sql.DataSource

这个错误信息很能迷惑人,因为它似乎跟你说数据库的驱动有问题,事实上在很多情况下这个错误就是源自驱动包重复,有一些人在部署项目的时候把数据库驱动也打包了,而JBoss服务器已经存在了一个同样的包。可是Hibernate的存在怎么也能出现这样的问题呢,请注意,产生以上错误信息的代码只是一段极为简单的纯JDBC代码:
InitialContext initialContext = new InitialContext();
DataSource ds = (DataSource) envContext.lookup("java:jdbc/MySqlDS");
Connection conn = ds.getConnection(); 
......

这段代码跟Hibernate毫无关系,居然是背后的罪魁祸首。要知道,同样的代码在JBoss4.23中部署绝无问题,JBoss5确实太严格了。

最后一个小问题,在配置数据源的时候,假如在mysql-ds.xml里定义的jndi是“jdbc/MySqlDS",那么默认情况下数据源的jndi会被注册成“java:jdbc/MySqlDS”,这在控制台里观察JBoss启动信息的时候可以观察到,但是如果你在配置时多写一行:
<local-tx-datasource>
    ......
    <use-java-context>false</use-java-context>
    ......
</local-tx-datasource>

那么lookup的时候只需要"jdbc/MySqlDS"就行了。

1
1
分享到:
评论

相关推荐

    JBOSS5.1安装配置说明

    JBOSS 是一个基于 Java 的开源应用服务器,可以运行在 Windows、Linux、Unix 等多种操作系统平台上。为了在 Windows 下安装和配置 JBOSS,我们需要按照以下步骤进行操作。 安装 JAVA 环境 首先,我们需要安装 JAVA...

    jboss5.1集群操作说明 apache2.2.4

    JBoss 5.1 是一个基于 Java 的应用服务器,提供了高度可扩展性和高可用性,支持集群部署。集群操作能够使多个 JBoss 实例协同工作,以提高应用程序的性能和容错能力。Apache 2.2.4 是一个常用的开源 Web 服务器,它...

    JBoss7配置Mysql5.1数据源.pdf

    3. 创建数据源步骤:配置JBoss服务器以使用Mysql5.1数据源包括以下步骤: - 配置JBoss的数据源JNDI名称。 - 在JBoss配置文件中添加数据库连接驱动信息。 - 设置数据库连接信息,包括URL、用户名和密码。 - 配置...

    替换两个文件解决Tomcat6项目移植到JBoss5.1下的Logging异常

    除了加入jboss-web.xml,删除xerces-2.6.2.jar和xml-apis.jar之外, &lt;!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web ...原因是旧版本的slf4j-api不包含以上方法,附件解压后覆盖jboss5.1GA/common/lib下的同名文件即可

    tomcat jboss数据源配置.rar

    在IT行业中,服务器和应用服务器的配置是至关重要的,尤其是...提供的压缩包文件"jboss4.0 配置.txt"和"tomcat5.5配置Oracle数据源.txt"应该包含了详细的步骤和可能遇到的问题,读者可以通过这些文件深入学习和实践。

    ejb课程测试代码,eclipse+jboss5.1 ant编译等代码

    【JBoss 5.1】是一个基于Java EE 5规范的开源应用服务器,它为EJB提供了运行环境。EJB可以在JBoss中部署并运行,实现业务逻辑,与数据库交互,以及其他企业级服务。JBoss 5.1版本支持EJB 3.0规范,该规范简化了EJB的...

    jboss配置数据源

    jboss配置数据源是指在jboss服务器上配置oracle数据库的数据源,以便在jboss应用程序中使用oracle数据库。下面是jboss配置数据源的详细步骤: 首先,需要将oracle的JDBC驱动程序复制到ClassPath下,通常是将其复制...

    在jboss上部署web应用

    总结,JBoss作为一款强大的Java应用服务器,提供了丰富的J2EE服务和高级特性,其安装、配置和部署过程相对简单,适合开发和部署各种企业级应用。通过理解和掌握这些基础知识,开发者能够更有效地利用JBoss来构建和...

    JBoss 下配置 Oracle 数据源

    本文将详细介绍如何在 JBoss 中配置 Oracle 数据源,包括复制配置文件、编辑配置文件、设置数据源参数等步骤。 一、复制配置文件 首先,我们需要将 %JBOSS_HOME%\docs\examples\jca\oracle-ds.xml 复制到 %JBOSS_...

    在JBoss中配置多个数据库和数据源

    在JBoss中配置多个数据库和数据源是非常复杂的,因为JBoss是一款非常强大的J2EE应用程序服务器。配置多个数据库和数据源需要了解JBoss的配置选项和数据源的配置信息。 首先,需要了解JBoss的配置选项。JBoss的默认...

    jboss5.0.1GA端口配置

    本文将详细介绍如何解决JBoss 5.0.1 GA中的端口配置问题,避免与Oracle和Java EE应用的端口冲突。 #### 二、端口冲突的原因及影响 端口冲突通常发生在多服务共存的环境中,当两个或多个服务尝试绑定到同一个端口时...

    JBOSS 4.2.2GA 使用指南

    4. **数据库连接**:如果应用需要数据库支持,你需要配置JDBC驱动和数据源。这通常涉及在`server/default/conf/jboss-service.xml`或`jboss-web.xml`中添加相关配置。 ### 开发EJB 1. **EJB基础**:EJB...

    配置jboss数据源

    在EJB 3.0规范中,数据源的配置是必不可少的一部分,尤其是在像JBOSS这样的应用服务器中。本文将深入探讨如何在JBOSS中配置EJB 3.0的数据源。 首先,我们需要理解JBOSS的数据源概念。数据源是JNDI(Java Naming and...

    JBoss7.1.1配置MySql数据源

    在JBoss中配置MySQL数据源是开发Java EE应用程序时的重要步骤,这允许应用与数据库进行交互。下面将详细介绍如何在JBoss 7.1.1中配置MySQL数据源。 首先,我们需要准备MySQL数据库的相关信息,包括数据库URL、...

    jboss-web-2.1.0.GA.zip

    总的来说,"jboss-web-2.1.0.GA.zip"是一个便于开发和部署Java EE应用的Web容器,它为开发者提供了可靠的平台来构建、测试和运行基于Servlet和JSP的应用程序。虽然这个版本相对较老,但对于学习和理解Web服务器的...

    配置JBoss应用服务器

    配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss...

    JBoss 将WEB应用发布为默认应用程序

    `WEB-INF`是一个特殊目录,包含了Web应用的配置文件、类文件以及库文件等,JBoss服务器在部署应用时会读取这些文件。 3. **部署应用**:将整个WEB应用(包括`WEB-INF`目录和`jboss-web.xml`)打包成WAR文件,然后将...

Global site tag (gtag.js) - Google Analytics