[jboss-user] [EJB 3.0] - transaction problem
Sukar1205
do-not-reply at jboss.com
Wed Sep 19 15:41:09 EDT 2007
I am trying to run a client class to test the CustomerBean class that I wrote but its giving me an error which mentions EntityManager must be access within a transaction. I am new to EJB3 so bear with me please.
This the code for my customerBean class.
| @Stateless
| public class CustomerBean implements CustomerRemote {
|
| @Resource(mappedName = "java:/SQL")
| private DataSource SQL;
|
| @PersistenceContext private EntityManager em;
|
| public void addCustomer(TempCustomer a){
| em.persist(a); //This is where the Exception occurs ..thanks
| }
|
| public TempCustomer findCustomerbyID(int id) {
| return em.find(TempCustomer.class, id);
| }
|
| public void deleteCustomer(TempCustomer a) {
| em.remove(a);
| }
|
| public void deleteID(int id){
| em.remove(id);
| }
|
|
And this is my client class to test my CustomerBean class... I am just trying to add 2 customers in the table.
| public class Client {
| public static void main(String[] args) throws Exception
| {
| Connection conn;
| // Step 1: Load the JDBC driver.
| Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
| System.out.println("Driver Loaded.");
| // Step 2: Establish the connection to the database.
| String url = "jdbc:sqlserver://localhost:1433;database=jdocxpt";
| conn = DriverManager.getConnection(url, "sa", "");
| System.out.println("Got Connection.");
|
| Context ctx = getInitialContext();
| CustomerRemote c = (CustomerRemote) ctx.lookup("CustomerBean/remote");
|
| TempCustomer first = new TempCustomer();
| TempCustomer second = new TempCustomer();
|
| System.out.println("adding Customers");
| first.setId(20);
| first.setName("aaaa");
| second.setId(21);
| second.setName("kkkk");
| c.addCustomer(first);
| c.addCustomer(second);
| }
I would appreciate it if some could help me with this transaction problem.
THANKS IN ADVANCE.
the error is
| Exception in thread "main" javax.ejb.EJBTransactionRolledbackException: EntityManager must be access within a transaction
| at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87)
| at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
| at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
| at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:278)
| at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
| at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
| at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:734)
| at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:560)
| at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:369)
| at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:165)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4086302#4086302
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4086302
More information about the jboss-user
mailing list