了解下JAVA的JBossSeam进修系列之四:第二个例子
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。前次利用Seam主动天生了一个CRUD的例子,厥后想仍是本人自力更生做一个例子看看,因而入手下手下手。
起首利用JBossTools工具天生项目,在天生项目标导游中,假如项目范例选择ear,则会天生四个项目,分离对应war、ear、ejb、test,以为如许太甚烦琐,仍是选择war范例,又想要不利用tomcat作为运转服务器吧,由于JBoss也不太熟习。没想到这一试倒试出成绩来了,假如完整利用导游天生项目,选择tomcat作为运转服务器,则项目基本没法运转起来,老是提醒短少这个jar,谁人jar。好,又换回JBoss,没成绩了。细心看了一下,本来在主动天生项目标WebContent/WEB-INF/lib目次中,只要也许十几个jar,连Hibernate的jar都没有,而在JBoss的Server/default/lib目次下则甚么jar都有,怪不能不堕落。
第一个教导:仍是先利用JBoss作为运转情况,等全部Seam都弄熟了,再配一个Tomcat的运转情况。
持续,将本来项目中的一个通用DAO和一个UserService拷贝过去,代码以下,启动服务器报错。分离为以下毛病信息:
第二个毛病办理:Causedby:java.lang.IllegalArgumentException:@PersistenceContextmayonlybeusedonsessionbeanormessagedrivenbeancomponents:genericDao
既然提醒@PersistenceContext只能用在SessionBean中,由于本来的代码是利用的Spring框架,想了好长工夫,在WebContent/WEB-INF/component.xml中看到这么一段,那末是否是经由过程@In来注进entityManager呢,修正@PersistenceContext为@In,编纂器主动提醒没有发明称号为em的Component(这点仿佛不错),因而再修正为@In("entityManager"),重启服务器,该成绩办理。
<persistence:managed-persistence-contextname="entityManager"auto-create="true"entity-manager-factory="#{testEntityManagerFactory}"/>
第三个毛病办理:Causedbyorg.jboss.seam.RequiredExceptionwithmessage:"@Inattributerequiresnon-nullvalue:userService.genericDao"
将UserService中的@In修正为@In(create=true,required=true)办理此成绩。
办理上述几个成绩后,本人的例子终究运转起来了:-)
下一篇关于SeamInAction中对JSF的先容及Seam怎样加强JSF。
-------------------------------------------------------------------------------------------------
<p>
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
页:
[1]