JiveJdon Community Forums
在线125人 J道首页 | 论坛首页 | 培训咨询 | 开源框架 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 14 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
极度深蓝

发表文章: 9
注册时间: 2004年09月05日 10:55
用 JBuiler 玩转 petstore 发表: 2004年10月18日 09:21 回复
开发j2ee应用一直用Jbuiler(两个月前因工作关系开始用eclipse了),仓促开发了所谓数千万的项目(政府的),在banq的指点下,才突然发现petstore中有很多可借鉴的东西。

而Jbuiler下玩petstore不是件很容易的事,本人在暑假期间花了三天时间解决了这个问题,愿与大家共享。本文只包括EJB部分。petstore的版本是bea提供的,因为我用的是weblogic,带来的一个附加的优点是学习了EJB的继承。

首先从以下地址下载petstore源码。
ftp://edownload:BUY_ME@ftpna2.bea.com/pub/downloads/petstore_1.3.1_02_bea.zip
0.按JBuilder标准拷贝文件至src目录
1.package com.sun.j2ee.blueprints.waf.view.taglibs.smart;
开始位置在com.sun.j2ee.bluprints.taglibs.smart,改。
2.新建petstore Web App,自然引入原有的Web pacakage
3.配好pointbase数据源:Enterprise Setup--Database Poilet(URL中要注意去掉jdbc:)--JBuiler中配数据源(一直不能看到table,不知何原因。重启后没反应,删除jndi-definations.xml后,又乱改了一下密码,refresh才行。)
4.可以开始import EJB了,import所有带EJB子目录下的EJB。注意!primary key class手工写为java.lang.String报错:Error Parsing EJB file: Source file not found for class: null。是指的String类找不到!麻烦!而写为com.sun.j2ee.blueprint.xxx.xxPK!也出错:包不对:com.sun.j2ee.blueprint.xxx.String。改为:com.sun.j2ee.blueprint.xxx.WeblogicxxPK。又出错!
"estore.jar": Unable to load a class specified in your EJB-jar.xml: Unable to load Primary Key class: 'String'. Possible causes: 1: The Primary Key class is a Java Language Primitive; this is not allowed. 2: If the Primary Key is a Compound Key, the Compound Primary Key class is not in the JAR file being compiled. 3: The classpath is incorrect.
此问题最后手工改:petstore.ejbgrpx中的<primarykey>java.lang.String</primarykey>解决。
注意:WeblogicXXXEJB的Inheritence选项中指定EJB的父类。引完后必须手工选择Table,Table Schema要把后缀EJB去掉,不然EJB-QL语句会出错。手工选择对应数据库的column,不然会报错:ejb-jar.xml中的cmp-field必须在weblogic-rdbms-jar中有对应元素。
另外,CustomerEJB中account, profile都选对应的field为account_primarykey, profile_primarykey而不是同名的field!
5.一路顺利,但OPCAdminFacadeEJB报告名称冲突。原因是建立了错误的EJB,找到那个打了叉的EJB视图。
6.EJB-QL书写。找到Primiry-key之外的方法,搜索EJB-jar.xml中包括EJB名称的文件(有很多EJB-jar文件)。拷贝相应的EJB-ql语句。
7.ejbCreat方法必须返回primary-key类型的值。此问题的解决办法是在Local Home Interface中定义主键时,使用(Object key),JBuiler有时会自动改,再改回来!
8.把WeblogicXXEJB的primarykey的Integer类型改为String类型,否则会说主键描述和定义的不一样。不能改父类的定义,只能这么改了,不知有无副作用。
9.console-security-user中把admin等用户的用户名改为petstore,以便登录
10.
(1)JMS stores
MyJMS File Store, JMSFileStore
MyJMS File Store Persist, P_JMSFileStore
(2)JMS Server
MyJMS Server
注意选择Persistent Store, paging store
(3)Connection Factorys
jms/opc/QueueConnectionFactory jms/opc/QueueConnectionFactory n/a 4 0 0
jms/petstore/QueueConnectionFactory jms/petstore/QueueConnectionFactory n/a 4 0 0
jms/supplier/QueueConnectionFactory jms/supplier/QueueConnectionFactory n/a 4 0 0
jms/supplier/TopicConnectionFactory jms/supplier/TopicConnectionFactory n/a 4 0 0
Weblogic default connection factory:weblogic.jms.ConnectFactory
(4)JMS Server Destinction
//jms/opc/MailCompletedOrderQueue JMSQueue jms/opc/MailCompletedOrderQueue n/a default 0
//jms/opc/MailOrderApprovalQueue JMSQueue jms/opc/MailOrderApprovalQueue n/a default 0
//jms/opc/MailQueue JMSQueue jms/opc/MailQueue n/a default 0
//jms/opc/OrderApprovalQueue JMSQueue jms/opc/OrderApprovalQueue n/a default 0
jms/opc/OrderQueue JMSQueue jms/opc/OrderQueue n/a default 0
jms/petstore/AsyncSenderQueue JMSQueue jms/petstore/AsyncSenderQueue n/a default 0
//jms/supplier/PurchaseOrderQueue JMSQueue jms/supplier/PurchaseOrderQueue n/a default 0
//jms/opc/InvoiceTopic JMSTopic jms/opc/InvoiceTopic n/a default 0
//jms/opc/MailInvoiceTopic JMSTopic jms/opc/MailInvoiceTopic n/a default 0
11.mdb
it's so strange:mailinvoicetopic and invoicetopic no correcpondding conncetion factory,
i use jms/supplier/TopicConnectionFactory
12.
[EJB:011031]The Entity EJB requires the table: MANAGEREJB to be accessible. Please ensure that this table exists and is accessible.
更改weblogic-cmp-rdbms.jar中的所有table名,前面加上secame名:PETSTORE
13.如果数据库中没有对应field,则persistence选false即可。
WeblogicXXXEJB中的primaryKey field没有值,参照源码中的weblogic-cmp-rdbms.jar改为primaryKey。

