`

在Jboss EAP 6/Wildfly中使用Hibernate 3和JSF 1.2

阅读更多

在EAP 6中使用JSF1.2

增加jboss-deployment-structure.xml文件,其内容如下:

<jboss-deployment-structure>
    <deployment>
        <exclusions>           
            <module name="javax.faces.api"/>
            <module name="com.sun.jsf-impl"/>
        </exclusions>
        <dependencies>
            <module name="javax.faces.api" slot="1.2" export="true"/>
            <module name="com.sun.jsf-impl" slot="1.2" export="true"/>
        </dependencies>
    </deployment>
    <sub-deployment name="xxx.war">
        <exclusions>
            <module name="javax.faces.api"/>
            <module name="com.sun.jsf-impl"/>
        </exclusions>
        <dependencies>
            <module name="javax.faces.api" slot="1.2"/>
            <module name="com.sun.jsf-impl" slot="1.2"/>
        </dependencies>
    </sub-deployment>
</jboss-deployment-structure>

以上为EAP包中的配置,注意web sub deployment要再配置一遍。如为WAR仅需最外层就可以喽。

 

在EAP 6 中使用Hibernate 3

 

1. pom配置

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.10.Final</version>
    <exclusions>
        <exclusion>
            <groupId>antlr</groupId>
            <artifactId>antlr</artifactId>
        </exclusion>
        <exclusion>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
        </exclusion>
        <exclusion>
            <groupId>javax.transaction</groupId>
            <artifactId>jta</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.6.10.Final</version>
    <exclusions>
        <exclusion>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
        </exclusion>
        <exclusion>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>3.1.0.GA</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-commons-annotations</artifactId>
    <version>3.2.0.Final</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2. jboss-deployment-structure.xml文件配置

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <exclusions>           
            <module name="org.hibernate" slot="main" />
        </exclusions>
        <dependencies>
            <module name="org.apache.commons.logging" />
            <module name="org.apache.commons.collections" />
            <module name="org.apache.log4j" />
            <module name="org.dom4j" />
            <module name="org.slf4j" />
            <module name="org.antlr" />
            <module name="asm.asm" />
            <module name="org.javassist" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>

3. persistence.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
   version="2.0">
      <persistence-unit name="primary">
      <jta-data-source>java:jboss/datasources/defaultDS</jta-data-source>
      <properties>

         <!-- 注意要使用hibernate3-bundled -->

         <property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" />
         <property name="hibernate.hbm2ddl.auto" value="create-drop" />
         <property name="hibernate.show_sql" value="true" />
      </properties>
   </persistence-unit>
</persistence>

 

EAP支持的JPA版本,请查看源码,位于模块org\jboss\as\jpa\jboss-as-jpa.jar的org.jboss.as.jpa.config.Configuration类中。

 

Wildfly

Wildfly默认不支持JSF1.2,如要使用需下载Wildfly源码编译安装。

1) cd <WILDFLY_SOURCE_ROOT>/jsf/multi-jsf-installer
2) mvn -Djsf-version=1.2_15 -Pmojarra-1.2 clean assembly:single

3) The final artifact in the target directory will be called install-mojarra-1.2_15.zip.  Rename it to install-mojarra-1.2_15.cli.
4) Start WildFly
5) cd to <JBOSS_HOME>/bin for the running server where you want to install the new JSF.
6) Start the Command Line Interface and invoke this command then restart WildFly.

    jboss-cli.bat --connect

    [standalone@localhost:9990 /]deploy <local path to archive>/install-mojarra-1.2_15.cli

 

执行完以上命令后,JSF1.2安装在modules根目录下,slot为mojarra-1.2_15,需要手工修改和迁移一下(共三个模块:javax\faces\api,com\sun\jsf-impl,org\jboss\as\jsf-injection)

 

再修改一下配置:

        <exclusions>           
            <module name="javax.faces.api"/>
            <module name="com.sun.jsf-impl"/>

            <module name="org.jboss.as.jsf-injection"/>
        </exclusions>
        <dependencies>
            <module name="javax.faces.api" slot="1.2" export="true"/>
            <module name="com.sun.jsf-impl" slot="1.2" export="true"/>

            <module name="org.jboss.as.jsf-injection" slot="1.2" export="true"/>
        </dependencies>

 

注意必须增加jsf-injection,否则启动后会报以下错误:

 java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Class javax.faces.FactoryFinder can not access a member of class org.jboss.as.jsf.injection.weld.WeldApplicationFactory with modifiers "private"

 

Jboss EAP 6 Migration Guide

How to Use Hibernate 3 in EAP 6
Steps to add any new JSF implementation or version to WildFly
分享到:
评论

相关推荐

    appServer JBoss / jboss / Wildfly 8.1 / wildfly 8

    描述中提到的"NULL"可能意味着没有具体的描述信息,但我们可以从标签 "源码" 和 "工具" 中推测,这个压缩包可能包含与JBoss/Wildfly 8.1相关的源代码或实用工具。源码对于开发者来说极其重要,因为它允许他们深入...

    jboss-eap-7.2.6-patch

    - 应用补丁:按照 `patch.xml` 文件中的指示进行操作,这可能包括使用特定的工具(如 `jboss-eap-cli.sh`)或手动替换文件。 - 验证:启动 JBoss EAP 服务并检查日志,确保补丁已正确应用且系统运行正常。 4. **...

    jboss-eap-7.2.0.zip

    JBoss EAP(Enterprise Application Platform)是Red Hat公司推出的一款开源、基于Java EE(现在称为Jakarta EE)的应用服务器,它为企业级应用程序提供了稳定、安全和可扩展的运行环境。版本7.2.0是该平台的一个...

    Jboss-EAP-6.4配置web工程,修改根目录,修改内存,修改端口

    通过以上步骤,我们可以成功地在JBoss EAP 6.4上部署FineReport,并根据需求进行必要的服务器配置,以确保最佳的运行效率和用户体验。请注意,这些更改可能需要根据实际环境和应用的需求进行适当的调整。在生产环境...

    java.lang.NoClassDefFoundError: org/jboss/logging/

    3. **日志分析**:开启更详细的日志输出,例如在JBoss或WildFly中启用DEBUG级别日志,以便获取更多关于类加载的细节。 4. **清理构建**:清理并重新构建项目,确保没有旧的或重复的类文件。 5. **搜索解决方案**:...

    JBOSS EAP6安装部署手册 Windows

    在Windows平台上部署JBOSS EAP6涉及多个步骤,包括安装Java Development Kit (JDK),下载并解压JBOSS EAP6,配置环境变量,以及应用程序的部署和管理。以下将详细介绍这些步骤。 ### 1. JBoss EAP6安装与配置 ####...

    jboss-eap-6.4.0.zip

    JBoss EAP 6.4 是 Red Hat 提供的一个企业级应用服务器,它基于 Java EE 6 规范,提供了全面的中间件服务,用于构建、部署和管理企业级应用程序。这个版本是 JBoss 产品线的一个关键里程碑,因为它包含了众多功能...

    wildfly9 多实例的配置实例(有说明)

    在大型企业环境中,通常需要配置多个独立的Wildfly实例以实现高可用性和负载均衡。本教程将深入讲解如何在Linux环境(CentOS)下配置Wildfly9的多实例,以及使用JDK8和shell脚本来管理这些实例。 首先,确保你已经...

    jboss-eap-5.2.0.zip

    1. **Java EE 5支持**:JBoss EAP 5.2.0遵循Java EE 5规范,包括EJB 3.0、JSF 1.2、JPA 1.0、JMS 1.1等,为开发者提供了构建企业级服务所需的基础架构。 2. **Web容器**:内嵌的Tomcat或Jetty Web容器,用于处理...

    jboss-eap-6.3.0

    1. **Java EE 6支持**:JBoss EAP 6.3.0遵循Java Platform, Enterprise Edition (Java EE) 6标准,提供包括Servlet 3.0、JPA 2.0、EJB 3.1、JSF 2.1等在内的服务和API。 2. **模块化架构**:EAP 6.3引入了模块化...

    jboss eap 6.2或as 7 以上乱码问题解决

    在使用jBoss Enterprise Application Platform (EAP) 6.2 或 jBoss Application Server (AS) 7及以上版本的过程中,可能会遇到字符编码问题,即所谓的“乱码”现象。这种现象通常出现在应用程序的日志、输出数据或与...

    jboss-eap-6.2.0

    3. **容器优化**:JBoss EAP 6.2.0针对多租户环境进行了优化,支持在同一服务器上部署和管理多个独立的应用实例,这在云环境和大型企业中尤为重要。 4. **安全管理**:该版本加强了安全功能,提供了基于角色的访问...

    myeclipse 远程调试jboss as7或者jboss eap6

    本篇将详细介绍如何在MyEclipse中远程调试JBoss AS7或JBoss EAP6,无论是在Windows还是Linux环境下。 首先,我们需要了解远程调试的基本原理。远程调试通常依赖于Java的调试接口(Java Debug Wire Protocol, JDWP)...

    linux-jboss-eap 集群搭建

    在Linux环境下,搭建JBoss Enterprise Application Platform (EAP)的集群能够提高应用程序的可用性和可扩展性。JBoss EAP 6.4.0提供了两种运行模式:standalone(独立运行模式)和domain(域模式)。standalone模式...

    wildfly, 用于复制项目的Docker 映像.zip

    wildfly, 用于复制项目的Docker 映像 复制 Docker 映像这是一个示例 Dockerfile,带有 WildFly应用程序服务器 。用法以独立模式引导docker run -it jboss/wildfly在远程使用管理控制台的独立模式下启动

    Linux JBoss EAP集群

    JBoss EAP (Enterprise Application Platform) 是一款由 Red Hat 提供的企业级 Java 应用服务器,它基于开源项目 WildFly 构建而成,提供了丰富的功能和服务,适用于构建、部署和管理企业级应用程序。在实际生产环境...

    Jboss eap 6.1.0 应用平台配置管理文档

    在文档中,读者能够找到关于如何在不同的操作系统上安装JBoss EAP 6.1的说明。部署部分将覆盖如何设置网络配置、部署应用以及相关的最佳实践。 ### 知识点五:安全配置 安全性是企业应用中极为重要的一部分。文档将...

    jboss-eap-7.1.0

    6. **集群与高可用性**:JBoss EAP 7.1.0支持集群部署,能实现负载均衡和故障转移,从而提高系统的可用性和性能。 7. **热部署与管理工具**:提供基于Web的管理控制台和命令行工具(CLI),使得配置、部署和监控...

    twiddle_for_eap6:JBoss EAP 6 的 Twiddle

    Twiddle for EAP 6 是 JBoss EAP 5 中包含的 Twiddle 的分支,并由 Kenjiro Nakayama 修改以支持 EAP 6。 注意EAP 6 的 Twiddle 可以通过-a选项更改访问端口,它与以前的 Twiddle 不同。 支持版本 EAP 6 和 AS7/...

Global site tag (gtag.js) - Google Analytics