Wrox Home  
Search P2P Archive for: Go

  Return to Index  

enterprise_java_beans thread: how test cmp entity bean in jbuilder6+bes5?


Message #1 by "zhebincong" <zhebincong@1...> on Wed, 13 Mar 2002 07:38:48
hello
i generate a cmp ejb automatically by using jb6,it map to the jobs table of
pubs database within the mssqlserver2000,as follow:


     local interface: Jobs.class
 localhome interface: JobsHome.class
    remote interface: JobsRemote.class
remotehome interface: JobsRemoteHome.class
implementation class: JobsBean.class

after that,i create a  test program by using the "test client wizard" in
jb6,as follow:

package jobentity;

import com.mansion.ejb.entity.*;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;

public class JobsTestClient1 {
  private JobsRemoteHome jobsRemoteHome = null;


  public JobsTestClient1() {
    try {
            Context ctx = new InitialContext();

            Object ref = ctx.lookup("JobsRemote");

          jobsRemoteHome = (JobsRemoteHome) PortableRemoteObject.narrow
(ref,JobsRemoteHome.class);
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }

  public JobsRemoteHome getHome() {
    return jobsRemoteHome;
  }

  public static void main(String[] args) {
    JobsTestClient1 client = new JobsTestClient1();
    try{
      JobsRemote jobsRemote=client.getHome().findByPrimaryKey(new
Integer(1));
    }catch(Exception e){
      System.out.println(e.getMessage());
    }
  }
}



when i run the test program,it tell me "Must call within a valid 
transaction
context",as follow:


java.lang.IllegalStateException: Must call within a valid transaction
context
 at
com.inprise.visitransact.jta.TransactionMapImpl.getTxKey
(TransactionMapImpl.
java:15)
 at
com.inprise.visitransact.jta.TransactionMapImpl.get
(TransactionMapImpl.java:
23)
 at com.inprise.ejb.Global$1.getTxContext(Global.java:544)
 at com.borland.ejb.pm.DataEntityManager.c(Unknown Source)
 at com.borland.ejb.pm.JdbcEntityManager.e(Unknown Source)
 at com.borland.ejb.pm.DataEntityManager.d(Unknown Source)
 at com.borland.ejb.pm.DataEntityManager.createTrustedPrimaryKey(Unknown
Source)
 at
com.inprise.ejb.deployment.CMP2EntityDescriptor.convertToTrustedPK
(CMP2Entit
yDescriptor.java:80)
 at com.inprise.ejb.EntityHome.find(EntityHome.java:174)
 at com.inprise.ejb.EJBHome.invoke(EJBHome.java:279)
 at com.inprise.ejb.EJBHome.access$400(EJBHome.java:6)
 at com.inprise.ejb.EJBHome$RemoteStrategyImpl.invoke(EJBHome.java:665)
 at
com.mansion.ejb.entity.JobsRemoteHomePOAInvokeHandler.findByPrimaryKey
(JobsR
emoteHomePOAInvokeHandler.java:36)
 at
com.mansion.ejb.entity.JobsRemoteHomePOAInvokeHandler.findByPrimaryKey
(JobsR
emoteHomePOAInvokeHandler.java:88)
 at
com.mansion.ejb.entity.JobsRemoteHomePOA._invoke(JobsRemoteHomePOA.java:63)
 at
com.mansion.ejb.entity.JobsRemoteHomePOA._invoke(JobsRemoteHomePOA.java:43)
 at com.inprise.vbroker.poa.POAImpl.invoke(POAImpl.java:2597)
 at
com.inprise.vbroker.poa.ActivationRecord.invoke(ActivationRecord.java:105)
 at
com.inprise.vbroker.poa.ServerInterceptorManager$ARWrapper.invoke
(ServerInte
rceptorManager.java:95)
 at
com.inprise.vbroker.GIOP.GiopProtocolAdapter.doRequest
(GiopProtocolAdapter.j
ava:621)
 at
com.inprise.vbroker.IIOP.ServerProtocolAdapter.doRequest
(ServerProtocolAdapt
er.java:68)
 at
com.inprise.vbroker.GIOP.GiopProtocolAdapter.dispatchMessage
(GiopProtocolAda
pter.java:833)
 at
com.inprise.vbroker.orb.TPDispatcherImpl$TPDispatcher.run
(TPDispatcherImpl.j
ava:99)
 at com.inprise.vbroker.orb.ThreadPool$PoolWorker.run(ThreadPool.java:76)




who can tell me how i can solve the problem?

thank you!


  Return to Index