我的联系方法: johnwoo13 at sohu.com,希望能和同道中人多多交流!
banq

发表文章: 8929
注册时间: 2002年08月03日 17:08
Re: 用 JBuiler 玩转 petstore 发表: 2004年10月18日 14:09 回复
非常好的经验,介绍两篇台湾文章连接:

http://www.javatwo.net/JavaPaper/Petstore_Trace.pdf
http://www.javatwo.net/JavaPaper/Petstore_Trace-2-Model.pdf
zdbj2ee

发表文章: 44
注册时间: 2003年08月29日 09:14
Re: 用 JBuiler 玩转 petstore 发表: 2004年10月22日 08:17 回复
petstore设计和编码本身就是一个败笔.如果程序都像这样写没几个能用的
我想软件开发这东西,还是应该更脚踏实地一点.
极度深蓝

发表文章: 9
注册时间: 2004年09月05日 10:55
Re: 用 JBuiler 玩转 petstore 发表: 2004年10月25日 10:23 回复
:petstore设计和编码本身就是一个败笔.如果程序都像这样写没几个能用的
愿闻其详
:我想软件开发这东西,还是应该更脚踏实地一点.
这话本身不错啊,但没让你程序都像petstore这样写啊,如果从实用的角度,petstore无疑是过度设计的。但你难道不知道sun的初衷吗?

btw:看了你以前的贴子,sybase下jdbc我是很有经验的,不知您还有问题没有,元数据问题,中文问题,有的话我可以帮忙:),我们以前开发这个项目时,有的问题技术支持也搞不定,后来是自己试出来的。sybase低版本对jdbc支持不太好。
zdbj2ee

发表文章: 44
注册时间: 2003年08月29日 09:14
Re: 用 JBuiler 玩转 petstore 发表: 2004年10月28日 08:24 回复
软件开发应以实用为主,得出自已项目的模式,pestore是有几个很好的设计模型,但在代码方面问题很多,例如一些异常的处理和代码的复用,都有问题,我认为sun的这个例子不是很成功
banq

发表文章: 8929
注册时间: 2002年08月03日 17:08
Re: 用 JBuiler 玩转 petstore 发表: 2004年11月02日 09:39 回复
zdbj2ee 说得有一些道理,Petstore不是完美的,这个问题很早以前已经争论过,正如zdbJ2EE所说,其中有一些优点可以学习。

在我的《Java实用系统开发指南》最后一章相当于改进了,以一种实际的角度来做Petstore。

对于初学者,如果你能够发现Petstore的问题,带着批判的眼光去看,估计会提高不少水平,这是我的体会。


