- 浏览: 123378 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
sunxiangfei91:
引用[*][url][/url]
Spring使用MimeMessageHelper -
lhb3015:
lz, Coder 这个类的代码呢??
Java RSA算法加密 -
b_lee:
顶顶顶 加两个字,再顶
Facelets是JSF更好的外衣 -
zhuqing08:
楼主 Coder 这个类的代码呢?
Java RSA算法加密 -
evajhhot:
貌似不行 有异常
BlazeDS 与Spring集成指南之一
Seam基本配置
首先,让我们看看每当将Seam和JSF一起使用时所需要的基本配置。
将Seam与JSF和servlet容器集成
当然,你需要一个Faces Servlet!
<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>
(你可以调整URL模式以适合你的需要。)
另外,Seam需要在你的 web.xml 文件中有以下项:
<listener>
<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
</listener>
这个listener负责引导Seam,以及销毁会话和应用程序。
有些JSF实现在服务器端状态保持方面实现得很差,它们会与Seam的对话传播发生冲突。 如果你在表单提交时遇到了对话传播的问题,就尝试着切换到客户端状态保持。在你的 web.xml 中需要有这些:
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
使用Facelets
如果你愿意听从我们的建议,使用Facelets代替JSP,就需要在 faces-config.xml 中增加以下几行:
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>
并将以下几行加到 web.xml 中:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
Seam Resource Servlet
Seam Resource Servlet提供资源,这些资源被Seam Remoting、captchas和一些JSF UI控件所使用。 配置Seam Resource Servlet时,需要在 web.xml 中有以下项:
<servlet>
<servlet-name>Seam Resource Servlet</servlet-name>
<servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Seam Resource Servlet</servlet-name>
<url-pattern>/seam/resource/*</url-pattern>
</servlet-mapping>
Seam Servlet过滤器
Seam的基本操作不需要任何Servlet过滤器。可是,有些功能依赖于过滤器的使用。 为了让一切对你来说更容易,Seam让你可以增加和配置Servlet过滤器,就像你配置其他内建Seam组件一样。 为了利用这个特性,我们必须首先在 web.xml 中装载一个主过滤器:
<filter>
<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Seam Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Seam主过滤器 必须 是在 web.xml 中指定的第一个过滤器。这样就能保证它首先运行。
为了取消内建的过滤器,你可以在一个特定的过滤器中设置 disabled="true"
增加主过滤器使得以下内建过滤器可用。
异常处理
这个过滤器在 pages.xml 中提供异常映射功能(几乎所有的应用程序都需要这个)。 当未捕获的异常发生时,它也负责回滚未提交的事务。 (根据Java EE规范,Web容器应该能自动做到这一点,但我们发现在所有应用程序服务器中,都不支持这一行为。 当然在普通Servlet引擎如Tomcat中,它并不是必需的。)
默认情况下,异常处理过滤器将处理所有请求,但是这种行为可以通过增加一个 <web:exception-filter> 项到 components.xml 文件来进行调整,如下面的例子所示:
<components xmlns="http://jboss.com/products/seam/components"
xmlns:web="http://jboss.com/products/seam/web">
<web:exception-filter url-pattern="*.seam"/>
</components>
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。
通过重定向传播对话
这个过滤器允许Seam通过浏览器重定向来传播对话上下文。 它拦截任何浏览器重定向,并增加一个指定Seam对话标识符的请求参数。
默认情况下,重定向过滤器将处理所有的请求,但这个行为也可以在 components.xml 文件中进行调整:
<web:redirect-filter url-pattern="*.seam"/>
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。
多重表单提交
当使用Seam文件上传JSF控件时,这个特性很有必要。它依据多重表单/数据规范(RFC-2388)检测并处理多重表单请求。 要覆盖默认设置,向 components.xml 中增加以下项:
<web:multipart-filter create-temp-files="true"
max-request-size="1000000"
url-pattern="*.seam"/>
create-temp-files — 如果设置为 true,加载的文件被写到临时文件中(而不是保留在内存中)。 如果期望加载大文件,这个设置可能是一个很重要的考虑因素。默认的设置是 false。
max-request-size — 如果加载请求中的文件大小(由读取请求中 Content-Length 头的的值决定)超过这个值,该请求将被中止。默认设置是0(大小不限)。
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。
字符编码
设置被提交的表单数据的字符编码
默认没有装载这个过滤器,它需要由 components.xml 中的一个项来启用:
<web:character-encoding-filter encoding="UTF-16"
override-client="true"
url-pattern="*.seam"/>
encoding — 要使用的编码
override-client — 如果它被设置为 true,则请求中的编码将被设置为 encoding 指定的任何值,而不管请求中是否已经指定一种编码。 如果设置为 false,当请求中没有指定任何一种编码时,才会设置请求编码。默认设置是 false
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。
RichFaces
如果在你的工程中使用了Ajax4jsf,Seam会确保在装载其他所有内建过滤器之前,为你装载Ajax4jsf过滤器。 你不必亲自在 web.xml 中装载Ajax4jsf过滤器。
只有当你的工程中有RichFaces jar包时,才会安装RichFaces Ajax过滤器。
为了覆盖默认的设置,要在 components.xml 中增加以下项。这些选项与RichFaces开发者指南中指定的一样:
<web:ajax4jsf-filter force-parser="true"
enable-cache="true"
log4j-init-file="custom-log4j.xml"
url-pattern="*.seam"/>
force-parser — 强制Richfaces的XMl语法检验器去验证所有的JSF页面。 如果为 false,则只有AJAX响应才被验证并被转换成合适的XML。 设置force-parser 为 false 可以提高性能,但会在AJAX更新时提供可视化的工件。
enable-cache — 启用框架生成资源的缓存(如,JavaScript,CSS,Images等)。 当开发定制的JavaScript或CSS时,设置为true以阻止浏览器缓存这些资源。
log4j-init-file — 被用于安装 per-application 记录。 应该提供一个相对于web程序上下文的log4j.xml配置文件路径。
url-pattern — 用来指定过滤哪些请求,默认是所有请求。
Identity Logging
这个过滤器将被验证的用户名添加到log4j映射诊断上下文中,以便如果喜欢,可能通过在模式中添加%X{username},使它能够被包含在格式化过的日志输出中。
默认情况下,记录过虑器会处理所有请求,但是这一行为可以通过在 components.xml 中添加 <web:logging-filter> 项来进行调整,如下面的例子所示:
<components xmlns="http://jboss.com/products/seam/components"
xmlns:web="http://jboss.com/products/seam/web">
<web:logging-filter url-pattern="*.seam"/>
</components>
url-pattern — Used to specify which requests the filter is active for. The default is all requests. url-pattern —用来指定该过滤器是为哪些请求而激活的。默认是所有请求。
定制Servlet的上下文管理
直接发送到某些Servlet而不是JSF Servlet的请求不在JSF生命周期中被处理,因此Seam提供了一个Servlet过滤器供其他的Servlet使用,这些Servlet需要访问Seam组件。
这个过滤器允许定制的Servlet与Seam上下文交互。它在每个请求的开始设立Seam上下文,并在请求结束时卸掉它们。 你必须确保这个过滤器 永远不 被用于JSF FacesServlet。 Seam在JSF请求中为上下文管理使用阶段监听器(phase listener)。
默认没有装载这个过滤器,它需要由 components.xml 中的一个项来启用:
<web:context-filter url-pattern="/media/*"/>
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。 如果上下文过滤器的URL模式已指定,则将启用该过滤器(除非明确取消)。
上下文过滤器期望在名称为 conversationId 的请求参数中,找到所有对话上下文的对话id。 你要负责确保对话ID在请求中被发送。
你还需要负责确保将所有新的对话id传送回客户端。Seam将对话id作为内建的 conversation 组件的一个属性暴露出来。
增加定制的过滤器
Seam能为你装载过滤器,允许你指定过滤器要放在过滤器链中的 什么位置 (如果你在 web.xml 中指定自己的过滤器,servlet规范就没有提供一个定义良好的顺序)。 只需要给你的Seam组件加上 @Filter 注解(你的Seam组件必须实现 javax.servlet.Filter)。
@Startup
@Scope(APPLICATION)
@Name("org.jboss.seam.web.multipartFilter")
@BypassInterceptors
@Filter(within="org.jboss.seam.web.ajax4jsfFilter")
public class MultipartFilter extends AbstractFilter {
增加 @Startup 注解意味着该组件在Seam启动时有效;双向注入(bijection)在这里无效(@BypassInterceptors); 并且该过滤器在链中应该比Ajax4jsf过滤器(@Filter(within="org.jboss.seam.web.ajax4jsfFilter"))更靠后一些。
首先,让我们看看每当将Seam和JSF一起使用时所需要的基本配置。
将Seam与JSF和servlet容器集成
当然,你需要一个Faces Servlet!
<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>
(你可以调整URL模式以适合你的需要。)
另外,Seam需要在你的 web.xml 文件中有以下项:
<listener>
<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
</listener>
这个listener负责引导Seam,以及销毁会话和应用程序。
有些JSF实现在服务器端状态保持方面实现得很差,它们会与Seam的对话传播发生冲突。 如果你在表单提交时遇到了对话传播的问题,就尝试着切换到客户端状态保持。在你的 web.xml 中需要有这些:
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
使用Facelets
如果你愿意听从我们的建议,使用Facelets代替JSP,就需要在 faces-config.xml 中增加以下几行:
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>
并将以下几行加到 web.xml 中:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
Seam Resource Servlet
Seam Resource Servlet提供资源,这些资源被Seam Remoting、captchas和一些JSF UI控件所使用。 配置Seam Resource Servlet时,需要在 web.xml 中有以下项:
<servlet>
<servlet-name>Seam Resource Servlet</servlet-name>
<servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Seam Resource Servlet</servlet-name>
<url-pattern>/seam/resource/*</url-pattern>
</servlet-mapping>
Seam Servlet过滤器
Seam的基本操作不需要任何Servlet过滤器。可是,有些功能依赖于过滤器的使用。 为了让一切对你来说更容易,Seam让你可以增加和配置Servlet过滤器,就像你配置其他内建Seam组件一样。 为了利用这个特性,我们必须首先在 web.xml 中装载一个主过滤器:
<filter>
<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Seam Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Seam主过滤器 必须 是在 web.xml 中指定的第一个过滤器。这样就能保证它首先运行。
为了取消内建的过滤器,你可以在一个特定的过滤器中设置 disabled="true"
增加主过滤器使得以下内建过滤器可用。
异常处理
这个过滤器在 pages.xml 中提供异常映射功能(几乎所有的应用程序都需要这个)。 当未捕获的异常发生时,它也负责回滚未提交的事务。 (根据Java EE规范,Web容器应该能自动做到这一点,但我们发现在所有应用程序服务器中,都不支持这一行为。 当然在普通Servlet引擎如Tomcat中,它并不是必需的。)
默认情况下,异常处理过滤器将处理所有请求,但是这种行为可以通过增加一个 <web:exception-filter> 项到 components.xml 文件来进行调整,如下面的例子所示:
<components xmlns="http://jboss.com/products/seam/components"
xmlns:web="http://jboss.com/products/seam/web">
<web:exception-filter url-pattern="*.seam"/>
</components>
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。
通过重定向传播对话
这个过滤器允许Seam通过浏览器重定向来传播对话上下文。 它拦截任何浏览器重定向,并增加一个指定Seam对话标识符的请求参数。
默认情况下,重定向过滤器将处理所有的请求,但这个行为也可以在 components.xml 文件中进行调整:
<web:redirect-filter url-pattern="*.seam"/>
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。
多重表单提交
当使用Seam文件上传JSF控件时,这个特性很有必要。它依据多重表单/数据规范(RFC-2388)检测并处理多重表单请求。 要覆盖默认设置,向 components.xml 中增加以下项:
<web:multipart-filter create-temp-files="true"
max-request-size="1000000"
url-pattern="*.seam"/>
create-temp-files — 如果设置为 true,加载的文件被写到临时文件中(而不是保留在内存中)。 如果期望加载大文件,这个设置可能是一个很重要的考虑因素。默认的设置是 false。
max-request-size — 如果加载请求中的文件大小(由读取请求中 Content-Length 头的的值决定)超过这个值,该请求将被中止。默认设置是0(大小不限)。
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。
字符编码
设置被提交的表单数据的字符编码
默认没有装载这个过滤器,它需要由 components.xml 中的一个项来启用:
<web:character-encoding-filter encoding="UTF-16"
override-client="true"
url-pattern="*.seam"/>
encoding — 要使用的编码
override-client — 如果它被设置为 true,则请求中的编码将被设置为 encoding 指定的任何值,而不管请求中是否已经指定一种编码。 如果设置为 false,当请求中没有指定任何一种编码时,才会设置请求编码。默认设置是 false
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。
RichFaces
如果在你的工程中使用了Ajax4jsf,Seam会确保在装载其他所有内建过滤器之前,为你装载Ajax4jsf过滤器。 你不必亲自在 web.xml 中装载Ajax4jsf过滤器。
只有当你的工程中有RichFaces jar包时,才会安装RichFaces Ajax过滤器。
为了覆盖默认的设置,要在 components.xml 中增加以下项。这些选项与RichFaces开发者指南中指定的一样:
<web:ajax4jsf-filter force-parser="true"
enable-cache="true"
log4j-init-file="custom-log4j.xml"
url-pattern="*.seam"/>
force-parser — 强制Richfaces的XMl语法检验器去验证所有的JSF页面。 如果为 false,则只有AJAX响应才被验证并被转换成合适的XML。 设置force-parser 为 false 可以提高性能,但会在AJAX更新时提供可视化的工件。
enable-cache — 启用框架生成资源的缓存(如,JavaScript,CSS,Images等)。 当开发定制的JavaScript或CSS时,设置为true以阻止浏览器缓存这些资源。
log4j-init-file — 被用于安装 per-application 记录。 应该提供一个相对于web程序上下文的log4j.xml配置文件路径。
url-pattern — 用来指定过滤哪些请求,默认是所有请求。
Identity Logging
这个过滤器将被验证的用户名添加到log4j映射诊断上下文中,以便如果喜欢,可能通过在模式中添加%X{username},使它能够被包含在格式化过的日志输出中。
默认情况下,记录过虑器会处理所有请求,但是这一行为可以通过在 components.xml 中添加 <web:logging-filter> 项来进行调整,如下面的例子所示:
<components xmlns="http://jboss.com/products/seam/components"
xmlns:web="http://jboss.com/products/seam/web">
<web:logging-filter url-pattern="*.seam"/>
</components>
url-pattern — Used to specify which requests the filter is active for. The default is all requests. url-pattern —用来指定该过滤器是为哪些请求而激活的。默认是所有请求。
定制Servlet的上下文管理
直接发送到某些Servlet而不是JSF Servlet的请求不在JSF生命周期中被处理,因此Seam提供了一个Servlet过滤器供其他的Servlet使用,这些Servlet需要访问Seam组件。
这个过滤器允许定制的Servlet与Seam上下文交互。它在每个请求的开始设立Seam上下文,并在请求结束时卸掉它们。 你必须确保这个过滤器 永远不 被用于JSF FacesServlet。 Seam在JSF请求中为上下文管理使用阶段监听器(phase listener)。
默认没有装载这个过滤器,它需要由 components.xml 中的一个项来启用:
<web:context-filter url-pattern="/media/*"/>
url-pattern — 被用来指定过滤哪些请求,默认是所有请求。 如果上下文过滤器的URL模式已指定,则将启用该过滤器(除非明确取消)。
上下文过滤器期望在名称为 conversationId 的请求参数中,找到所有对话上下文的对话id。 你要负责确保对话ID在请求中被发送。
你还需要负责确保将所有新的对话id传送回客户端。Seam将对话id作为内建的 conversation 组件的一个属性暴露出来。
增加定制的过滤器
Seam能为你装载过滤器,允许你指定过滤器要放在过滤器链中的 什么位置 (如果你在 web.xml 中指定自己的过滤器,servlet规范就没有提供一个定义良好的顺序)。 只需要给你的Seam组件加上 @Filter 注解(你的Seam组件必须实现 javax.servlet.Filter)。
@Startup
@Scope(APPLICATION)
@Name("org.jboss.seam.web.multipartFilter")
@BypassInterceptors
@Filter(within="org.jboss.seam.web.ajax4jsfFilter")
public class MultipartFilter extends AbstractFilter {
增加 @Startup 注解意味着该组件在Seam启动时有效;双向注入(bijection)在这里无效(@BypassInterceptors); 并且该过滤器在链中应该比Ajax4jsf过滤器(@Filter(within="org.jboss.seam.web.ajax4jsfFilter"))更靠后一些。
发表评论
-
Seam管理的事务
2010-01-28 15:22 1201EJB会话Bean有声明式事务 ... -
配置Seam组件之二
2010-01-16 20:30 949如果你有大量的组件需要在XML中进行配置,那么就很有必要将 c ... -
配置Seam组件之一
2010-01-16 20:29 988Seam所崇尚的哲学是XML配 ... -
Seam上下文
2009-12-25 15:23 1023Seam上下文是由框架创建 ... -
JSF和Spring的集成之二
2009-12-23 17:55 953使用框架 1 介绍 这个 ... -
JSF和Spring的集成之一
2009-12-19 20:45 774JSF和Spring集成的资料比较少,原理是获得彼此的上下文引 ... -
Seam配置和Seam应用程序打包之二
2009-11-28 09:15 1296将Seam与你的EJB容器集成 我们需要将 SeamInter ... -
用Java Server Faces建立交互式WEB站点
2009-11-07 10:12 646步骤1:开发组件的Java ... -
集成JSF与BEEHIVE PAGE FLOW之二
2009-10-10 21:54 1041从后台bean访问当前页面 ... -
集成JSF与BEEHIVE PAGE FLOW之一
2009-10-07 23:13 1003JSF对通过关联组件和事件来构建页面而说是非常棒的,但是,与所 ... -
借助Ajax自动保存JSF表单之二
2009-09-19 12:53 1219创建和发送 Ajax 请求 submitFormData() ... -
借助 Ajax 自动保存 JSF 表单之一
2009-09-13 11:00 1107在客户端获取表单数据 本节将给出一个 JSF 表单,其数据通 ... -
基于AJAX和JSF打造丰富的互联网组件之Weblets篇
2009-09-04 15:08 948为了在JSF开发中联合使用AJAX和Mozilla XUL技术 ... -
JSF 2.0的一个AJAX例子
2009-08-21 10:49 2424首先创建一个ManagedBean用来记录我们提交按钮的数量。 ... -
JSF2.0的页面模版化
2009-08-15 10:28 1739本篇介绍可以与Tapestry相媲美的页面模版化定义。 我 ... -
JSF2.0中自定义组件模型例子
2009-08-11 07:59 1339在本篇介绍中,我们开始接触JSF2.0纳为标准的最重要的特性之 ... -
Java Server Faces 2.0重要新功能以及相关改进简介
2009-08-01 10:00 1091JSF 2.0的最终规范也已经发布了有近一个月了,在近期试 ... -
JSF2: Ajax事件和错误
2009-07-09 09:13 1096JSF2的Ajax支持包含一个 ... -
Facelets是JSF更好的外衣
2009-06-16 15:53 1590是由 Sun 公司在 dev.java.net 上的一个开源项 ... -
JSF里自订验证器
2009-06-06 16:52 938您可以自订自己的验证器,所需要的是实作javax.faces. ...
相关推荐
以下是对配置Seam和打包Seam应用程序的关键知识点的详细解释: ### 1. 基本Seam配置 #### 1.1.1. 集成Seam与JSF和Servlet容器 Seam与JSF的集成是其核心功能之一。这涉及到在web.xml文件中配置Seam Filter和Seam ...
- **将应用部署为 EAR**:介绍了如何将 Seam 应用程序打包成 EAR 文件进行部署。 - **Seam 与增量热部署**:介绍了如何利用 Seam 的增量热部署功能提高开发效率。 - **在 Jboss4.0 下使用 Seam**:这部分介绍了如何...
而"MyMessages-ear"是一个Enterprise Archive文件,它是Java EE应用的打包格式,通常包含了一个应用的所有组件,如EJB JAR、WAR(Web应用程序)和其他资源文件。这个EAR文件可以被部署到Java EE服务器上,如JBOSS或...
8. **RESTful的Seam应用程序:Blog示例**:通过一个博客系统,演示了如何使用Seam构建RESTful风格的服务。 - **使用“拉”风格的MVC**:解释了如何通过Seam实现客户端发起请求、服务器响应数据的经典MVC模式。 - *...
`components.xml` 文件是Seam应用的核心配置文件之一,它定义了Seam组件的元数据信息,包括组件的名称、范围、拦截器等。 **1.2.1.5 Web部署描述文件:web.xml** `web.xml` 文件是Web应用的部署描述文件,它定义了...
#### 四、配置Seam 进入Seam安装目录`C:\jboss-seam-2.2.1.CR3\jboss-seam-2.2.1.CR3`,修改`build.properties`文件,添加一行`jboss.home=C:\\jboss-5.1.0.GA-jdk6\\jboss-5.1.0.GA`。 #### 五、部署示例程序 1....
- **部署为EAR包**: 演示了如何将Seam应用打包并部署到生产环境。 - **热部署**: 介绍Seam支持的热部署特性,有助于提升开发效率。 #### 三、上下文相关的组件模型 ##### Seam上下文层次 - **无状态上下文**:...
最后,运行 `seam explode` 命令,将生成的应用程序打包并部署到指定的 JBoss 应用服务器上。这个命令会将 Maven 构建的结果转换成 JBoss 可以直接运行的格式。 在整个过程中,Seam-gen 的目标是减少手动配置和...
##### 1.10 RESTful 的Seam应用程序:Blog范例 - **使用“拉”风格的MVC**:实现了基于 RESTful API 的博客系统。 - **可收藏的搜索结果页面**:允许用户收藏和分享搜索结果。 - **使用“推”风格的MVC**:展示了...
"MyRegistration-ear"则是一个EAR(Enterprise Application Archive)文件,它是Java EE应用程序的打包形式,包括了EJB模块、Web模块以及其他资源。 **创建和运行Seam工程** 1. 首先,你需要在Eclipse中安装Seam...
1.6. 一个完整的Seam 应用程序:宾馆预订范例............................................................................................................ 45 1.6.1. 介绍......................................
本篇文章将深入探讨如何使用Maven来管理Seam项目,一个基于Java EE的轻量级框架,专为富互联网应用程序(RIA)设计。 Seam项目是一个集成框架,它将JSF、EJB、CDI、JPA等Java EE技术紧密融合,提供了丰富的功能和...
- **部署方式**:这部分介绍了如何将Seam应用打包为Enterprise Archive (EAR) 文件进行部署。 通过上述内容的详细解读,我们不仅能够了解Seam框架的核心特性和应用场景,还能够学习如何通过具体的示例项目进行实践...
- **WAR部署**:当项目构建完成后,会自动生成一个WAR包(Web Application Archive),这是Java Web应用程序的标准打包格式。本节解释了WAR包的结构及其包含的文件和目录。 - **EAR部署**:与WAR不同,EAR...
Seam 2.1 是一款强大的企业级 Java 开发框架,它为开发人员提供了一种简单而高效的方式来构建复杂的 Web 应用程序。相较于 Seam 2.0 版本,Seam 2.1 在权限验证方面进行了大量的增强,引入了更多的功能和改进,以...
- **部署EAR包**:讲解了如何将Seam应用打包成EAR文件进行部署。 - **增量热部署**:讨论了如何在开发过程中使用增量热部署功能,提高开发效率。 - **与JBoss 4.0集成**:提供了与旧版JBoss服务器集成的步骤。 综上...
通过以上步骤,开发者可以快速搭建起一个基于Seam的应用程序骨架,然后根据实际需求进行扩展和定制。 综上所述,JBoss Seam为开发者提供了一个强大的平台,可以帮助他们轻松地构建复杂的企业级应用程序。无论是简单...
- **在 JBoss AS 上运行示例**:这是最直接的方式之一,可以快速验证环境配置是否正确,并且熟悉 Seam 在 JBoss AS 上的运行方式。 - **在 Tomcat 服务器上运行示例**:如果开发者已经熟悉了 Tomcat,那么这种方式...
- **运行示例测试:** 解释了如何使用自动化测试工具验证Seam应用程序的功能。 2. **第一个Seam应用:注册示例** - **理解代码:** 分析了用于实现用户注册功能的核心代码片段。 - **工作原理:** 解释了Seam是...