`

在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
分享到:
评论

相关推荐

    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_Enterprise_Application_Platform-7.0

    3. **WildFly内核**:JBoss EAP 7.0基于WildFly应用服务器,这是一个高性能、轻量级的开源项目。WildFly内核为EAP提供了基础架构,包括安全管理、集群、热部署等功能。 4. **微服务支持**:虽然Java EE 7不是专门...

    Java_快速入门演示了JBoss EAP Jakarta EE 10和一些其他技术,它们提供了小的特定工作示例,可以.zip

    Java_快速入门演示了如何使用JBoss EAP 8.0版本和最新的Jakarta EE 10标准,这些教程通常包含了多个小而具体的工作示例,帮助初学者快速理解和掌握相关技术。 Jakarta EE 10是Java企业版的一个重要里程碑,它标志着...

    jboss5服务器2

    - **EJB3支持**:JBoss5完全支持Java EE 5规范中的Enterprise JavaBeans 3.0,简化了EJB的开发和部署,引入了无状态会话bean、有状态会话bean、消息驱动bean等组件。 - **JPA集成**:集成了Java Persistence API,...

    jboss 4.2.3

    在实际应用中,如果你还在使用JBoss 4.2.3,可能需要考虑升级到更现代的版本,如WildFly或EAP,因为它们提供了更多的功能、改进的安全性以及对最新Java EE标准的支持。然而,对于某些特定场景或遗留系统,JBoss ...

    jboss教程

    【JBoss教程】是针对企业级Java...总的来说,这个【JBoss教程】全面覆盖了从基础到高级的JBoss使用和管理,无论你是Java EE新手还是有经验的开发者,都能从中受益,提升你的技能并在实际项目中更加熟练地运用JBoss。

    fuse-jbdstooling:测试 jbds 工具的项目

    4. **服务器集成**:JBDS 与 Red Hat JBoss 服务器紧密集成,支持快速部署到JBoss EAP、WildFly等服务器,提供服务器管理、日志查看等功能。 5. **框架支持**:JBDS 提供了大量针对Spring、Hibernate、PrimeFaces等...

    investor:读书俱乐部的示例投资者存储库

    3. **数据库交互**:可能使用JDBC或ORM框架(如Hibernate)进行数据库操作,了解SQL语句和关系型数据库管理是必要的。 4. **版本控制**:使用Git进行版本控制,需要熟悉Git的基本操作,如commit、push、pull、merge...

Global site tag (gtag.js) - Google Analytics