Session Bean calling entity bean
Hi
How does session bean calls entity bean in weblogic6.1
Thanks
have 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
Similar Messages
-
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());}
} -
Problem calling entity bean from session bean using sun one app server
Hi,
I am getting the following exception while calling entity bean(bmp) from stateless session(cmp)bean.
SEVERE: IOP5012: Some runtime exception ocurred in IIOP: [javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: Unable to create reference org.omg.CORBA.OBJ_ADAPTER: vmcid: SUN minor code: 1015 completed: No]
SEVERE: IOP5013: Unable to create reference: [org.omg.CORBA.OBJ_ADAPTER: vmcid: SUN minor code: 1015 completed: No]
SEVERE: EJB5029: Exception getting ejb context : [CustomerEJB]
SEVERE:
WARNING: CORE3283: stderr: javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is:
WARNING: CORE3283: stderr: org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806 completed: Maybe
WARNING: CORE3283: stderr: at com.sun.corba.ee.internal.iiop.ShutdownUtilDelegate.mapSystemException(ShutdownUtilDelegate.java:114)
WARNING: CORE3283: stderr: at com.sun.corba.ee.internal.javax.rmi.CORBA.Util.wrapException(Util.java:358)
WARNING: CORE3283: stderr: at javax.rmi.CORBA.Util.wrapException(Util.java:277)
WARNING: CORE3283: stderr:
My primary key implementation is
public class CustomerEJBKey implements java.io.Serializable {
static final long serialVersionUID = 3206093459760846163L;
public String customerId;
public DBConfigBean dbConfigBean;
* Creates an empty key for Entity Bean: CustomerEJB
/*public CustomerEJBKey() {
public CustomerEJBKey(String customerId,DBConfigBean dbConfigBean){
this.customerId = customerId;
this.dbConfigBean = dbConfigBean;
public String getCustomer(){
return customerId;
public DBConfigBean getDBConfigBean(){
return dbConfigBean;
* Returns true if both keys are equal.
public boolean equals(Object key) {
if(key instanceof CustomerEJBKey)
return this.customerId.equals(((CustomerEJBKey)key).customerId) &&
this.dbConfigBean.equals(((CustomerEJBKey)key).dbConfigBean);
else
return false;
* Returns the hash code for the key.
public int hashCode() {
return customerId.hashCode() + dbConfigBean.hashCode();
and entity bean method invocation is,
homeFactory = EJBHomeFactory.getInstance();
home = (CustomerEJBHome) homeFactory.lookup(CustomerEJBHome.class);
remote = (CustomerEJB) PortableRemoteObject.narrow( home.findByPrimaryKey(new CustomerEJBKey(customerId,dbBean)), CustomerEJB.class);
This works fine in Websphere and JBoss. Do you have any idea why I am getting this exception?
Appreciate your response.
Regards,
Sankar.My suggestion is to put some System.out.println() statements and see if the output helps in any way in debugging. I can't think of anything on the top of my head although I have been working lightly on SunONE.
By the way, you referred the stateless bean as CMP. Just wanted to tell you that you are wrong. The terms CMP and BMP refer to persistence, which is applied to Database tables and not to stateless/stateful session beans which are written for some specific purpose independent of underlying database. -
NON-transactional session bean access entity bean
We are currently profiling our product using Borland OptmizeIt tool, and we
found some interesting issues. Due to our design, we have many session beans which
are non transactional, and these session beans will access entity beans to do
the reading operations, such as getWeight, getRate, since it's read only, there
is no need to do transaction commit stuff which really takes time, this could
be seen through the profile. I know weblogic support readonly entity bean, but
it seems that it only has benefit on ejbLoad call, my test program shows that
weblogic still creates local transaction even I specified it as transaction not
supported, and Transaction.commit() will always be called in postInvoke(), from
the profile, we got that for a single method call, such as getRate(), 80% time
spent on postInvoke(), any suggestion on this? BTW, most of our entity beans are
using Exclusive lock, that's the reason that we use non-transactional session
bean to avoid dead lock problem.
ThanksSlava,
Thanks for the link, actually I read it before, and following is what I extracted
it from the doc:
<weblogic-doc>
Do not set db-is-shared to "false" if you set the entity bean's concurrency
strategy to the "Database" option. If you do, WebLogic Server will ignore the
db-is-shared setting.
</weblogic-doc>
Thanks
"Slava Imeshev" <[email protected]> wrote:
Hi Jinsong,
You may want to read this to get more detailed explanation
on db-is-shared (cache-between-transactions for 7.0):
http://e-docs.bea.com/wls/docs61/ejb/EJB_environment.html#1127563
Let me know if you have any questions.
Regards,
Slava Imeshev
"Jinsong HU" <[email protected]> wrote in message
news:[email protected]...
Thanks.
But it's still not clear to me in db-is-shared setting, if I specifiedentity
lock as database lock, I assumed db-is-shared is useless, because foreach
new
transaction, entity bean will reload data anyway. Correct me if I amwrong.
Jinsong
"Slava Imeshev" <[email protected]> wrote:
Jinsong,
See my answers inline.
"Jinsong Hu" <[email protected]> wrote in message
news:[email protected]...
Hi Slava,
Thanks for your reply, actually, I agree with you, we need to
review
our db
schema and seperate business logic to avoid db lock. I can not say,guys,
we need
to change this and that, since it's a big application and developedsince
EJB1.0
spec, I think they are afraid to do such a big change.Total rewrite is the worst thing that can happen to an app. The
better aproach would be identifying the most critical piece and
make a surgery on it.
Following are questions in my mind:
(1) I think there should be many companies using weblogic serverto
develop
large enterprise applications, I am just wondering what's the maintransaction/lock
mechanism that is used? Transional session / database lock,
db-is-shared
entity
I can't say for the whole community, as for my experience the standard
usage patthern is session fasades calling Entity EJBs while having
Required TX attribute plus plain transacted JDBC calls for bulk
reads or inserts.
is the dominant one? It seems that if you speficy database lock,
the
db-is-shared
should be true, right?Basically it's not true. One will need db-is-shared only if thereare
changes
to the database done from outside of the app server.
(2) For RO bean, if I specify read-idle-timeout to 0, it shouldonly
load
once at the first use time, right?I assume read-timeout-seconds was meant. That's right, but if
an application constantly reads new RO data, RO beans will be
constantly dropped from cache and new ones will be loaded.
You may want to looks at server console to see if there's a lot
of passivation for RO beans.
(3) For clustering part, have anyone use it in real enterpriseapplication?
My concern, since database lock is the only way to choose, how aboutthe
affect
of ejbLoad to performance, since most transactions are short live,if high
volume
transactions are in processing, I am just scared to death about
the
ejbLoad overhead.
ejbLoad is a part of bean's lifecycle, how would you be scared ofit?
If ejbLoads take too much time, it could be a good idea to profile
used SQLs. Right index optimization can make huge difference.
Also you may want cosider using CMP beans to let weblogic
take care about load optimization.
(4) If using Optimization lock, all the ejbStore need to do
version
check
or timestamp check, right? How about this overhead?As for optimistic concurrency, it performs quite well as you can
use lighter isolation levels.
HTH,
Slava Imeshev
"Jinsong Hu" <[email protected]> wrote in message
news:[email protected]...
We are using Exclusive Lock for entity bean, because of we do
not
want
to
load
data in each new transaction. If we use Database lock, that means
we
dedicate
data access calls to database, if database deadlock happens,
it's
hard
to
detect,
while using Exclusive lock, we could detect this dead lock in
container
level.
The problem is, using Exclusive concurrency mode you serialize
access to data represented by the bean. This aproach has negative
effect on ablity of application to process concurrent requests.As
a
result the app may have performance problems under load.
Actually, at the beginnning, we did use database lock and usingtransactional
The fact that you had database deadlocking issues tells that
application logic / database schema may need some review.
Normally to avoid deadlocking it's good to group database
operations mixing in updattes and inserts into one place so
that db locking sequence is not spreaded in time. Moving to
forced serialized data access just hides design/implementation
problems.
session bean, but the database dead lock and frequent ejbLoad
really
kill
us,
so we decided to move to use Exclusive lock and to avoid dead
lock,
we
change
some session bean to non-transactional.Making session beans non-transactions makes container
creating short-living transactions for each call to entity bean
methods. It's a costly process and it puts additional load to
both container and database.
We could use ReadOnly lock for some entity beans, but since weblogicserver will
always create local transaction for entity bean, and we found
transaction
commit
is expensive, I am arguing why do we need create container leveltransaction for
read only bean.First, read-only beans still need to load data. Also, you may seeRO
beans
contanly loading data if db-is-shared set to true. Other reason
can
be
that
RO semantics is not applicable the data presented by RO bean (forinstance,
you have a reporting engine that constantly produces "RO" data,
while
application-consumer of that data retrieves only new data and neverasks
for "old" data). RO beans are good when there is a relatively stable
data
accessed repeatedly for read only access.
You may want to tell us more about your app, we may be of help.
Regards,
Slava Imeshev
I will post the performance data, let's see how costful
transaction.commit
is.
"Cameron Purdy" <[email protected]> wrote:
We are currently profiling our product using Borland
OptmizeIt
tool,
and we
found some interesting issues. Due to our design, we have
many
session
beans which
are non transactional, and these session beans will access
entity
beans
to
do
the reading operations, such as getWeight, getRate, since
it's
read
only,
there
is no need to do transaction commit stuff which really takes
time,
this
could
be seen through the profile. I know weblogic support readonly
entity
bean,
but
it seems that it only has benefit on ejbLoad call, my test
program
shows
that
weblogic still creates local transaction even I specified
it
as
transaction not
supported, and Transaction.commit() will always be called
in
postInvoke(),
from
the profile, we got that for a single method call, such as
getRate(),
80%
time
spent on postInvoke(), any suggestion on this? BTW, most of
our
entity
beans are
using Exclusive lock, that's the reason that we use
non-transactional
session
bean to avoid dead lock problem.I am worried that you have made some decisions based on an improper
understand of what WebLogic is doing.
First, you say "non transactional", but from your description
you
should
have those marked as tx REQUIRED to avoid multiple transactions
(since
non-transactional just means that the database operation becomesits
own
little transaction).
Second, you say you are using exclusive lock, which you shouldonly
use
if
you are absolutely sure that you need it, (and note that it
does
not
work in
a cluster).
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com/coherence.jsp
Tangosol Coherence: Clustered Replicated Cache for Weblogic
"Jinsong Hu" <[email protected]> wrote in message
news:[email protected]...
> -
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. -
I am building application in which I query 4 to 5 tables and display the reports
. Presently I am using JSP and Servlets but would like to move to EJBs.
What would be my best bet between Entity and Session beans ?
Thanks in advance ..FrankFrank,
You may want to peruse the following snippet from Sun's Java site on when to use
session beans vs. entity beans
http://java.sun.com/j2ee/j2sdkee/techdocs/guides/ejb/html/Overview4.html#9377
Chuck Nelson
Developer Relations Engineer
BEA Technical Support -
Bean Managed Entity Beans(EJB) using Tangosol.
I am trying to use Bean Managed Entity Beans using Tangosol Coherence.
The entity bean is currently configured in the weblogic-ejb-jar.xml with:
<max-beans-in-cache>200</max-beans-in-cache>
In the public void ejbLoad() method, I am calling the Tangosol Cache to load the entity bean.
If we have have more that 200 request coming at the same time, we get an OutOfMemoryError exception.
Is there anyway to overcome this limitation by somehow having the ejb cache to use the tangosol cache?
Thanks for any help in advance.
KrishanSo far, it's not immediately obvious to us what the exact problem is that you are seeing. It sounds like the VM would be using at least 200MB just for the application server's own internal cache, for example, and that you are also using Coherence within the application server to provide additional caching.
If possible, we should set up a phone call with you and your team, and we could get an engineer from our end to walk through your specific use case with you, so that we could understand what the exact technical challenge(s) is(are) in this particular application.
Peace.
p.s. You can email [email protected] directly to schedule a call. -
Hi,
I have created two bean managed entity beans, User and Role, abstracting users
and groups in a ldap base. A User may have more than one Role. This is represented
by a (bean managed) 1:many relationship directed from User to Role. For some weird
reasons I get a transaction rollback when reading data, when transactions are
turned on (REQUIRED).
While we where running WLS 6.1 sp1 we had no problems with this as we could set
transaction to NOTSUPPORTED for these two EJBs. Due to other hickups we had to
upgrade to sp2 and suddenly the error reappears leading me to believe that NOTSUPPORTED
isn't allowed anymore by the WLS. I know that NOTSUPPORTED isn't required by the
EJB spec, but containers may support it and obviously WLS used to do just that.
I have not seen any change in the release notes of sp2 that indicates that this
behaviour has changed.
Does anybody know if WLS really doesn't support NOTSUPPORTED for enity beans anymore
in sp2?
If anybody are curiuos or have any good ideas, the stacktrace I get is:
javax.ejb.TransactionRolledbackLocalException: EJB Exception:
- with nested exception:
[javax.ejb.EJBException
- with nested exception:
[weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
[java.util.ConcurrentModificationException]]]
Start server side stack trace:
java.rmi.RemoteException: EJB Exception: ; nested exception is:
javax.ejb.TransactionRolledbackLocalException: EJB Exception:
- with nested exception:
[javax.ejb.EJBException
- with nested exception:
[weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
[java.util.ConcurrentModificationException]]]
java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:535)
at java.util.LinkedList$ListItr.next(LinkedList.java:476)
at weblogic.ejb20.manager.DBManager.beforeCompletion(DBManager.java:370)
at weblogic.ejb20.internal.TxManager$TxListener.beforeCompletion(TxManager.java:481)
at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:551)
at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:88)
at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:980)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:1504)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:216)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
at weblogic.ejb20.internal.BaseEJBLocalObject.postInvoke(BaseEJBLocalObject.java:207)
at com.takecargo.domainentities.role.RoleBean_1ipw6_ELOImpl.getName(RoleBean_1ipw6_ELOImpl.java:86)
at com.takecargo.domainentities.role.RoleConverter.getVOforRoleLocal(RoleConverter.java:51)
Any kind of help would be appreciated:)
Regards,
Brynjar GlesnesWLS support NotSupported on Entity Beans.
It looks like you've hit a bug in the EJB container where an internal Collection class has been modified while the
container is running through an iterator on it.
You should open a case with [email protected]
-- Rob
Brynjar Glesnes wrote:
Hi,
I have created two bean managed entity beans, User and Role, abstracting users
and groups in a ldap base. A User may have more than one Role. This is represented
by a (bean managed) 1:many relationship directed from User to Role. For some weird
reasons I get a transaction rollback when reading data, when transactions are
turned on (REQUIRED).
While we where running WLS 6.1 sp1 we had no problems with this as we could set
transaction to NOTSUPPORTED for these two EJBs. Due to other hickups we had to
upgrade to sp2 and suddenly the error reappears leading me to believe that NOTSUPPORTED
isn't allowed anymore by the WLS. I know that NOTSUPPORTED isn't required by the
EJB spec, but containers may support it and obviously WLS used to do just that.
I have not seen any change in the release notes of sp2 that indicates that this
behaviour has changed.
Does anybody know if WLS really doesn't support NOTSUPPORTED for enity beans anymore
in sp2?
If anybody are curiuos or have any good ideas, the stacktrace I get is:
javax.ejb.TransactionRolledbackLocalException: EJB Exception:
- with nested exception:
[javax.ejb.EJBException
- with nested exception:
[weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
[java.util.ConcurrentModificationException]]]
Start server side stack trace:
java.rmi.RemoteException: EJB Exception: ; nested exception is:
javax.ejb.TransactionRolledbackLocalException: EJB Exception:
- with nested exception:
[javax.ejb.EJBException
- with nested exception:
[weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
[java.util.ConcurrentModificationException]]]
java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:535)
at java.util.LinkedList$ListItr.next(LinkedList.java:476)
at weblogic.ejb20.manager.DBManager.beforeCompletion(DBManager.java:370)
at weblogic.ejb20.internal.TxManager$TxListener.beforeCompletion(TxManager.java:481)
at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:551)
at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:88)
at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:980)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:1504)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:216)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
at weblogic.ejb20.internal.BaseEJBLocalObject.postInvoke(BaseEJBLocalObject.java:207)
at com.takecargo.domainentities.role.RoleBean_1ipw6_ELOImpl.getName(RoleBean_1ipw6_ELOImpl.java:86)
at com.takecargo.domainentities.role.RoleConverter.getVOforRoleLocal(RoleConverter.java:51)
Any kind of help would be appreciated:)
Regards,
Brynjar Glesnes -
How does a session bean find entity beans in EJB 3.0
Hi,
I am new to J2EE. I have difficulties finding out how a session bean locates the entity-manager for a group of entity beans. I understand that the entitymanager in the session bean is injected using the PersistenceContext annotation, but I dont see how it locates the intended EntityManager (which could be on another server).
I realize this is probably trivial, but can any of you guys tell me what I am missing?
Best Regards
ThomasHi Thomas,
Good question. Each @PersistenceContext annotation is associated with a single Persistence Unit. A Persistence Unit is defined either at the module level or at the .ear level. Each persistence unit has a name associated with it. The unitName() attribute is used to map @PersistenceContext to the associated PersistenceUnit. Since the most common case is that an application will only define one persistence unit, the spec requires that if the unitName() is not specified, it will automatically map to that single persistence unit.
--ken -
Flow of sessiob bean and entity bean
Hi All,
Can any one help me how is the flow of session and entity beans i.e
What method is called first and what method is called next.
There are so many methods like create(),ejbcreate(),
ejbActivate(),ejbPassivate(),ejbDelete() etc.
What is the flow of these methods and when they are called.Hi vasudulla,
If you can, go to the bookstore and look for the book:
Entreprise JavaBeans 3rd Edition by Richard Monson-Haefel.
In the Appendix B, you can see the State and Sequence Diagrams, all the things you want to know about the Flow.
--Paul. -
Calling Entity bean from Session
Does anyone have a demo of how a SessionBean locates the home of an EntityBean in OC4J? None of the demos seem to illustrate this. My demo worked in JBoss but not OC4J. I am not sure of the Context lookup string and how it is configured (application-client.xml?)
Thanks,
Pathi pat
try "ch16 samples" under
http://otn.oracle.com/sample_code/tech/java/oc4j/samplesPage.html
shrini -
Problem in calling single entity bean from other beans
Hi,
I am implementing session facade with SUN's J2EE 1.3 deploy tool for JBoss server.
I have a entity bean UserBean which creates users in database ( create() )and tells if user exists or not ( findByPrimaryKey() ).
Initially, I had implemented UserBean with remote interfaces. So, any servlet ( my client ) which needed to use UserBean would make a remote call to it. It was used by 5 different servlets.
Now I am going for Local interfaces. So, I am packaging UserBean with other beans which need it.
Problem is, if I package UserBean with , say , ChatLogsBean ( Stateless bean ), it works fine. But when I package it with WebLogsBean ( Stateless bean ) also and deploy all beans together, JBoss gives error messages that instances of UserBean are already created.
How should structure my beans sothat I can avoid these duplication problem ?
Present flow is as follow:
Servlet Stateless Bean Other beans
ChatLogs Servlet --> ChatLogsWrapper --> ChatLogsBean ( Stateless bean ) & UserBean( Entity bean )
WebLogs servlet --> WebLogsWrapper --> WebLogsBean ( Stateless bean ) & UserBean
WordLogs servlet --> WordLogsWrapper --> WordLogsBean ( Stateless bean ) & UserBean
All servlets are packaged into corresponding WARs.
ChatLogsWrapper , ChatLogsBean ,UserBean are packaged into 'ChatWrapper' JAR.
WebLogsWrapper , WebLogsBean , UserBean are packaged into 'webWrapper' JAR
and similarly for WordLogs.
Any help ?
Regards,
SurajI suggest you post to one of the forums on jboss.org. There should not be a problem AFAIK having remote and local interfaces to the same EJB. I assume that you gave these unique names (FooHome/FooLocalHome..etc...) for the home and remote interfaces and declared both in the ejb DD.
-
Do JNDI look up for entity beans from a session bean in different jars
I have a problem doing entity beans JNDI look up from a session bean which is deployed
as a separate package (session.jar) from the entity beans (entity.jar)
I believe if both session bean and entity beans are deployed into one jar and
I specify ejb-local-reference-description for session bean, it should work. However,
due to some reason, they have to be in separated packages but still in the same
container. Then question how to do JNDI lookup given entity beans only have local
interfaces?
FYI.
1 both session.jar and entity.jar are self-contained. i.e., no deployment error.
each JNDI name can be viewed from JNDI tree
2. weblogic-ejb-jar.xml for session.jar
<weblogic-ejb-jar>
<description><![CDATA[Generated by XDoclet]]></description>
<weblogic-enterprise-bean>
<ejb-name>PetstoreLogic</ejb-name>
<stateless-session-descriptor>
</stateless-session-descriptor>
<reference-descriptor>
</reference-descriptor>
<jndi-name>PetstoreLogic</jndi-name>
<local-jndi-name>PetstoreLogicLocal</local-jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
3. weblogic-ejb-jar.xml (code snip) for entity.jar
<weblogic-enterprise-bean>
<ejb-name>Account</ejb-name>
<entity-descriptor>
<persistence>
<persistence-type>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>6.0</type-version>
<type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
</persistence-type>
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>6.0</type-version>
</persistence-use>
</persistence>
</entity-descriptor>
<reference-descriptor>
</reference-descriptor>
<local-jndi-name>net.sourceforge.cpetstore/AccountLocalHome</local-jndi-name>
</weblogic-enterprise-bean>
4. if I do
accountLocalHome = (AccountLocalHome) ic.lookup("net/sourceforge/cpetstore/AccountLocalHome");
get error like:
javax.naming.LinkException: . Root exception is javax.naming.NameNotFoundException:
While trying to look up /app/ejb/net.sourceforge.cpetstore-entity.jar#Account/local-home
in /app/ejb/cpetstore-ejb.jar#PetstoreLogic.; remaining name '/app/ejb/net/sourceforge/cpetstore-entity/jar#Account/local-home'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:869)
at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:150)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:338)In weblogic-ejb-jar.xml use jndi-name instead of local-jndi-name in reference-descriptor
element.
"Qiming He" <[email protected]> wrote:
>
I have a problem doing entity beans JNDI look up from a session bean
which is deployed
as a separate package (session.jar) from the entity beans (entity.jar)
I believe if both session bean and entity beans are deployed into one
jar and
I specify ejb-local-reference-description for session bean, it should
work. However,
due to some reason, they have to be in separated packages but still in
the same
container. Then question how to do JNDI lookup given entity beans only
have local
interfaces?
FYI.
1 both session.jar and entity.jar are self-contained. i.e., no deployment
error.
each JNDI name can be viewed from JNDI tree
2. weblogic-ejb-jar.xml for session.jar
<weblogic-ejb-jar>
<description><![CDATA[Generated by XDoclet]]></description>
<weblogic-enterprise-bean>
<ejb-name>PetstoreLogic</ejb-name>
<stateless-session-descriptor>
</stateless-session-descriptor>
<reference-descriptor>
</reference-descriptor>
<jndi-name>PetstoreLogic</jndi-name>
<local-jndi-name>PetstoreLogicLocal</local-jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
3. weblogic-ejb-jar.xml (code snip) for entity.jar
<weblogic-enterprise-bean>
<ejb-name>Account</ejb-name>
<entity-descriptor>
<persistence>
<persistence-type>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>6.0</type-version>
<type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
</persistence-type>
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>6.0</type-version>
</persistence-use>
</persistence>
</entity-descriptor>
<reference-descriptor>
</reference-descriptor>
<local-jndi-name>net.sourceforge.cpetstore/AccountLocalHome</local-jndi-name>
</weblogic-enterprise-bean>
4. if I do
accountLocalHome = (AccountLocalHome) ic.lookup("net/sourceforge/cpetstore/AccountLocalHome");
get error like:
javax.naming.LinkException: . Root exception is javax.naming.NameNotFoundException:
While trying to look up /app/ejb/net.sourceforge.cpetstore-entity.jar#Account/local-home
in /app/ejb/cpetstore-ejb.jar#PetstoreLogic.; remaining name '/app/ejb/net/sourceforge/cpetstore-entity/jar#Account/local-home'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:869)
at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:150)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:338) -
Session vs Entity Bean in Business Layer???
Hi,
I am developing a Hotel Management System project, I am planning to use the following softwares for it:-
Presentation - JSP
Web controller - Action class(Struts)
Business Layer - Session Facade( Stateless Session Bean)
DAO - Hibernate
DB - Oracle 9i
Model - ValueObject
This is what i have decided to use to build the flow of the application.
I have an idea about JSP,STRUTS,HIBERNATE & ORACLE. Since i have used it before.
But in the case of business layer, i have doubt (since i am going to use EJB for the first time) whether to use a Session bean or entity bean where i will be writing my own queries(Stored proc.) as well as i will be using the predefined functions of hibernate to store the data .
I also want to know whether i need to go for StatefullSB or Stateless SB if i use a sessionfacade(which i have planned to do)??
When in what situation i need to for this approach???
Please provide an answer for this & pls. do mention my flow is right or
wrong??
Excepting ur valuable thoughts..
Thanks,
JavaCrazyLoverHi
I also want to know whether i need to go for StatefullSB or Stateless SB if i >use a sessionfacade(which i have planned to do)??
When in what situation i need to for this approach???That depends on how your application will be used.
Stateless and Statefull session bean are different.
If you want to keep informations such as shopping cart, you can use Statefull.
If you plan to have a huge number of request at time, Stateless can be faster.
You can also keep your information such as shopping cart in the session scope of your web jsp tier. (if you use only web client.)
In your case, i would choice, Stateless.
Anybody, correct me if i'm wrong.
Tks. -
How many ejbCreate() can be in Session and Entity Bean???
Hi,
How many ejbCreate() method can be in a Session and Entity
Bean???
How many can be in Stateless and Stateful SessionBean???
How many can be in CMP and BMP SessionBean???
Thanks,
JavaCrazyLoverHow many ejbCreate() method can be in a Session
ion and Entity
Bean???For Stateful Session Beans and Entity Beans, as many as you'd like.
Stateless Session beans can only have one, since their ejbCreate methods can not take any parameters.
>
>
How many can be in CMP and BMP SessionBean???If you mean CMT/BMT(Container-Managed transactions / Bean-Managed Transactions), then
the answer is the same. The create method requirements are independent of the transactional nature of the bean.
If you really mean CMP/BMP(Container-Managed Persistence / Bean-Managed Persistence) , it doesn't apply to session beans, only entity beans. However, even for entity beans, CMP vs. BMP has no bearing on the rules regarding # of create methods.
--ken
>
>
Thanks,
JavaCrazyLover
Maybe you are looking for
-
The page load progress bar that was on the lower right of the window is no longer there. After updating to the latest version of Firefox on my Mac there is no progress bar for the page load. I really miss this feature and can't seem to find a way to
-
Help req : alv grid with multiple row selection
Hi all sap gurus, i have a alv list display program , in which i can select the o/p rows(multiple rows) and perform some actiom based on some icons . now i have to convert this in to grid display this is initial code i.e for list DATA : BEGIN OF ita
-
What is the minimum required for 10g RAC AIX 5.2L on a SAN
We have the following 2 IBM p550's with AIX 5.2L Oracle 10g Hitachi SAN The questions I have are 1. Does one need any addtional software such as HACMP ? 2. Can one use just RAW 'disks' and not use ASM ? 3. Can one using just the raw 'disks' presented
-
Router, login problem.
I go to 192.168.1.1 and it asks for a password and username. I left the username blank, I tryed "admin" it did not work, I tryed my wep password, did not work, and then I tried my modem pass, but none work. I don't remember entering any other usernam
-
I need to reset my admin password, no cd, help!
Hi community, I recently had my faulty hard drive replaced and picked it up today. Luckily they were able to save my data but not my programs. To re-download them I need my password. I assumed it was my old password, but it's not accepting that? I ha