2007-11-28
JBoss Seam (POJO without EJB) 后台 + ExtJS 前台完整例子(一)
关键字: jboss seam extjs 实例JBoss Seam (POJO without EJB) 后台 + ExtJS 前台完整例子(一)
1. 引言
JBoss Seam 2.0 发行包中有一个例子程序,叫"Hotel Booking example"。这个例子在参考手册
(位于doc\reference目录)中有较详细的介绍(1.6 A complete Seam application: the
Hotel Booking example)。
转到发行包的“examples\hibernate2”子目录,可以找到用Hibernate POJO实现的版本。
我把这个例子进行了改造,并把改造后的项目源代码放到了Google Code上。
本文将主要介绍在Tomcat 5.x下安装并运行本项目的具体操作方法。
2.对原例子的改造要点
在原例子的基础上,主要做了下列改动:
(1)客户端取消JSF,改用ExtJS 2.0。
(2)客户端和服务器端通讯采用JSON和Seam Remoting两种方式。
(3)服务器端采用Seam的组件编程模式,实现了外观-服务-数据访问分层架构。
(4)提供了对服务层完整的单元测试程序。
保留并重新实现了原例子的全部功能。
3. 快速浏览
通过下面的链接,你可以查看本项目运行时的界面效果图:
http://code.google.com/p/seamextsample/downloads/list
4. 下载
项目文件以 war 形式存放在Google Code站点,你可以从这里下载。
下载后的文件,请改名为 seamextsample.war。
5. 安装到Tomcat 5.x
将 seamextsample.war 拷贝到 Tomcat 5.x 的子目录 webapps 中,即安装完毕。
6. 运行
启动 Tomcat,然后在浏览器地址栏输入:
http://localhost:8080/seamextsample
即可看到本项目的登录界面。
输入登录名 demo 和密码 demo,然后按回车键。你也可以自己注册新用户,然后登录。
7. 尚待解决的问题
在FireFox下运行本项目,会看到中文乱码,在IE下能正常显示中文。
8. 结语
通过这个项目的开发,对JBoss Seam 2.0有了真实的感受,将继续以此为基础打造新一代
J2EE开发平台。
本人有机会将陆续写文章介绍本项目中的一些设计思路。由于本人水平有限,项目中所用的一些
设计方法,肯定有不太合理之处,欢迎有兴趣的朋友,一起研究探讨,并提出宝贵意见。
附:下面是本系列所有文章的完整列表:
(1)下载示例项目并安装运行
(2)建立Eclipse开发环境
(3)熟悉项目中与JSF相关内容
(4)重新认识JS
(5)ExtJS之表单(Form)
(6)ExtJS之布局(Layout)
(7)ExtJS之网格(Grid)
(8)Java后台和前台的通讯机制
(9)Seam框架简化Java开发
(10)分层架构设计
(11)安全性
(12)单元测试
- 23:16
- 浏览 (4542)
- 评论 (17)
- 进入论坛
- 发布在 JBoss SEAM 圈子
- 相关推荐
评论
terryworld
2008-06-26
删掉el-api.jar,
包里带的这个文件与tomcat6自带的冲突
我在tomcat6下可以运行
包里带的这个文件与tomcat6自带的冲突
我在tomcat6下可以运行
xzs
2008-06-06
tomcat6.0直接报404错误!在jboss里面顺利运行
如果我的后台模型对象存在继承,聚合,关联,用json还能平滑顺利的在界面上显示我的模型对象吗?
如果我的后台模型对象存在继承,聚合,关联,用json还能平滑顺利的在界面上显示我的模型对象吗?
dingtao
2008-06-05
我用的就是 TOMCAT 5.5 JDK 1.5 的环境
robertlyc
2008-06-05
他那个例子要tomcat5.x
tomcat6.0会报错
tomcat6.0会报错
dingtao
2008-06-05
老大 ,根本就运行不了。 出一堆错误
exception
javax.servlet.ServletException: Servlet.init() for servlet Faces Servlet threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Thread.java:595)
root cause
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
javax.faces.webapp.FacesServlet.init(FacesServlet.java:142)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Thread.java:595)
exception
javax.servlet.ServletException: Servlet.init() for servlet Faces Servlet threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Thread.java:595)
root cause
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
javax.faces.webapp.FacesServlet.init(FacesServlet.java:142)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Thread.java:595)
kaki
2008-02-16
看楼楼主很多文章,还有在EXTJS.COM上的,获益匪浅。
fangzhouxing
2008-02-01
只有json部分通讯是我自己写的,其他还是使用Seam Remoting.
zjumty
2008-02-01
刚刚看了你的这个例子, 正好现在也在调查Seam和ExtJS整合的问题, 你的例子对我帮助很大. 但是Seam和ExtJS通讯的部分, 你好像是自己写的, 没有利用Seam的Remoting. 那么如果直接利用Seam的Remoting是不是更好一些呢, 在这方面你有没有什么经验呢?
webgame
2008-01-25
换成 5 就没问题了 看来是配置问题
webgame
2008-01-25
就是奇怪 web.xml 都没有配置 怎么回出现这个问题
我的环境是 tomcat6 会不会和这个有关系
我的环境是 tomcat6 会不会和这个有关系
fangzhouxing
2008-01-25
HSQLDB Timer 错误我没有遇到过,所以也不知道如何解决。
webgame
2008-01-25
在google 搜了HSQLDB Timer 并没有找到解决方案 能大概说说吗
fangzhouxing
2008-01-25
请用Google搜索“HSQLDB Timer”。
webgame
2008-01-25
Exception in thread "HSQLDB Timer @c26ede" java.lang.NullPointerException
fangzhouxing
2007-11-29
上载的文件不小心后缀搞错了,请把后缀.rar改为.war。
liubaojun
2007-11-29
下载之后发布进不了页面,提示错误
庄严
2007-11-29
很好,不过我点"logout"时出错脚本错误,在IE中:
行: 57
字符: 4
错误: 'Ext.get(...)' 为空或不是对象
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 39208 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最新评论
-
发现JavaScript中可以替代 ...
虽然效果一样.但更习惯于原始的写法.其实习惯了也一样.只是大众程序员们都不多习惯 ...
-- by ╭冷★雨╮ -
用 GlassFish v2 替换 Tom ...
怎么我在安装Glassfish执行 ant -f setup.xml 后,在bi ...
-- by goodfifa07 -
用 GlassFish v2 替换 Tom ...
terranhao 写道问题是myeclipse不支持richfaces的标签, ...
-- by gml520 -
用 GlassFish v2 替换 Tom ...
引用我咋在 windowsxp 里 建不了 .reload 的文件.. 命名不合 ...
-- by fangzhouxing -
用 GlassFish v2 替换 Tom ...
..... 我咋在 windowsxp 里 建不了 .reload 的文件.. ...
-- by zdllionheart






评论排行榜