Session management in session bean calling session bean
Hi,
I've got another question on transaction.
I have following stateless session beans :
session1 with trans-attribute Required.
session2 with trans-attribute Required.
session1 calls session2 and session3.
session2 inserts/updates records in the database.
What am doing is first I call a createSchedule method in session2, which
creates a new record in the database.
And then I call an update method on the session2 bean, that will fetch and
update the newly created record.
This second update fails, due to some database constraints.
What I was hoping, that the record should not be created in the database,
but it did.
The first method call in session2 succeeded and the second failed !!
Doesnt both the DML be part of one transaction ?
Thanks
Amit
Solved this one too :
What was happening was, Before I called the create method of the session
bean, I was calling a find method, and I was capturing the exception, and in
case theres an exception, assuming that there is no record in the database,
I create a new record. This find method is in the same session bean,
session2 along with the create and update methods. Inititally when there was
no record, the session bean was raising EJBException, due to which the main
session bean, session1, rollbacks the transaction, it started, but as I was
catching this exception, so the execution continued, .... next statement
being create, and as the transaction attribute of it was Required, and as
the session1 bean's transaction has already been rolled back, there was no
transaction, so the create method started its own transaction, and created
the record, and then the update method too did the same, but it gave an
error, so only update method's transaction got rolled back.
So I changed the find method to throw FinderException, instead of
EJBException, so the transaction of sessio1 bean is not lost.
Its working now.
But the other problem I posted, where I dont want to throw any exception to
the client calling the session1 bean, I still havent figured it out, how to
stop it, although am catching all the exceptions, still the client got
exception.
Thanks
Amit Chauhan
eTouch System
510-795-4800 ext 113
Amit <[email protected]> wrote in message
news:[email protected]...
> Hi,
> I've got another question on transaction.
> I have following stateless session beans :
> session1 with trans-attribute Required.
> session2 with trans-attribute Required.
>
> session1 calls session2 and session3.
>
> session2 inserts/updates records in the database.
>
> What am doing is first I call a createSchedule method in session2, which
> creates a new record in the database.
> And then I call an update method on the session2 bean, that will fetch and
> update the newly created record.
>
> This second update fails, due to some database constraints.
> What I was hoping, that the record should not be created in the database,
> but it did.
> The first method call in session2 succeeded and the second failed !!
>
> Doesnt both the DML be part of one transaction ?
>
> Thanks
> --
> Amit
>
>
>
Similar Messages
-
Session Bean calling entity bean
Hi
How does session bean calls entity bean in weblogic6.1
Thankshave a look in the examples that come with weblogic
"Anand" <[email protected]> wrote in message
news:[email protected]..
>
>
Hi
How does session bean calls entity bean in weblogic6.1
Thanks -
Session bean calls enttity bean got error !!!! *urgent*
i have a session bean(customerController)with jndi(ejb/customer) calling entity bean (customer).Both using remote interface. when i build a frame application to test these beans. i get the error below.
can anybody tell me wat happen ?!!
23:20:22,861 ERROR [LogInterceptor] EJBException: javax.ejb.EJBException: removeCustomer: null at sessioncallsentitybean.CustomerControllerBean.createCustomer(CustomerControllerBean.java:63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:660) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186) at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:77) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107) at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:237) at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:98) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:208) at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313) at org.jboss.ejb.Container.invoke(Container.java:738) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517) at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke
(JRMPInvoker.java:383) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:536)seems like the logic stops when session bean is trying to create an instance of entity bean. i ve set my jndi name (ejb/Customer)correctly in the naming code part in session bean. Can u tell me wat steps that i might have missed. pls. thank you so much. =)
session bean manages to pass through methods below:
ejbCreate ()
createCustomer()
makeConnection()
releaseConnection()... but throws the EJBException
public String createCustomer(String custName, String custEmail, String custAddress, String custGender, String custPhoneNo) throws CreateException {
System.out.println("CustomerControllerBean createCustomer");
try{
makeConnection();
customer = customerHome.create(customerId, custName,
custEmail, custAddress, custGender, custPhoneNo);
releaseConnection();
} catch (Exception ex){
releaseConnection();
throw new EJBException
("createCustomer: " + ex.getMessage());
return customerId;
}my error is "javax.ejb.EJBException: createCustomer: null" the rest of the error warning is mentioned in the first posted message above. -
Session manager + new firefox update = corrupt sessions?!
I just updated to the new firefox and all of my sessions are now blank or possibly corrupted and it only says how many tabs i have in each session ,but i cannot click on "recover session". Can i roll back the 36 version ,or is it a problem with session manager not being compatible with the new version ? How can i recover my previous session at least?
To reiterate , I want to fix my sessions and my session manager, because I think I do have access to most of my tabs through another backup and potentially through a text editor ,but the new firefox update has created these discrepancies and I want to know how to bring everything back in order and specifically my sessions that are just showing a blank space within the session manager addon
-
Urgent - (session bean calling Entity bean )Help Need for me - Plzzzzzzzzzz
Hi
I am created two beans one is Entity bean another one is session . the two beans deployed using diffrent jar files
. I call the Entity bean methods using session bean
But i couldn't locate the entity bean Home object through session bean(
Sub is created but i couldn't get it that home obj stub)
i get the following error messgae CorbaBad Operation
i deployed two bean using same jar means my program is working
Help meeeeeeeI Send part of code to u
public String logic1(rsp.ejbbm.ex.studVO s) {
rsp.ejbbm.student.studentRemote r=null;
String id = null;
try {
System.out.println("sdfsdfsdfs");
Object obj = ctx.lookup("ejb/student");
System.out.println("Lookup Succeded ");
System.out.println("Object value" +obj.toString());
/// HERE I GOT THE ERRO I COULDn'T Locate IT
EJBHome obj1 =(EJBHome)javax.rmi.PortableRemoteObject.narrow(obj,rsp.ejbbm.student.studentHome.class);
System.out.println("Object value" +obj1.toString());
rsp.ejbbm.student.studentHome home=(rsp.ejbbm.student.studentHome)obj1;
//studentHome hom=(studentHome)ctx.lookup("ejb/student");
System.out.println("Object value" +obj.toString() );
System.out.println("Lookup Converted ");
home.create(s.getRollno(),s.getName());
System.out.println("student Record isInserted in Oracle ");
r= (rsp.ejbbm.student.studentRemote) home.findByPrimaryKey(s.getRollno());
System.out.println("Student 5555 Name is "+ r.getName());
id = r.getName();
catch(Exception e ){
System.out.println(e.toString());}
return id;
* @see javax.ejb.SessionSynchronization#afterBegin()
public void afterBegin() {
* @see javax.ejb.SessionSynchronization#afterCompletion(boolean)
public void afterCompletion(boolean committed) {
* @see javax.ejb.SessionSynchronization#beforeCompletion()
public void beforeCompletion() {
* See section 7.10.3 of the EJB 2.0 specification
public void ejbCreate() {
Properties p = new Properties();
p.put("java.naming.factory.initial", "com.sun.jndi.cosnaming.CNCtxFactory");
try{
ctx = new InitialContext(p);
catch(Exception e) {System.out.println("Create Exception "+e.toString());}
} -
Session manager loads windows in wrong sequence
'''when I use the session manager to reload a previous session which has several windows, the windows will not always come up in their original sequence (as far as their position on the task bar), e.g. I have windows 1,2,3 and reload the session and I will get them as 2,1,3 etc. This is annoying since I have s system where I group sites into individual windows and I am used to having them in a certain sequence. The only solution I have is to load and append them one window at a time from the same session but this is not a satisfactory situation.'''
Hi Barzilay,
Use transaction SMEN instead of SESSION_MANAGER.
Thats will solve your problem.
Please don't forget to reward points
Regards
Juan -
No prior Firefox version. Started with 20.1. Have not loaded 20.1 on my other computers, so i don't know if the problem is universal. Need Session Manager because Firefox crashes frequently.
Session Manager has had a lot of bug fixes the past week, I suspect mostly related to the new per-window private browsing feature. Could you try the new version 0.8.0.5? You need to use the "Versions" page to get it, as it hasn't yet been approved for the main page:
https://addons.mozilla.org/en-US/firefox/addon/session-manager/versions/#version-0.8.0.5
Hope that helps. You'll also see some even newer pre-release versions addressing specific bugs. I wouldn't try those just yet unless you see that one of them fixes issues you find in 0.8.0.5. -
Can CMT Session Bean call BMP Entity Bean in WebLogic 6.0?
Hi
Does anybody successfully use CMT Session Bean calling BMP +CMT Entity bean in
WebLogic6.0? I have the following problem.
Any idea will be appreciated.
--Winston
Let's say we have a Session bean SB, it uses container to manage the transaction.
A method of SB will call an Entity Bean EB which adopts bean-managed persistence.
Both SB and EB use CMT and all of their methods use "required" in the descriptor
file.
1. If the connection con.getAutoCommit() is true in the EB, then the transaction
within SB cannot be rolled back as the ejbCreate() has already commit into the
database.
2. On the other hand if Connecton of EB con.getAutoCommit() is false, then container
cannot successfully commit the transaction from SB's method, as EjbCreate and
EjbStore() in EB are likely using the different database connections, which causes
EbjStore() fail and the following error message will be sent to the Console:
============================================================
"<Jul 9, 2001 4:16:48 PM PDT> <Error> <EJB> <Exception during commit of transacti
on transaction=(IdHash=7738920,Name = [EJB TraderBeanImpl.buy()],Xid=105:5e6719a
ded42e332,Status=Rolled back. [Reason = weblogic.utils.NestedRuntimeException:
E
rror writing from beforeCompletion - with nested exception:
[java.rmi.NoSuchObjectException: Exception from ejbStore:javax.ejb.NoSuchEntityE
xception: ejbStore: AccountBean (4003) not updated]],numRepliesOwedMe=0,numRepli
esOwedOthers=0,seconds since begin=0,seconds left=30,SCInfo[examplesServer]=(sta
te=rolledback),properties=({weblogic.transaction.name=[EJB TraderBeanImpl.buy()]
})): java.rmi.NoSuchObjectException: Exception from ejbStore:javax.ejb.NoSuchEnt
ityException: ejbStore: AccountBean (4003) not updated
at weblogic.ejb20.internal.EJBRuntimeUtils.throwRemoteException(EJBRunti
meUtils.java:57)
at weblogic.ejb20.manager.DBManager.beforeCompletion(DBManager.java:364)
at weblogic.ejb20.internal.TxManager$TxListener.beforeCompletion(TxManag
er.java:211)
at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(Serv
erSCInfo.java:511)
at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(Se
rverSCInfo.java:78)
at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAn
dChain(ServerTransactionImpl.java:893)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(
ServerTransactionImpl.java:1229)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:168)
at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:2
01)
at examples.ejb.basic.statefulSession.TraderBeanEOImpl.buy(TraderBeanEOI
mpl.java:37)
at examples.ejb.basic.statefulSession.TraderBeanEOImpl_WLSkel.invoke(Tra
derBeanEOImpl_WLSkel.java:76)
at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:373)
at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:237)
at weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestH
andler.java:118)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:17)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
--------------- nested within: ------------------
weblogic.utils.NestedRuntimeException: Error writing from beforeCompletion - wit
h nested exception:
[java.rmi.NoSuchObjectException: Exception from ejbStore:javax.ejb.NoSuchEntityE
xception: ejbStore: AccountBean (4003) not updated]
at weblogic.ejb20.internal.TxManager$TxListener.beforeCompletion(TxManag
er.java:220)
at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(Serv
erSCInfo.java:511)
at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(Se
rverSCInfo.java:78)
at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAn
dChain(ServerTransactionImpl.java:893)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(
ServerTransactionImpl.java:1229)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:168)
at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:2
01)
at examples.ejb.basic.statefulSession.TraderBeanEOImpl.buy(TraderBeanEOI
mpl.java:37)
at examples.ejb.basic.statefulSession.TraderBeanEOImpl_WLSkel.invoke(Tra
derBeanEOImpl_WLSkel.java:76)
at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:373)
at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:237)
at weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestH
andler.java:118)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:17)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion
: sync = weblogic.ejb20.internal.TxManager$TxListener@356eb0
Error writing from beforeCompletion - with nested exception:
[weblogic.utils.NestedRuntimeException: Error writing from beforeCompletion -
wi
th nested exception:
[java.rmi.NoSuchObjectException: Exception from ejbStore:javax.ejb.NoSuchEntityE
xception: ejbStore: AccountBean (4003) not updated]]
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(
TransactionImpl.java:1261)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:218)
at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:2
01)
at examples.ejb.basic.statefulSession.TraderBeanEOImpl.buy(TraderBeanEOI
mpl.java:37)
at examples.ejb.basic.statefulSession.TraderBeanEOImpl_WLSkel.invoke(Tra
derBeanEOImpl_WLSkel.java:76)
at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:373)
at weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.ja
va:237)
at weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestH
andler.java:118)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:17)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>"
We did receive a 4.5.1 / 5.1 interoperability patch - but it wasn't quite 'seamless'.
We never tried to use it.
SOAP? Isn't that around 50 times slower than RMI?
Mike
"Gary Mui" <[email protected]> wrote:
We ran into this issue last fall and got some feedback from weblogic
support. They originally said that it could be done (as well as different
versions talking to one another via JMS) but it turned out that they
were
incorrect and ended up saying that it is not possible. Before 6.0 went
GA,
BEA said that there would be a interoperability patch to do this, but
I've
never seen nor heard of anything regarding it. As a workaround, we
implemented 4.5.1 / 6.0 communication via SOAP.
Mike Reiche wrote in message <3b1bcaec$[email protected]>...
I have the same question - and more. Last year we were told that wecould
not use
RMI (and ejbs) between 4.5.1 and 5.1. Which seems kinda weird becauseI've
heard
of people using WL ejbs from Tomcat. This issue has caused us to avoidusing
WL ejbs in any future development which has any chance of ever beingused
by any
app server (WL included) that is not under the direct control of thedata
center.
I've been trying to convince the Architecture team here that we canuse WL
EJBs
and we can call them from other app servers - but can't seem to getany
supporting
statement from BEA (maybe I haven't tried hard enough).
Anyway, a response from BEA would be appreciated.
- Mike
"Madhu K" <[email protected]> wrote:
Is it possible to call a (stateless session) bean deployed in weblogic
6.0
from a bean in weblogic 5.1? I have two versions of weblogic running
on two
different hosts and I have to call a bean that is running in 6.0 from
5.1.
Are there any limitations?
Appreciate any feedback/suggestions.
Thanks,
Madhu -
How to call session bean's method in JSP
Hi All,
I am working on a JSF web application by using sun studio creator.
The first page have a button, the onClick javascript is as following, which bring up a alert box showing user login name.
In JSP file, how can I call session bean's setUserName(String name) function (which I would like to store this UserName). So the following pages can use this information.
If I can not do it this way, is there any other way to do it?
Thanks in advance.
var net = new ActiveXObject("wscript.network");
alert(net.UserName);
In managed-beans.xml
<managed-bean>
<managed-bean-name>BasicInfo</managed-bean-name>
<managed-bean-class>treepractice.BasicInfo</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>You can find more information/details/examples at their own website.
On the other hand, do you realize that that ActiveX stuff is IE proprietary? And that it is a browser configuration whether to allow them or not? And that this configuration is in IE7 defaulted to an (annoying) warning box before execution which is just bad for the user experience?
With other words, forget that ActiveX garbage. Alternatives are Applets (not recommended) or Java Web Start (recommended). -
JBoss message driven bean calling a session bean
Hi guys, can you please help me? I want my mdb to call my session bean....can you provide me some examples of ejb-jar.xml and jboss.xml with regards to this configuration....thanks...im creating my deployment descriptors manually
Here is a little example, I hope it will help you.
ejb-jar.xml
=============================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar >
<enterprise-beans>
<!-- Session Beans -->
<session >
<display-name>TestSessionEJB</display-name>
<ejb-name>TestSession</ejb-name>
<home>mdbtest.interfaces.TestSessionHome</home>
<remote>mdbtest.interfaces.TestSession</remote>
<local-home>mdbtest.interfaces.TestSessionLocalHome</local-home>
<local>mdbtest.interfaces.TestSessionLocal</local>
<ejb-class>mdbtest.session.TestSessionEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
... </session>
<!-- Message Driven Beans -->
<message-driven >
<description><![CDATA[]]></description>
<display-name>TestMessageEJB</display-name>
<ejb-name>TestMessage</ejb-name>
<ejb-class>mdbtest.message.TestMessageEJB</ejb-class>
<transaction-type>Container</transaction-type>
<message-selector></message-selector>
<acknowledge-mode>Auto-acknowledge</acknowledge-mode>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
<subscription-durability>NonDurable</subscription-durability>
</message-driven-destination>
<ejb-local-ref >
<ejb-ref-name>ejb/TestEjb</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>mdbtest.interfaces.TestSessionLocalHome</local-home>
<local>mdbtest.interfaces.TestSessionLocal</local>
<ejb-link>TestSession</ejb-link>
</ejb-local-ref>
</message-driven>
</enterprise-beans>
</ejb-jar>
jboss.xml:
=============================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 3.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd">
<jboss>
<enterprise-beans>
<session>
<ejb-name>TestSession</ejb-name>
<jndi-name>ejb/MdbTest/TestSession</jndi-name>
<local-jndi-name>TestSessionLocal</local-jndi-name>
<configuration-name>Standard Stateless SessionBean</configuration-name>
</session>
<message-driven>
<ejb-name>TestMessage</ejb-name>
<destination-jndi-name>queue/MyTestQueue</destination-jndi-name>
<configuration-name>Standard Message Driven Bean</configuration-name>
</message-driven>
</enterprise-beans>
<resource-managers>
</resource-managers>
</jboss> -
Local Session Bean calling another local Session Bean in EJB 3.0
Hi,
In EJB 3.0, I am trying to do JNDI lookup of a local sesion bean from another session bean's helper class.
I am not using @EJB injection mechanism here, as call to the local session bean is made in a helper class. Helper classes do not support resource injection.
Following are the EJB class definitions used in my project. Call to "EJB3Local" made from "EJB1" fails as the "EJB2" helper class is calling "EJB1Local"
@Stateless
@EJBs({@EJB(name="EJB2Local", beanInterface=EJB2Local.class),
@EJB(name="EJB3Local", beanInterface=EJB3Local.class)})
public class EJB1 implements EJB1Remote, EJB1Local{
public void findEJB3Local(){
//1. JNDI lookup for EJB3Local ----
//2. EJB3Local.someFunction()
@Stateless
@EJB(name="EJB1Local", beanInterface=EJB1Local.class)
public class EJB2 implements EJB2Remote, EJB2Local{
public void findEJB1Local(){
//1. JNDI lookup EJB1Local
// 2. Call EJB1Local.findEJB1Local method
@Stateless
public class EJB3 implements EJB3Remote, EJB3Local{
public void someFunction(){}
A remote call to EJB2.findEJB1Local() will invoke EJb1Local.findEJB3Local method and the call fails with "java:comp/env/EJB3Local" not found in EJB1Local.
Has anybody encountered an issue like this issue with local interface calling another local interface?
Thanks,
MohanTo refer a Ejb from another Ejb include <ejb-ref> element
in ejb-jar.xml
<session>
<ejb-name>SessionBeanA</ejb-name>
<ejb-ref>
<ejb-ref-name>SessionBeanB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.ejb.SessionBeanBHome</home>
<remote>com.ejb.SessionBeanB</remote>
</ejb-ref>
</session>
Include a <reference-descriptor> in weblogic-ejb-jar.xml
<weblogic-enterprise-bean>
<ejb-name>SessionBeanA</ejb-name>
<reference-descriptor>
<ejb-reference-description>
<ejb-ref-name>SessionBeanB</ejb-ref-name>
<jndi-name>com.ejb.SessionBeanBHome</jndi-name>
</ejb-reference-description>
</reference-descriptor>
</weblogic-enterprise-bean>
In SessionBeanA Bean class refer to SessionBeanB with
a remote reference to SessionBeanB.
InitialContext initialContext=new InitialContext();
SessionBeanBHome sessionBeanBHome=(SessionBeanBHome)
initialContext.lookup("com.ejb.SessionBeanBHome");
SessionBeanB sessionBeanB=sessionBeanBHome.findByPrimaryKey(primarykey);
sessionBeanB.update();
sessionBeanB.getAll();
thanks,
Deepak -
Calling session bean's business method through web dynpro component
Hi All,
Can anybody tell me how to call a session bean's methods through a web dynpro WITHOUT java-model or web service model ??
I have following scenario:-
1. Stateless Session bean having two business methods
2. Web Dynpro component
3.Now i want to call business methods without using any model. I have got following piece of code but I dont know how to go about it.
4.Where do i have to set JNDI name for session bean? which interface will be looked for?
5. Do I have to declare public part for EJB DC? If yes, how?
//This is inside web dynpro component
InitialContext context = new InitialContext();
o = context.lookup(JNDIName);
TestSessionbeanHome homeRef = (TestSessionbeanHome) PortableRemoteObject.narrow( o,
TestSessionbeanHome.class);
TestSessionbean beanRef = homeRef.create();
<returnValue> = beanRef.<ejb method name>
Please help to get a step-by-step approach to this case.
Thanks and regards,
Amey MogareHi,
If I comment out the part that is using session bean's business method, DC is building fine.
And if I uncomment, then compiler is unabl eto resolve business method(s).
And i would like to mention that my EJB + J2EE App DC is building properly, but it havent yet deployed properly as I am waiting for data-source-alias name prefix to be configured by ERP team. So will this be a reason why Web Dynpro DC is not able to resolve business methods ??
Because Web Dynpro DC is able to resolved all interfaces of Session bean and entity bean. But when it comes to business method, its not able to resolve.
Any more ideas why it is not happening?
Pls help.
Now i went through some forum posts regarding this and found that we also need to add EJB DC to Java Build Path for WebDynproDC>Properties>Java Build Path.
I did this and now it is able to resolve business methods and DTOs as well. So to summarize I did following:-
1. Added EJB DC (complete DC) as a Used DC to Web Dynpro DC with Buid-n-Deploy-n-Run time dependency
2. Added Sharing reference of J2EE application DC to Web Dynpro DC -->Properties
This reference I constructed as follows:-
<vendorname>/<name of j2ee application as appearing under display name tag in application.xml (replacing '/' with '~')>
So my Sharing Reference becomes:- <vendorname>/reqpstapscreqpstapja_reqid
3. Added EJB DC to Java Build Path in Web Dynpro DC's properties
4. Then I added following piece of code to get object of SessionBean class
InitialContext context = new InitialContext();
Object o = context.lookup("java:comp/env/ejb/SessionRequestIDBean");
SessionRequestIDHome homeRef = (SessionRequestIDHome) PortableRemoteObject.narrow(o, SessionRequestIDHome.class);
SessionRequestID beanRef = homeRef.create();
beanRef.<business method>
But After doing this I am facing another problem :-
The build fails saying it is not able find the package for DTOs. But when I see the Component Controller's code it is not showing any red or yellow marks.
Can anybody pls help me out here?
Thanks and regards,
Amey Mogare -
Calling Session Beans in JSP ?
Hi Folks,
I am new to EJB3, I am doing simple applicatuions.
Can any one please tell me how to call session beans in jsp page.
for example my case is.. iam entering two diffrent data, lets say user name and password in jsp page and this should go in data base thru JPA (entity beans)
Iam able to enter data from JPA in data base but if the same i have to fetch from JSP page.. iam not getting..!
I would really appretiate for your help i need it urgent...!
thanks in advance.abishek1983 wrote:
Hi Folks,
I am new to EJB3, I am doing simple applicatuions.
Can any one please tell me how to call session beans in jsp page.
Not. You can, technically, but you shouldn't. JSP should be for display purposes only, containing no Java code whatsoever.
for example my case is.. iam entering two diffrent data,Wrong. You cannot possibly have "2 data", the very concept is impossible.
You can have "2 data items" which is probably what you intended to say?
lets say user name and password in jsp page and this should go in data base thru JPA (entity beans)
Iam able to enter data from JPA in data base but if the same i have to fetch from JSP page.. iam not getting..!
Same way you insert them. Of course JPA entities are distinctly different from entity beans. The very concept of entity beans no longer exists in the context of JPA, it's solely used to mean EJB 2.1 or earlier entity beans.
I would really appretiate for your help i need it urgent...!
It's not urgent. -
Call session bean in message driven bean
Is it a best practice calling a session bean every time arrive a message in a message driven bean?
Regards
Message was edited by:
gionnyDeepWhy not?
You can call Session Bean from a Message Driven Bean as long as your J2EE Server is able to handle the messages. -
Session Managed Beans + Session Destory
Hey guys,
I have an simple question. How can I destroy an Session in JSF. For Example if I have an Manged Beans in scope Session:
<managed-bean>
<managed-bean-name>User</managed-bean-name>
<managed-bean-class>example.user.User</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean> This would instance if an User successful logged in. But if the User logged out, I can set all attributes = Null; But the easier and better way is to destroy the Session. But how can I destory an Session Managed Bean?
Thanks for helpYes, there's an easy way.
//Reset current state of application (for the current user) by
//invalidating the session
HttpSession session = (HttpSession)FacesContext.getCurrentInstance().
getExternalContext().getSession(false);
if (session != null)
session.invalidate();CowKing
Maybe you are looking for
-
Hello, so I have read a few discussions on transferring songs/playlist to a flash drive. But what I am looking for is can I replace my iPod classic in my car with a flash drive? So I have all my songs and playlist just like the iPod. And how do I do
-
500 internal server error while executing templates
Hi All, We are receiving the 500 Internal server while excecuting few of our webtemplates. The error message is . Access to a shared objects area that has already been released. com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: Access to
-
Apple TV fills up disk on Airbook ???
Even if I buy a movie on the Apple TV, it jumps onto the hard drive of my Macbook Air and fills up the disk. How do I get movies to stay on the Apple TV drive and not on the computer ? Roy
-
Displaying Custom Opportunity Fields in Accounts
Hi, We have created custom opportunity fields via EEWB. We would also like to display these fields in the Accounts page, in the Opportunities assignment block as columns. The fields were already part of the BUILOPPORTUNITY context node. I have create
-
I have just downloaded acrobat standard XI onto my iMac which isn't supported on OS X.... How do I change this to download to run on my iMac ?