Seam3 是基於Weld構建的一個開發框架,而Weld是對JSR-299 CDI 的一個實現。JSR-299 的核心就是依賴注入,並且不須要Spring那麼多的配置文件,基本上任何Bean均可以被注入。css
這裏介紹 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 java
<?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 標籤修改裏面的內容,以下:mysql
<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
<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 在注入接口的時候,會自動應用它的實現類,若是有多個的話,在這個文件裏面能夠設置到底應用哪個實現類。這個對系統的擴展性等仍是頗有幫助的。sql
<?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的登陸。apache
<?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 。api
<?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工程的搭建,就不介紹了,我本身也在學習中。tomcat
後面會陸續給出利用Seam3 來實現一些基本的功能,像登陸,訪問權限,在JS中調用後臺代碼(Romting) 等等,我本身也在學習中,但願也對JEE6感興趣的朋友能多多交流。 有朋友在搭建工程遇到問題的,我提供一份搭建好的工程。安全