文档章节

Seam3 + JPA工程搭建配置

ForEleven
 ForEleven
发布于 2012/03/16 11:41
字数 1436
阅读 780
收藏 2

Seam3 是基于Weld构建的一个开发框架,而Weld是对JSR-299 CDI 的一个实现。JSR-299 的核心就是依赖注入,而且不需要Spring那么多的配置文件,基本上任何Bean都可以被注入。

 

这里介绍 JBoss Seam3 工程的搭建与相关配置,使用的是Seam 3.1.0.Final 版本,服务器是 Jboss as 7.0.2.Final
1. 首先配置Jboss as7 的JNDI数据源. 这里介绍 mysql 的配置方法,其他数据类似
打开解压好的 Jboss as7 目录 jboss-as-web-7.0.2.Final\modules\com  在这里目录下建文件夹 mysql\main\  在main下,放入mysql-connector-java-5.1.7-bin.jar
    然后添加 module.xml


  
<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.0" name="com.mysql">
  <resources>              
     <resource-root path="mysql-connector-java-5.1.7-bin.jar"/> 
  </resources> 
  <dependencies>
     <module name="javax.api"/>       
  </dependencies> 
</module>

然后修改 standalone\configuration 目录下的 standalone.xml 文件,找到datasources 标签修改里面的内容,如下:

<datasources> 
   <datasource jndi-name="java:jboss/MySqlDS" pool-name="MySqlDS_pool" enabled="true" jta="true" use-java-context="true" use-ccm="true"> 
      <connection-url>jdbc:mysql://localhost:3306/jweb</connection-url> 
      <driver>mysql</driver> 
      <security> 
          <user-name> root</user-name> 
          <password>11111</password> 
      </security> 
</datasource> 
<drivers> 
      <driver name="mysql" module="com.mysql"/> 
</drivers>

2. 建立Seam工程,这里先介绍直接用eclipse建立war结构的工程,会用maven的,下面会给出 pom.xml
    用eclipse建立一个java ee6 的web工程,选择servlet3.0 ,然后添加 JSF,JPA支持。
     1)修改 web.xml 。 seam 3 所有模块是基于jee6 的weld启动的,所以在web.xml 中并不需要添加任何监听和servlet。 在tomcat中配置是不一样的,等我在tomcat7 中尝试成功,再介绍。这里只是 JSF 的启动配置。

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 
    <display-name>Seam 3 Example (Java EE Environment)</display-name> 
   <session-config> 
         <session-timeout>6</session-timeout> 
   </session-config> 
   <servlet> 
         <servlet-name>Faces Servlet</servlet-name> 
         <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
         <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
          <servlet-name>Faces Servlet</servlet-name> 
          <url-pattern>*.seam</url-pattern> 
    </servlet-mapping> 
    <mime-mapping> 
         <extension>xcss</extension> 
         <mime-type>text/css</mime-type> 
    </mime-mapping> 
</web-app>

2. 在WEB-INF下,添加一个 bean.xml, 这个文件可以是空的,这文件的作用是启动weld。这个里面也可以对weld进行一些配置,比如weld 在注入接口的时候,会自动应用它的实现类,如果有多个的话,在这个文件里面可以设置到底应用哪一个实现类。这个对系统的扩展性等还是很有帮助的。

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" 
        http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> 
</beans>

3. 在src/META-INF 下添加一个 seam-bean.xml 文件。这个文件就是seam的配置文件了,我这里只是做了一件事,注册了Seam 安全登录的方法,后面会介绍Seam3的登录。

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:ee="urn:java:ee" 
    xmlns:ss="urn:java:org.jboss.seam.security" 
    xsi:schemaLocation=" 
      http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> 
     <ss:IdentityImpl> 
           <ee:modifies /> 
           <ss:authenticatorName>authenticatorImpl</ss:authenticatorName> 
     </ss:IdentityImpl> 
</beans>

4. JPA的配置,src/META-INF/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="JBossSeam3" transaction-type="JTA"> 
      <jta-data-source>java:jboss/MySqlDS</jta-data-source> 
      <!-- --><provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <properties> 
            <property name="hibernate.show_sql" value="true"/> 
            <property name="hibernate.transaction.manager_lookup_class" 
                        value="org.hibernate.transaction.JBossTransactionManagerLookup" /> 
            <property name="hibernate.archive.autodetection" value="class" /> 
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/> 
     </properties> 
</persistence-unit> 
</persistence>

