How a stateful session ejb invoke an entity ejb
i have write a stateful session ejb and an entity ejb
i want to invoke the method of the entity ejb in the session ejb.
Do they should in the save package,and archive to a jar package?
Thanks:)
the choice is yours
It not necessary that they shoule be in the same package
Work both ways
You make a call to it in the same way as you call it from a client
i.e. to say that an EJB can invoke another in the same way as a client invoke it...make the home object et.al
Regards
Sanjay
Similar Messages
-
Web Service-Client for stateful session EJB container
Do you know, how to write a Web Service-Client to connect a stateful session EJB container?
A stateful session EJB container ist created with Web Logic 8.1.
Message was edited by n.t.c at Dec 14, 2004 6:09 AMPedja thanks for reply.
I still dont understand what is wrong with my example.
The first peace of the code i wrote (getting the reference to the remote interface object) works pretty well, and even more it is produced automatically by JDeveloper, so why we cant get a reference to the local interface object the same way?
Certanly we should use the local interface for getting access to the resource functioning under the same local jvm and i think it doesnt metter wich app server we really use wls or oas or others
Thanks. Alex. -
Hello,
If I have a stateful session ejb used in a web application, what determines how long that ejb will stay alive or remain available? Specifically, if a user has a session and that user accesses the ejb, then there is a period of inactivity, yet the session remains open, does the ejb hang around? What controls this? I'm using WebSphere 6 as my application server.
Thanks,
-jeffThere are 4 situations to consider....
1) If client calls remove(), then stateful session bean is killed.
2) If the resources are going low on the computer then the container can decide to passivate the bean.
3) If there is a time out for the stateful session bean then
3.1) If bean is in in ready state then the container can take a decision to kill the bean ...
3.2) If the bean is in passivated state then also the container can kill the bean but this time with out calling ejbRemove().
4) If the bean throws a system unchehecked exception then also it kills the bean.
Message was edited by:
Waves
Message was edited by:
Waves -
Stateful session EJB is deployed on cluster members A and B. Client calls a method
on the bean and the request is routed to server A, then A is shut down. The client's
next method invocation is routed to server B where the bean's state has been replicated.
Server A re-joins the cluster and B is shut down, the request routed to A results
in the following:
java.rmi.NoSuchObjectException: Activation failed with: java.io.StreamCorruptedException:
InputStream does not contain a serialized object
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:849)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:168)
at weblogic.common.internal.ReplacerObjectInputStream.<init>(ReplacerObjectInputStream.java:33)
at weblogic.common.internal.ReplacerObjectInputStream.<init>(ReplacerObjectInputStream.java:43)
at weblogic.common.internal.ReplacerObjectInputStream.<init>(ReplacerObjectInputStream.java:54)
at weblogic.ejb20.swap.PassivationUtils.read(PassivationUtils.java:50)
at weblogic.ejb20.swap.ReplicatedMemorySwap.read(ReplicatedMemorySwap.java:111)
at weblogic.ejb20.manager.StatefulSessionManager.getBean(StatefulSessionManager.java:178)
at weblogic.ejb20.manager.StatefulSessionManager.preInvoke(StatefulSessionManager.java:236)
at weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:113)
at weblogic.ejb20.internal.StatefulEJBObject.preInvoke(StatefulEJBObject.java:148)
at com.access360.enrole.apps.ejb.organization.SearchManagerBeanEOImpl.findAllPeople(SearchManagerBeanEOImpl.java:644)
at com.access360.enrole.webclient.organization.person.PeopleList.getPeople(PeopleList.java:148)
at com.access360.enrole.webclient.organization.person.PeopleListServlet.constructPeopleListXML(PeopleListServlet.java:284)
at com.access360.enrole.webclient.organization.person.PeopleListServlet.service(PeopleListServlet.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:213)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:275)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:183)
at com.access360.enrole.webclient.organization.person.SubmitPersonAddServlet.forwardToPeopleList(SubmitPersonAddServlet.java:134)
at com.access360.enrole.webclient.organization.person.SubmitPersonAddServlet.service(SubmitPersonAddServlet.java:114)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:213)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:1265)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1631)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
We are certain that the EJB's entire object graph is Serializable. Any comments on
this failover scenario?
Alex Rodriguez
Software Engineer, Access360
[email protected]
Rajesh,
Thanks for the reply. We are running WL 6.0 SP2 with RP3. We cannot reproduce it
consistently. In your reply you mention "... and EJB handles". Does that refer to
another patch?
As for the code, we will run tests with a scaled down version of the stateful bean
and a simple client servlet. I will post the code asap. The high level call sequence
is: servlet service() -> lookup ejb home -> get cluster aware stub from home -> put
bean handle in http session -> call bean method -> server A goes down -> next call
to the bean -> get handle from replicated http session -> get bean from handle ->
request is routed to server B. java.io.StreamCorruptedException is thrown, sometimes,
when server A re-joins the cluster and a request is routed to it (i.e. server B is
shut-down). One thing I did not mention is that the bean is deployed on server A,
and server A is also the Admin server. We are considering not using the Admin server
to deploy the bean, however, but will add another Managed server.
Will contact support about CR073917: can it be applied to WL 6.0 SP3 with RP3?
Regards,
Alex J. Rodriguez
Rajesh Mirchandani <[email protected]> wrote:
>
>Alex,
>
>Are you able to consitently reproduce this? Could you post your code here?
>
>What version of the Server with Service pack are you using?
>
>If you are using WLS 6.1SP2 and EJB handles contact support and get a patch
>for CR073917.
>
>
>"Alex J. Rodriguez" wrote:
>
>> Stateful session EJB is deployed on cluster members A and B. Client calls
>a method
>> on the bean and the request is routed to server A, then A is shut down.
>The client's
>> next method invocation is routed to server B where the bean's state has
>been replicated.
>> Server A re-joins the cluster and B is shut down, the request routed to
>A results
>> in the following:
>>
>> java.rmi.NoSuchObjectException: Activation failed with: java.io.StreamCorruptedException:
>> InputStream does not contain a serialized object
>> at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:849)
>> at java.io.ObjectInputStream.<init>(ObjectInputStream.java:168)
>> at weblogic.common.internal.ReplacerObjectInputStream.<init>(ReplacerObjectInputStream.java:33)
>> at weblogic.common.internal.ReplacerObjectInputStream.<init>(ReplacerObjectInputStream.java:43)
>> at weblogic.common.internal.ReplacerObjectInputStream.<init>(ReplacerObjectInputStream.java:54)
>> at weblogic.ejb20.swap.PassivationUtils.read(PassivationUtils.java:50)
>> at weblogic.ejb20.swap.ReplicatedMemorySwap.read(ReplicatedMemorySwap.java:111)
>> at weblogic.ejb20.manager.StatefulSessionManager.getBean(StatefulSessionManager.java:178)
>> at weblogic.ejb20.manager.StatefulSessionManager.preInvoke(StatefulSessionManager.java:236)
>> at weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:113)
>> at weblogic.ejb20.internal.StatefulEJBObject.preInvoke(StatefulEJBObject.java:148)
>> at com.access360.enrole.apps.ejb.organization.SearchManagerBeanEOImpl.findAllPeople(SearchManagerBeanEOImpl.java:644)
>> at com.access360.enrole.webclient.organization.person.PeopleList.getPeople(PeopleList.java:148)
>> at com.access360.enrole.webclient.organization.person.PeopleListServlet.constructPeopleListXML(PeopleListServlet.java:284)
>> at com.access360.enrole.webclient.organization.person.PeopleListServlet.service(PeopleListServlet.java:238)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:213)
>> at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:275)
>> at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:183)
>> at com.access360.enrole.webclient.organization.person.SubmitPersonAddServlet.forwardToPeopleList(SubmitPersonAddServlet.java:134)
>> at com.access360.enrole.webclient.organization.person.SubmitPersonAddServlet.service(SubmitPersonAddServlet.java:114)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:213)
>> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:1265)
>> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1631)
>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>>
>> We are certain that the EJB's entire object graph is Serializable. Any
>comments on
>> this failover scenario?
>>
>> Alex Rodriguez
>> Software Engineer, Access360
>> [email protected]
>
-
OC4J, Stateful Session EJB, & Session Timeout
In my J2EE applications, I have a user authentication layer whereby when the user is authenticated against our LDAP repository after logging in, a Stateful Session EJB keeps that conversational state with the client at all times until the user logs out whereby the session is invalidated. This way I keep track of the user's authentication at all times throughout the whole session and for every operation performed (JSPs etc) by the user during the session. All this works fine through my implementation of the Session Facade and Business Delegate patterns.
However, if OC4J times out the Session (set to one hour in the <session-config> <session-timeout> parameter of the web.xml), the user cannot re-login and proceed. The user has to close the whole browser and re-start a new browser, then login and proceed.
This is causing us a few problems with the users who are complaining about having to do so. Is there an easy way around this problem?
Regards
DanielCan you try in a different browser and see whether you can duplicate this ?
Is this a problem with browser - cache ?
regards
debu -
How to call session EJB from EP service in EP 7.0?
Hi,
I am trying to invoke stateless session EJB from my portal service. Both the service and EJB are deployed on the same server which is EP 7.0.
I found [this|http://help.sap.com/saphelp_nw70/helpdata/EN/42/9ddcc9bb211d72e10000000a1553f6/frameset.htm] in SAP help and tried to implement it (added PrivateSharingReference to portalapp.xml and implemented the code), but everytime I try to lookup the session bean and cast it using P4ObjectBroker.narrow() method, I get java.lang.ClassCastException. The object found in JNDI and my portal service have different classloaders, so I suppose this is the problem, but I don't know how to handle it...
Can anyone please help me?
Regards,
TomasHi Satya ,
please go though following blog for used DC concept.
Componentization of Webdynpro Application in CE7.1
In netweaver 7.1 interface controler is abstract and component controller is implementing interface controller so the context data and methods have to be implemented by component controller -
How to run Session ejb client program?
Hi
I am using weblogic server8.1 . I was running an ejb session client program it throws exception like below. Can any one tell me how to run a client in weblogic server. give the syntax for running ejb client.
D:\Weblogicserver\user_projects\domains\mydomain\applications\MyEJB\stateful>jav
a -cp .;c:\j2ee\j2ee.jar;c:\weblogic\classes;D:\Weblogicserver\weblogic81\server
\lib\weblogic.jar PortfolioClient
Exception in thread "main" java.lang.NoClassDefFoundError: PortfolioClient (wron
g name: stateful/PortfolioClient)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
byeIf stateful is the package for the client application, you should be executing from
D:\Weblogicserver\user_projects\domains\mydomain\applications\MyEJB
on the command line. The command should look like -
java -classpath <whatever should be here> stateful.MyClient -
Session ejb 3.0 stateful and same instance
Hello,
I'm using OC4J 10.1.3.3 and EJB 3.0/JSP
In a jsp I do two different lookup for a STATEFUL
session ejb 3.0, and I want two different instances
of the ejb, instead I get the same one...
Please help. Thanks.Hi,
The code for stateful is perfectly fine and working in a normal way. The way you are trying to implement the stateful session bean in your application is wrong.
think of binding the stateful session bean with HttpSession object.
So that you will get a unique stateful session bean object. -
Stateful session local ejb problem
Hi,
I'm having problems with a stateful session ejb, which i am accessing using the local interface from a servlet. I get the local object and insert it in the session and retrieve it from the session in the following requests to this servlet.
My questions are:
Should local interfaces be used from servlets?, in the servlet descriptor you can use the <ejb-local-ref> to do this and it works.
And if they can be used from servlets, what do i save in the session to preserve the ejb between requests?.
Thanks
JuanHi,
I'm having problems with a stateful session ejb, which i am accessing using the local interface from a servlet. I get the local object and insert it in the session and retrieve it from the session in the following requests to this servlet.
My questions are:
Should local interfaces be used from servlets?, in the servlet descriptor you can use the <ejb-local-ref> to do this and it works.
And if they can be used from servlets, what do i save in the session to preserve the ejb between requests?.
Thanks
Juan -
Session EJB as a Topic subscriber
Hi ,
is it possible to create a topic subscriber inside a session ejb( both stateless and stateful ) with an asynchronous message listener ?
Regards,
SajithA<WSI-17> WLS6.1 does not support Stateful Session beans as web services. Maintaining
client state is a complex problem for web services that does not have a proper solution
in the J2EE framework (stateful session and HTTP sessions are inappropriate). WLS
7.0 does provide a web service capability for storing client data using an entity
bean.
"Elie Dagher" <[email protected]> wrote:
>
Q:WSI17-Does weblogic support Stateful session Ejb as a Web service? -
Cluster and Session EJB replication
I have a dedicated Weblogic 5.1 box running with SP 6 serving up JSP and Servlets.
The Servlets do look ups for session EJBs, which are hosted on a separate box behind
a firewall. My question is:
If I implement clustering of the JSP/Servlet Weblogic Instance so that I have four machines in a cluster,
does Weblogic 5.1 or 6.0 replicate the handle to the session EJB's stub only so that in case server 1 crashes,
Server 2 will be able to retrieve a handle to the session EJBs?
Thanks,
Paul Richardson
If the handle is in the HttpSession, then the handle will be replicated. If
the EJB server fails over in WL 5.1, the stateful session EJBs will be lost.
WL 6.0 supports statefull session EJB replication for failover, but I
suggest that you not use it unless you have a specific architectural reason
to.
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
+1.617.623.5782
WebLogic Consulting Available
"Paul Richardson" <[email protected]> wrote in message
news:[email protected]..
>
> I have a dedicated Weblogic 5.1 box running with SP 6 serving up JSP and
Servlets.
> The Servlets do look ups for session EJBs, which are hosted on a separate
box behind
> a firewall. My question is:
>
> If I implement clustering of the JSP/Servlet Weblogic Instance so that I
have four machines in a cluster,
> does Weblogic 5.1 or 6.0 replicate the handle to the session EJB's stub
only so that in case server 1 crashes,
> Server 2 will be able to retrieve a handle to the session EJBs?
>
>
> Thanks,
> Paul Richardson
-
Error retriving session EJB with getEJBObject() from handle
the Code i use is
CREATE:
Handle handle = user.getHandle();
session.setAttribute("user",handle);
GET:
Handle handle = (Handle)session.getAttribute("user");
UserEJB user = (UserEJB)handle.getEJBObject();
// the abowe row gets the error.
Error:
java.lang.ClassCastException: org.omg.stub.javax.ejb._EJBObject_Stub
ive read several topics that say that this should work but it doesnt??
The bean is a Stateful Session EJB.
Ive tried to recompile both client and server serveral times, to prevent te stubs from beeing different. But no result.
Help please !!!!!!try like this..
Create--
session.setAttribute("searchremote",tsremote.getHandle());
and get it like this....
Handle handle = (Handle)session.getAttribute("searchremote");
tsremote = (TradesSearchRemote)handle.getEJBObject();
if (tsremote == null)
tsremote = getBeanReference();
session.setAttribute("searchremote",tsremote.getHandle());
I am doing like this and it is working fine.... -
How create EJB 2.1 Stateful Session Bean in a EJB 3.0 Session Bean
Hi All,
We have been developing on EJB 2.1. We are now adding a module on EJB 3.0.
How can we "create" a stateful session bean with create method signature similar to create(String id)?
We have tried
// this is the remote interface
@EJB AddressBean abean;
But not working
Any help will be appreciated.There is no explicit create() call for EJB 3.0 session beans. It doesn't really matter though
since you can accomplish the same thing by defining your own business method to act
as an initializer for whatever state you'd like. E.g.
@Remote
public interface FooInterface {
public void initialize(String id);
// ... other business methods
@EJB FooInterface fooRef;
fooRef.initialize("foo");
--ken -
How to intantiate Stateful session bean in EJB 3 ?
In EJB 2.x, to instantiate a Stateful Session bean the process was:
1. Lookup Home object
2. call create(args) method on Home, that in turn would call corresponding ejbCreate(args) on the bean implementation.
Now, in EJB 3, there is no concept of Home interaface, How can I instantiate a stateful session bean with some initialization parameters.
ThanksJust the spec. NetBeans should only be providing the ability to add an ejbCreate method if the bean exposes a Local or Remote 2.x view.
Each lookup or injection of a stateful session bean results in a new bean instance. As long as you call your methods to populate the additional
state right after first acquiring the stateful session bean reference it will work.
--ken -
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
Maybe you are looking for
-
How to tell if you have correct USB 2.0 driver?
Hi, I seem to be having a problem with my front panel usb wich are plug in JUSB3. When i connect a external case in these front panel i get message that a have a high speed device plug in a low speed hub. My D-bracket is install in JUSB2. If i plu
-
Duplicated text in TO, CC, BCC lines (very weird...)
I'm using Mail 3.1 on 10.5.1 and it was fine for weeks, but now... not so much. I'm not even sure what to look for to solve my own problem, so I'm hoping to get some help. So here's what happens when I type anything into any of these fields. Let's sa
-
Problems mounting a Camera as USB device [RESOLVED]
Usually, when I plug in my Canon PowerShot Pro 1 to my Archlinux laptop, I get an icon appearing on my desktop. I just double click on this icon and Nautilus opens up showing the individual photos. However, I've recently invoked pacman -Syu and now
-
Hi everyone, The following code create an execution time error and I can not find the solution for this. If you help me, I will be happy. import java.io.*; class Files { // properties static int first = 0; // constructor public Fi
-
Discoverer 4.1.33 report fails Item dependency not found in EUL for 1 user
I support Discoverer 4.1.33 installed on number of Windows XP sp3 PCs. Oracle database on Server is 10g. We have a number of Discoverer programs/reports that have been running for years. A particular program sales order report works fine for several