xucg

发表文章: 8
注册时间: 2004年08月18日 11:04
Re: 用 JBuiler 玩转 petstore 发表: 2004年11月03日 10:35 回复
我是j2ee的初学者,搞懂了EJB的基本原理,作了几个例子,想学学petstore
这篇文章写的好晦涩,如(0.按JBuilder标准拷贝文件至src目录)等
读不懂,怎么办呀
xucg

发表文章: 8
注册时间: 2004年08月18日 11:04
Re: 用 JBuiler 玩转 petstore 发表: 2004年11月03日 11:06 回复
这一步步的我都看不懂
咋办呀,太菜!
xucg

发表文章: 8
注册时间: 2004年08月18日 11:04
Re: 用 JBuiler 玩转 petstore 发表: 2004年11月03日 15:19 回复
我又访问了一些国外的网站
也新建了工程引入源文件和包
我用的是weblogic8.1和petstore_1.3.1_02_bea
结果编译错误一大堆
请值教
极度深蓝

发表文章: 9
注册时间: 2004年09月05日 10:55
Re: 用 JBuiler 玩转 petstore 发表: 2004年11月03日 16:05 回复
To xucg

按jbuiler标准拷贝文件至src目录
――就是我们一般用jbuiler做项目时,没有在根目录下分EJB,web什么的,而是在后面几层分,不然jbuiler会不支持。
――如果困难大多,还是先自己做几个小例子,比如从数据库中查数据显示出来什么的:)
xucg

发表文章: 8
注册时间: 2004年08月18日 11:04
Re: 用 JBuiler 玩转 petstore 发表: 2004年11月04日 09:22 回复
我邮箱的地址:xucg@cchongda.com.cn
谢谢
极度深蓝

发表文章: 9
注册时间: 2004年09月05日 10:55
Re: 用 JBuiler 玩转 petstore 发表: 2004年11月04日 10:17 回复
恩,是这样的:

我一开始搞也同样是错误一大堆。但可以根据提示一条条逐个解决。一般提示还是写得比较清楚的,如果你真的了解EJB的原理,并且E文还过得去的话,是一定能够解决的。相信自己!还有一个办法想必你也知道,就是把错误信息那到google去查。但在这个过程中用处不大,还得靠自己思考。我当时从开始,直到最后一条错误也没有。也花了好几天时间的,好像是三整天吧。

这个贴子是自己当时的备忘录,比较粗糙,只能说抱歉了。面临毕业求职,没有时间详细写了
alandeon

发表文章: 1
注册时间: 2004年12月02日 17:37
Re: 用 JBuiler 玩转 petstore 发表: 2004年12月02日 17:38 回复
扯蛋文章!
shuyang

发表文章: 3
注册时间: 2005年01月04日 20:33
Re: 用 JBuiler 玩转 petstore 发表: 2005年01月04日 20:45 回复
发现这里好多人发帖都很武断啊,呵呵,有关petstore设计问题的讨论都这么久了还有人愤青啊,petstore本来就是sun做技术演示用的,目的是尽量全面展示技术,哪里有考虑效率,实现的简洁等,就是为了给你看看各种技术,真搞不明白为什么大家看资料不去sun呢,看全了再做评论啊,呵呵,今天忍不住愤青一下,真不服去看看JPetStroe不就得了,那是针对这位先生所说的问题的改进版,用了3154行代码实现的,sun的用了14000多行吧,为了最直接的展示技术当然需要很多代码,很多人天天嚷着到处找资料,上来就讨论设计模式,好比90开始讨论面向对象的热乎劲一样啊,呵呵,好好搞好基础,什么都有了,哪怕学学网络恐怕对面向对象也会感觉很熟悉吧,唉,师兄说得对,上了网的人浮躁,发贴子的更浮躁,我今天刚注册了一个,就愤青一下。呵呵
大愚弱智

发表文章: 17
注册时间: 2004年09月16日 17:25
Re: ?JBuiler 玩转 petstore 发表: 2005年01月25日 10:48 回复
没玩过petstore,既然你都玩得那么辛苦,我看我也没不要玩它。想学EJB没必有玩它,只要懂得ORM、Container等等,随便找一个类似于Hello EJB 的入门级的Demo都行。
这个主题有 14 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-07 jdon.com

anti spam