Maven、JEE6、Tomcat7/GlassFish3.1、EJB、JSF2、Hibernate/JPA和PrettyFaces

Maven、JEE6、Tomcat7/GlassFish3.1、EJB、JSF2、Hibernate/JPA和PrettyFaces,hibernate,jsf,tomcat,maven,ejb,Hibernate,Jsf,Tomcat,Maven,Ejb,正如我的标题已经解释的,我想知道如何结合这些技术 我已经尝试了JEE6-Maven-Glassfish-EJB-JSF2-Hibernate-PrettyFaces的组合,但问题是Glassfish-mojarra实现不能通过pom.xml被更新的版本取代,并且包含的mojarra版本不能与PrettyFaces一起工作。无论如何,在一个真正的系统上,我会更换内部的罐子来让它工作 现在我正在尝试JEE6-Maven-Tomcat-EJB-JSF2-Hibernate-Prettyfaces的组合

正如我的标题已经解释的,我想知道如何结合这些技术

我已经尝试了JEE6-Maven-Glassfish-EJB-JSF2-Hibernate-PrettyFaces的组合,但问题是Glassfish-mojarra实现不能通过pom.xml被更新的版本取代,并且包含的mojarra版本不能与PrettyFaces一起工作。无论如何,在一个真正的系统上,我会更换内部的罐子来让它工作

现在我正在尝试JEE6-Maven-Tomcat-EJB-JSF2-Hibernate-Prettyfaces的组合,但不知为什么EJB不能正常工作。我知道Apache不提供带有Tomcat的jsf实现,所以我在pom中为最新的mojarra实现添加了依赖项

tomcat也有一个奇怪的行为,我尝试在上下文路径“/”上部署一个webapp,使用firefox,我获得了加载localhost:8080的tomcat启动页面,使用chrome,我获得了我的应用程序视图。有什么问题吗

在这里您可以看到my pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.pkg</groupId>
<artifactId>App</artifactId>
<version>1.0</version>
<packaging>war</packaging>

<name>App</name>

<properties>
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <netbeans.hint.deploy.server>Tomcat70</netbeans.hint.deploy.server>
</properties>

<repositories>
    <repository>
        <id>JBoss</id>
        <name>JBoss Repsitory</name>
        <layout>default</layout>
        <url>http://repository.jboss.org/maven2</url>
    </repository>

    <repository>
        <id>jboss-snapshot</id>
        <url>http://snapshots.jboss.org/maven2</url>
        <releases>
        </releases>
        <snapshots>
        </snapshots>
    </repository>

    <repository>
        <url>http://download.java.net/maven/2/</url>
        <id>hibernate-support</id>
        <layout>default</layout>
        <name>Repository for library Library[hibernate-support]</name>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.15</version>
        <exclusions>
            <exclusion>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javax.jms</groupId>
                <artifactId>jms</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jdmk</groupId>
                <artifactId>jmxtools</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jmx</groupId>
                <artifactId>jmxri</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.3.2.GA</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.4.0.GA</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>3.3.0.ga</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.3.2.GA</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate</artifactId>
        <version>3.2.5.ga</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.0.5</version>
    </dependency>

    <dependency>
        <groupId>com.ocpsoft</groupId>
        <artifactId>prettyfaces-jsf2</artifactId>
        <version>3.2.0</version>
    </dependency>

    <dependency>
        <groupId>javax.sql</groupId>
        <artifactId>jdbc-stdext</artifactId>
        <version>2.0</version>
    </dependency>

    <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>jta</artifactId>
        <version>1.0.1B</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.1.1-b04</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.1.1-b04</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <compilerArguments>
                    <endorseddirs>${endorsed.dir}</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${endorsed.dir}</outputDirectory>
                        <silent>true</silent>
                        <artifactItems>
                            <artifactItem>
                                <groupId>javax</groupId>
                                <artifactId>javaee-endorsed-api</artifactId>
                                <version>6.0</version>
                                <type>jar</type>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <finalName>App</finalName>
</build>

4.0.0
com.pkg
应用程序
1
战争
应用程序
${project.build.directory}/project
UTF-8
Tomcat70
JBoss
JBoss代理
违约
http://repository.jboss.org/maven2
jboss快照
http://snapshots.jboss.org/maven2
http://download.java.net/maven/2/
休眠支持
违约
库的存储库[hibernate支持]
log4j
log4j
1.2.15
javax.mail
邮政
javax.jms
jms
com.sun.jdmk
jmxtools
com.sun.jmx
jmxri
org.hibernate
冬眠核心
3.3.2.GA
org.hibernate
休眠注释
3.4.0.GA
org.hibernate
hibernate commons注释
3.3.0.ga
org.hibernate
休眠实体管理器
3.3.2.GA
org.hibernate
冬眠
3.2.5.ga
mysql
mysql连接器java
5.0.5
com.ocpsoft
prettyfaces-jsf2
3.2.0
javax.sql
jdbc-stdext
2
javax.transaction
jta
1.0.1B
com.sun.faces
JSFAPI
2.1.1-b04
com.sun.faces
jsf impl
2.1.1-b04
爪哇
javaeewebapi
6
假如
朱尼特
朱尼特
4.8.1
测验
org.apache.maven.plugins
maven编译器插件
2.3.2
1.6
1.6
${annowed.dir}
org.apache.maven.plugins
maven战争插件
2.1
错误的
org.apache.maven.plugins
maven依赖插件
2.1
验证
复制
${annowed.dir}
符合事实的
爪哇
javaee认可的api
6
罐子
应用程序

奇怪的是,您会从同一个上下文中获得两个不同的web应用程序,就像在不同的浏览器上一样。此时,我怀疑一个或多个浏览器以某种方式返回缓存页面。您是否尝试清除两个浏览器中的浏览器缓存并重试

使用Glassfish,我替换了与我需要的Mojara版本捆绑在一起的Mojara jar文件。这是正确的做法


但是,你能详细说明你在JEE6上的问题吗?Glassfish 3.1应该是兼容JEE6的,那么到底什么“不起作用”呢?

奇怪的是,你会从同一个上下文中得到两个不同的web应用程序,就像在不同的浏览器上一样。此时,我怀疑一个或多个浏览器以某种方式返回缓存页面。您是否尝试清除两个浏览器中的浏览器缓存并重试

使用Glassfish,我替换了与我需要的Mojara版本捆绑在一起的Mojara jar文件。这是正确的做法


但是,你能详细说明你在JEE6上的问题吗?Glassfish 3.1应该与JEE6兼容,那么到底什么“不起作用”呢?

为什么不升级Glassfish Mojarra罐子呢

  • 下载新莫哈拉
  • 关闭玻璃鱼3
  • 替换中的Mojarra文件jsf-impl.jar和jsf-api.jar 包含新Mojarra文件的glassfishv3/glassfish/modules目录 jsf-impl.jar和jsf-api.jar
  • 删除glassfish/domains/domain1/osgi缓存目录中的所有内容
  • 启动玻璃鱼
  • 验证GlassFish中是否显示字符串new Mojarra 2.x.x 启动JSF应用程序时的日志文件

为什么不升级GlassFish Mojarra罐子呢

  • 下载新莫哈拉
  • 关闭玻璃鱼3
  • 替换中的Mojarra文件jsf-impl.jar和jsf-api.jar 包含新Mojarra文件的glassfishv3/glassfish/modules目录 jsf-impl.jar和jsf-api.jar
  • 删除glassfish/domains/domain1/osgi缓存目录中的所有内容
  • 明星