please copy this text to another editor for reading (that will looks better)
when i use BAS4.5 and Oracle8i(8.1.6) to develop a Container managerd
EntityBean, i found strange exception as belows :
Throwing java.rmi.RemoteException for the container-started transaction for
method: public abstract java.util.Collection
com.alltobid.newsandbulletin.entity.home.BsnewstbHome.findAll() throws
javax.ejb.FinderException,java.rmi.RemoteException
java.lang.Error
at com.inprise.vbroker.orb.CDRInputStream.<init>(CDRInputStream.java:1378)
at
com.inprise.vbroker.orb.ORBSingleton.create_input_stream(ORBSingleton.java:1
1)
at com.inprise.ejb.Global.readObject(Global.java:237)
at com.inprise.ejb.cmp.JdbcAccessers$32.get(JdbcAccessers.java:534)
at com.inprise.ejb.cmp.JdbcManager.findWhatever(JdbcManager.java:991)
at com.inprise.ejb.cmp.JdbcManager.findCollection(JdbcManager.java:1078)
at
com.inprise.ejb.cmp.OneToManyManager.findCollection(OneToManyManager.java:24
1)
at
com.inprise.ejb.cmp.CompoundManager.findCollection(CompoundManager.java:664)
at com.inprise.ejb.cmp.FieldManager.findCollection(FieldManager.java:377)
at
com.inprise.ejb.cmp.DefaultManager.findCollection(DefaultManager.java:106)
at com.inprise.ejb.cmp.FinderMethod.invoke(FinderMethod.java:41)
at com.inprise.ejb.EJBContext.invoke(EJBContext.java:129)
at com.inprise.ejb.Dispatcher.doInvoke(Dispatcher.java:1055)
at com.inprise.ejb.Dispatcher.invoke(Dispatcher.java:572)
at com.inprise.ejb.Dispatcher.find(Dispatcher.java:485)
at com.inprise.ejb.EntityHome.doFind(EntityHome.java:189)
at com.inprise.ejb.EntityHome.find(EntityHome.java:201)
at com.inprise.ejb.EJBHome.invoke(EJBHome.java:168)
at
com.alltobid.newsandbulletin.entity.home.BsnewstbHomePOAInvokeHandler.findAl
l(BsnewstbHomePOAInvokeHandler.java:151)
at
com.alltobid.newsandbulletin.entity.home.BsnewstbHomePOAInvokeHandler.findAl
l(BsnewstbHomePOAInvokeHandler.java:216)
at
com.alltobid.newsandbulletin.entity.home.BsnewstbHomePOA._invoke(BsnewstbHom
ePOA.java:181)
at
com.alltobid.newsandbulletin.entity.home.BsnewstbHomePOA._invoke(BsnewstbHom
ePOA.java:47)
at com.inprise.vbroker.poa.POAImpl.invoke(POAImpl.java:2355)
at
com.inprise.vbroker.poa.ActivationRecord.invoke(ActivationRecord.java:104)
at
com.inprise.vbroker.poa.ServerInterceptorManager$ARWrapper.invoke(ServerInte
rceptorManager.java:64)
at
com.inprise.vbroker.GIOP.GiopProtocolAdapter.doRequest(GiopProtocolAdapter.j
ava:492)
at
com.inprise.vbroker.IIOP.ServerProtocolAdapter.doRequest(ServerProtocolAdapt
er.java:64)
at
com.inprise.vbroker.GIOP.GiopProtocolAdapter.dispatchMessage(GiopProtocolAda
pter.java:653)
at
com.inprise.vbroker.orb.TPDispatcherImpl$TPDispatcher.run(TPDispatcherImpl.j
ava:99)
at com.inprise.vbroker.orb.ThreadPool$PoolWorker.run(ThreadPool.java:76)
can Any body tell me why ?
here is the details about my program :
1
----------------------------------------------------------------
oracle data base definition:
create table BsNewsTb (
NewsId CHAR(8) not null,
NewsTitle CHAR(100) not null,
NewsBody BLOB not null,
NewsPubDate DATE not null,
NewsState CHAR(2),
NewsKeyWords CHAR(100),
NewsReaded NUMBER(8),
constraint PK_BSNEWSTB primary key (NewsId)
)
please pay attention to the field of "NewsBody"
----------------------------------------------------------------
2
----------------------------------------------------------------
my entity bean's home interface is defined as below
public interface BsnewstbHome extends EJBHome {
public Bsnewstb create(String newsid, String newstitle, BlobString
newsbody, Timestamp newspubdate, String newsstate, String newskeywords,
BigDecimal newsreaded) throws RemoteException, CreateException;
public Bsnewstb create(String newsid) throws RemoteException,
CreateException;
public Bsnewstb findByPrimaryKey(String primaryKey) throws
RemoteException, FinderException;
public Collection findAll() throws RemoteException, FinderException;
public Bsnewstb findByMaxNewsId() throws RemoteException,
FinderException;
public Collection findLatestOrderByDate(int num) throws RemoteException,
FinderException;
}
notes :
BlobString is used to present the oracle type : BLOB
like this:
public class BlobString implements Serializable{
protected String content;
public BlobString(String s){
content = s;
}
public String getContent(){
return content;
}
public String toString(){
return content;
}
}
--------------------------------------------------------------
important:
all these thing work very well together if only the 'news-body' is not long.
but, when the size of the 'news-body' is longer than about 3500~4000 bytes ,
then, when i call function findAll() (or other functions like that)
something goes wrong , the exception message is list at begin of this text
so i am really confused,
don't know if this is the error of oracle or BAS or my program
what i don't understand most is that why the sizeof the string is the matter
!?
help me, gurus !
or email to me : Blue...@163.com
Please do not multipost. Multiposting violates Borland's newsgroup guidelines.
Please pick the single most appropriate newsgroup and post there. If you
don't get a response there in a day or so, then try an additional group.
Thank you.
Newsgroup Guidelines: http://www.borland.com/newsgroups/guide.html
> --------------------------------------------------------------
> help me, gurus !
--
Joi Ellis (TeamB) http://www.teamb.com/
No direct email, please.
For best results, post on news server newsgroups.borland.com!
Newsgroup Guidelines: http://www.borland.com/newsgroups/guide.html
Only posts which violate the rules in guide.html are subject to cancelation.