5. 当然还有 JSF2 的配置文件  WEB-INF 下的 faces-config.xml 无需更改内容,这里就不贴出来了。
6. 下面给出所需jar包的截图


     里面跟seam相关的jar包 有的没有版本号,他们的版本都是一致的,都是 3.1.0.Final   JSF是2.1.6  这里不需要JPA相关的jar文件,JBoss as7 的lib里面已经有了。
     这样 Seam3 的war包工程就建好了,下面给一个 maven 的 pom.xml 文件。会maven的可以通过maven拉出jar包,比较方便。Maven工程的搭建,就不介绍了,我自己也在学习中。



   后面会陆续给出利用Seam3 来实现一些基本的功能,像登录,访问权限,在JS中调用后台代码(Romting) 等等,我自己也在学习中,希望也对JEE6感兴趣的朋友能多多交流。 有朋友在搭建工程遇到问题的,我提供一份搭建好的工程。

© 著作权归作者所有

ForEleven
粉丝 207
博文 32
码字总数 28047
作品 1
架构师
私信 提问
加载中

评论(4)

Credo-Zhao
Credo-Zhao
总觉得seam实在是太杂乱了.........
hantsy
hantsy
    <profile>
      <id>jboss7-add-resouce</id>
      <!-- <activation> <activeByDefault>true</activeByDefault> </activation> -->
      <build>
        <plugins>
          
          <plugin>
            <groupId>org.jboss.as.plugins</groupId>
            <artifactId>jboss-as-maven-plugin</artifactId>
            <version>${version.jboss.as}</version>
            <executions>
              <execution>
                <id>deploy-driver</id>
                <phase>install</phase>
                <configuration>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <name>mysql-connector-java.jar</name>
                </configuration>
                <goals>
                  <goal>deploy-artifact</goal>
                </goals>
              </execution>
              <execution>
                <id>add-datasource</id>
                <phase>install</phase>
                <configuration>
                  <address>subsystem=datasources,data-source=siorcDS</address>
                  <properties>
                    <use-java-context>false</use-java-context>
                    <jndi-name>java:jboss/datasources/siorcDS</jndi-name>
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                    <connection-url>jdbc:mysql://localhost:3306/oceanstar</connection-url>
                    <user-name>oceanstar</user-name>
                    <password>eagle</password>
                    <min-pool-size>20</min-pool-size>
                    <max-pool-size>100</max-pool-size>
                    <enabled>true</enabled>
                    <pool-name>siorcPool</pool-name>
                    <driver-name>mysql-connector-java.jar</driver-name>
                  </properties>
                </configuration>
                <goals>
                  <goal>add-resource</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <dependencies>
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.18</version>
        </dependency>
      </dependencies>
    </profile>
ForEleven
ForEleven 博主

引用来自“hantsy”的评论

1. jbosss maven plugin 支持创建 DataSource, 添加 archetype 到jboss 中,如 MySQL driver.
2. Jboss 7.1 开始支持老式的 -ds.xml 注册DataSource。

恩,你说的第二点我已经发现了,已经在用。 第一点的话对maven的插件配置还不是太了解,一会我去研究下
hantsy
hantsy
1. jbosss maven plugin 支持创建 DataSource, 添加 archetype 到jboss 中,如 MySQL driver.
2. Jboss 7.1 开始支持老式的 -ds.xml 注册DataSource。
SSH与SSH2这种框架组合的历史原由

早在2001年时当时的J2EE推崇的是EJB,EJB被称为J2EE的核心,当时要学J2EE就是Servlet+EJB,在EJB里其实早已经有了AOP与实体映射这些概念了。 EJB有三种形态的BEAN,SessionBean, Entity Bea...

天行健J
2012/11/20
471
0
spring boot 搭建web项目完整流程

一、spring boot简介 spring boot是最近非常流行的,在spring的框架上改进的框架。该框架的目的是为了提高开发人员的速度,降低配置的难度等等,极大了简化了开发流程。具体的详细的说明请参...

红土豆
01/20
0
0
web工程中web.xml元素加载顺序以及配置实例

web工程中web.xml元素加载顺序以及配置实例 简介 web.xml是web工程的配置文件,容器加载web工程时,会首先从WEB-INF中查询web.xml,并加载其中的配置信息,可以将web.xml认为是web工程的入口...

jhon_n
2017/10/18
9
0
springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置

前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多的mvc框...

noteless
2016/02/24
0
0
精通Spring Boot——第一篇:DispatcherServlet和Multipart配置

如果大家搭建过SpringMVC应用,那么一定会写个几个xml配置文件,如application.xml, spring-mvc.xml 等。一般来说,我们搭建项目的初始步骤如下: * 初始化Spring MVC 的DispatcherServlet; ...

developlee的潇洒人生
2018/09/29
988
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
6
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
10
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
8
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
11
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部