在学会用 Maven 之后,有一种要将所有项目都使用 Maven 管理的冲动,当然 Seam 项目也不例外。之前曾花过一天的时间,尝试将使用 EJB 的 Seam 项目使用 Maven 进行管理。结果很不理想,虽然理论上可行,但是项目结构过于复杂。除了要建立根项目外,还要在根项目下建立3个模块:分别是 EAR 模块、EJB 模块和 WAR 模块,而且在部署的时候老出错。没办法,使用 EJB 的 Seam 项目的包依赖关系太复杂了,而且 JBoss 使用起来也比 Tomcat 麻烦。同时,Maven 的 POM 文件写起来也很麻烦。所以,最后还是放弃了这个念头。
在那次不成功的尝试之后,我曾反思了一下。其实,对于使用了 EJB 的 Seam 项目而言,完全使用 Maven 并不是一个太好的选择。比较实际的做法是使用 Maven 管理依赖的类库,构建和部署则使用 Ant 来完成。不过,我的这个想法并没有实现。
最近,在看 Java EE 领域技术新变化的相关文章的时候,我发现自己犯了一个比较根本的问题,为什么 Seam 的项目一定要和 EJB 扯上关系。虽然 Seam 的一个最主要,也是最大的贡献就是很完美地将 JSF 和 EJB3 结合了在一起,但这并不意味着 Seam 项目就一定要用 EJB3 (这个问题其他人可能都看明白了,只有我比较愚钝)。其实 Seam 为 POJO 提供了很多 EJB3 的特性,这里我就不一一列举了,文档和《Seam in Action》那本书里都有。对于是否使用 EJB 这个问题,我的观点是先要了解 EJB 都能提供哪些 POJO 不能提供的特性,除非非常必要,否则不要使用 EJB。
仔细看看 Seam 提供的例子,有哪些非得要用 EJB3(对于这个问题,欢迎大家讨论)。至少 Booking 那个不用吧,Seam 里的那个 Hibernate 例子也使用了去掉 EJB 的 Booking 例子。
不过,在 Java EE 6 推出之后,使用 EJB 将变得更加简单。具体内容可以看我另一篇文章:《EJB 3.1 会给我们带来什么
》呵呵
说了这么多,该说正题了。去掉 EJB 的 Seam 项目很容易用 Maven 管理,不就是一个 WAR 项目嘛。DZone 上有一篇关于 Seam 与 Maven
的文章。不过这篇文章里提到的例子太简单,所以我自己拿 Seam 里的那个 Hibernate 例子为基础,试着用 Maven 管理。实际上很简单,基本上就是配置类库就行了。但是如果不做的话也不知道是简还是繁,毕竟有些东西实际做了才会发现。
具体内容没什么太多值得说的,我直接把代码放上来好了。
分享到:
相关推荐
jboss seam maven ant jdk
调了半天终于可以运行了留作备份资料 seam ejb jsf 自己留作资料备份
NULL 博文链接:https://nbaertuo.iteye.com/blog/309257
1.1 Apache Tomcat各版本 1.2 Apache Tomcat Versions 1.3 Java事务处理总结 1.4 JavaBean中使用JDBC方式进行事务处理 ...1.23 JSF+Seam框架学习心得 1.24 java jdbc驱动的四种类型 1.25 resource-ref元素
JBoss encore 工程和maven仓库,类似于Spring Roo的快速开发框架
maven仓库和cvs源码更新,JBoss encore 工程和maven仓库7.31
jBPM jars也可以在中央maven仓库中使用 (也可以在JBoss maven仓库中)。 如果您使用Maven,只需添加一个依赖关系pom.xml: <groupId>org.jbpm <artifactId>jbpm-test <version>7.3.0.Final 这与Gradle,Ivy...
Stitch是一个Maven插件,可简化JBoss Seam的开发。 Stitch可以处理Java类以生成符合Seam的CRUD接口。
Seam、Spring JSF 和 Play Framework 1 就有一个很酷的演示,它基于一个简单的 Hotel & Booking 预订系统。 我们决定在 . 该应用程序有一个简单的后端,通过 REST 公开几个端点。 该项目是从 虽然代码出奇的简单,但...
7.3 JBossSeam 7.4 Equinox 7.5 Hibernate 7.6 iBATIS 7.7 Lucene 7.8 Webkit 第8章 开源软件之服务器软件 8.1 ApacheHTTP服务器 8.2 Tomcat 8.3 Jetty 8.4 Geronimo 8.5 JBoss 8.6 GlassFish 8.7 MySQL 8.8 ...
7.3 jboss seam 89 7.4 equinox 91 7.5 hibernate 93 7.6 ibatis 95 7.7 lucene 97 7.8 webkit 99 第8章 开源软件之服务器软件 101 8.1 apache http服务器 101 8.2 tomcat 103 8.3 jetty 104 8.4 geronimo 105 8.5 ...