Get Session Object return NullPointerException
Hi,
i write my code this give me NullPointerException
ClientBean client = (ClientBean)FacesContext.getCurrentInstance().getExternalContext().
getRequestMap().get("client");
here is my faces-config.xml
<managed-bean>
<description>
Client Bean
</description>
<managed-bean-name>client</managed-bean-name>
<managed-bean-class>ClientBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Anybody have an idea why ?
thanks,
piwi
Your bean is defined with session scope and you use the method getRequestMap for request scope attributes.
Try getSessionMap().
Similar Messages
-
How can i get session object based on session id?
I have tried searching in forum but i can't find any solution that i can get session object based on session id and i also would like to know how to check whether the session is still active? My company currently using weblogic 5.1. I really hope that some one or anyone can help. I am new in using Servlet. I hope that i can find some answer here. Thank you.
I have a need to get a Session object from a session id, so I don't think that the above should be deprecated. Here is my use case:
0. I am displaying files in a file list
1. I am downloading files.
2. I am downloading files through a Servlet
3. I am displaying the files as images in an applet
4. The applet is ImageJ, and it apparently uses a full URL to download the file.
5. I use request.getRequestURL() in the applet .jsp to get the full URL (the hostname and port)
6. My app server is OC4J and it's behind an apache server and is host aliased.
7. Thus the hostname is different between my applet .jsp and the Servlet URLs
8. Thus I have 2 different sessions
9. Thus I need to pass the session id (or some other unique identifier).
10. I could stored the unique identifier in the application object, but then I would need to clean it up
11. I cannot pass the the full path to the image due to security problems (what if someone downloads my password file?)
12. I would like this to work in a clustered environment
13. I think that WebDAV would solve my problems, since I could pass a full URL of webDAV to ImageJ for download. However, I am unsure how the security of WebDAV would work with ImageJ/URLConnection. I will have to research this feature in ImageJ. -
hi,
is possible obtain the session object in a class method without send it from jsp as a parameter?you mean like this?
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res)
throws Exception {
SessionManager sm = new SessionManager(req);
....sessionmanager class
package com....;
import java.util.*;
import java.lang.reflect.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.jsp.*;
import javax.servlet.http.*;
import org.apache.log4j.*;
* <code>SessionManager</code> is a wrapper for request, response and session
* @author
public class SessionManager {
static Logger log = Logger.getLogger(SessionManager.class);
** Holds string containing the unique identifier assigned to this session
private String sessionid;
** Holds HttpSession object
private HttpSession session;
** Holds request object object - must be passed in by the calling application
private HttpServletRequest request;
** Holds response object - any application sending a response must call
** session manager
private HttpServletResponse response;
** Holds Servlet Context - useful if logging is reqd.
private ServletContext context;
* Page context.
private PageContext pctx = null;
** Constructor to initialize with a request object
public SessionManager(HttpServletRequest req) {
request = req;
session = req.getSession();
sessionid = session.getId();
** Constructor to initialize with a pagecontext object - convenient to call from jsp's
public SessionManager(PageContext pctx) {
request = (HttpServletRequest) pctx.getRequest();
response = (HttpServletResponse) pctx.getResponse();
context = pctx.getServletContext();
session = pctx.getSession();
sessionid = session.getId();
this.pctx = pctx;
** Constructor to initialize with request, response objects
public SessionManager(HttpServletRequest req, HttpServletResponse resp) {
request = req;
response = resp;
session = req.getSession();
sessionid = session.getId();
** Constructor to initialize with request, servletcontext objects
public SessionManager(HttpServletRequest req, ServletContext ctx) {
request = req;
context = ctx;
session = req.getSession();
sessionid = session.getId();
** Constructor to initialize with request, response and context objects
public SessionManager(HttpServletRequest req, HttpServletResponse resp, ServletContext ctx) {
request = req;
response = resp;
context = ctx;
session = req.getSession();
sessionid = session.getId();
** Setter and getter methods
public void setRequest(HttpServletRequest req) {
request = req;
session = req.getSession();
sessionid = session.getId();
** Setter and getter methods
public void setContext(ServletContext ctx) {
context = ctx;
** Setter and getter methods
public ServletContext getContext() {
return context;
public void createLoginSession(java.io.Serializable obj) {
if (obj == null)
log.debug("Object is null");
setAttribute("user", obj);
public void setAttribute(String key, java.io.Serializable obj) {
session.setAttribute(key, obj);
public void removeAttribute(String key) {
session.removeAttribute(key);
** Setter and getter methods
public HttpServletRequest getRequest() {
return request;
** Setter and getter methods
public HttpServletResponse getResponse() {
return response;
** Checks if either member session or guest session exists
public boolean isLoggedIn() {
if (session.getAttribute("user") != null)
return true;
else
return false;
public long getCreationTime() {
return session.getCreationTime();
** Setter and getter methods
public String getId() {
return session.getId();
public long getLastAccessedTime() {
return session.getLastAccessedTime();
public int getMaxInactiveInterval() {
return session.getMaxInactiveInterval();
** Setter and getter methods - also useful for retrieving state object(s)
public Object getAttribute(String name) {
if (session != null)
Object sObject = session.getAttribute(name);
//Log.debug("Session State for the object "+name+" is "+sObject);
return sObject;
else
return null;
** Setter and getter methods - gets enum of all stored state objects
public Enumeration getAttributeNames() {
return session.getAttributeNames();
public void invalidate() {
session.invalidate();
// Remove all object that is bound to this session
//wip : Resetting instance variable.
//This is necesary as further operations on session will
//result in illegalstateexception
session = null;
public boolean isNew() {
return session.isNew();
public void setMaxInactiveInterval(int interval) {
session.setMaxInactiveInterval(interval);
* This method returns the host url in the form "www.carclub.com".
* <p>
* The return value is compatible with default_website field of clubs DB table.
* </p>
* @return host url present as part of the http request object
public String getHostURL()
if (request == null)
return null;//No request object present, hence return null
String str = request.getServerName();
//Log.debug("--- The request URL is --- " + str);
return str;
* Flushes <code>out</code> stream.
public void flush()
throws IOException
if (pctx != null)
pctx.getOut().flush();
} -
Urgent: Failed to get the object returned from the server
Hi there,
I'm debugging someone's code which make use of RMI to implement the client/server.
I found that when the client request the object from the server, the server return the object properly. But on the client side, it returned "java.io.EOFException". Don't know how to resolve it. Pls HELP !!
Thanks.
-Maggie
==============
Here is the output:-
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.EOFException
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:343)
at java.io.ObjectInputStream.readInt(ObjectInputStream.java:1980)
at javax.swing.ImageIcon.readObject(ImageIcon.java:371)
at java.lang.reflect.Method.invoke(Native Method)
at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java:2214)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1411)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at java.util.Hashtable.readObject(Hashtable.java:792)
at java.lang.reflect.Method.invoke(Native Method)
at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java:2214)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1411)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2263)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:519)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2263)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:519)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:300)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:134)
at com.ptec.rms.app.olap.modelbuilder.OlapMBServiceImpl_Stub.getPanel(Unknown Source)
at com.ptec.rms.app.sc.SystemConsoleDesktop.changeService(SystemConsoleDesktop.java:141)at least you have the benefit of the code to work with! :)
-
How to obtain a session object from session id
Hi all,
let say that I have a list of session ids, and I want by scheduald task to check whether the session is alive\active.
I saw that the HttpSessionContext was deprecated. (see: http://javasolution.blogspot.com/2007/08/getting-session-object-using-session-id.html)
Is there any other way to check if the session is alive?Do it the other way: let the session itself notify that it is not alive anymore.
Implement a HttpSessionListener which adds the session to list/set/map on create and removes the session from it on destroy, register it in the web.xml and run it. -
Handling Session Object in WebDynpro Java
*After Validation in WebDynpro Component, if the user is not authorized to access the page, i want to close the session of that Particular login user and sent back to the login page (home page)*
i don't want to close the window
come out of the application to the login page
In Java, i can get session object by request.getSession(true);
in webDynpro how can i get the Session Object.
Thanks
NSMHi,
try to use the following method
WDClientUser user;
user.forceLoggedInClientUser()
Regards
Ayyapparaj -
How to get Multiple Values for a key from a session object?
Hi,
It might seem dumb but I am facing a problem here with the session object. I'll paste the session object's content from the netbeans "Local Variables" window for clarity -
Name Type Value
hsession StandardSessionFacade #66
session LWSFSession #69
inherited
attributes Hashtable #80
[0] Hashtable$Entry "cart"=>#115
key String "cart"
value DummyCart #115
item null
submit null
v Vector
[0] String Full Metal Jacket
[1] String As Good As It Gets
[2] String Tim
What I want is to get the values "Full Metal Jacket", "As Good As It Gets" and "Tim" from the session obejct?
The problem I am facing is that if I do a session.getAttribute("cart"), I'll get a single value in return. What will that value be? Will it be "item", "submit" or "v"? And if I want all the values in v above, how can I get them?
Thanks.None of the above.
HttpSession.getAttribute() will return what you put into it using HttpSession.setAttribute(). In your case, it'll return an Object which you need to cast to DummyCart. Then you can access the data in DummyCart using the API of the DummyCart class.
hth -
How to get Request/Session objects in a Webdynpro application
Hi
I am working in Enterprise Portal 7.0.
in one of the iViews which displays a JSP page, i have set a parameter in request and session objects.
How can i get it in my Webdynpro ABAP Application?
Thanks & Regards
Abhimanyu Lhi Abhimanyu
I believe originally access to session was deliberately not made available inside WDA.
Growing security concerns due to misuse of session information and
perhaps other reasons as well.
X.509 is considered a better approach.
This may not help you in your problem.
But you may see a trend in WDA pushing more robust and client independent
approaches.
Full x.509 access should remove the need for session fiddling.
Also when developers access such session info directly, there is a possiblity
when they dont understand the technology exactly that they create a security hole.
You may know how to do safely, it is however discouraged.
Im not aware of a way to get at the session info inside the WDA framework.
Well not without a mod to the framework.
It may be possible without a mod, but I dont know the trick.
If someone has a little trick... please post.
You may need to use BSP, if your only solution requires access to the session info.
regards
Phil -
How can i get the value stored in the session object using its sessionid
how can i get the value stored in the session object using its sessionid by running stand alone java application
myforum wrote:
how can i get the value stored in the session object using its sessionid by running stand alone java applicationThis does not seem to make sense! You need at least to give a lot more detail of what you are doing. -
Update object returned by a business method in stateful session bean
I have a business method in stateful session Bean returning an Object "myObject getObject()". This object can be modified by the client.
Is it necessary at the end to notify the bean about the changes with some kind of business method "setObject(Object myObject)"? or
the client and the bean have the same reference to the object and it isn't necessary?
ThanksWhen an EJB returns a value, it is serialised across the wire and is effectively lost to the EJB. Any changes to the returned object by the client, will have to be notified by a call on the EJB, as in your post.
Dave -
Filter Objects returned by Get-ChildItem
Hello there,
I had a look at the properties available for objects returned by Get-ChildItem command using:
PS C:\> Get-ChildItem | Get-Member
This command shows that objects returned by Get-ChildItem command possess properties
'Name, FullName, LastAccessTime etc...'
If I declare a variable to retrieve objects starting with 'Program':
PS C:\> $ChildItems_Program = Get-ChildItem -name 'Program*'
and check what is stored in $ChildItems_Program, it shows me two objects/items as shown below:
PS C:\> $ChildItems_Program
Program Files
Program Files (x86)
However if I try to access properties 'Name, FullName, LastAccessTime' from the first object saved in $ChildItems_Program
PS C:\> $ChildItems_Program[0] | Select -Property Name, FullName, LastAccessTime
Name FullName LastAccessTime
I can't see any results for above command- Shouldn't it return the properties of first object saved in $ChildItems_Program?
Can anyone please guide.
Thank you!
Hi,
Tommy is right, using -Name doesn't actually return the full object. When you use that parameter, you're getting back an array of names only. Here's how you can tell:
PS C:\> $ci_program = Get-ChildItem -Name 'Program*'
PS C:\> $ci_program.GetType()
IsPublic IsSerial Name BaseType
True True Object[] System.Array
PS C:\> $ci_program[0].GetType()
IsPublic IsSerial Name BaseType
True True String System.Object
PS C:\> $ci_program[0] | Get-Member -MemberType Property
TypeName: System.String
Name MemberType Definition
Length Property int Length {get;}
PS C:\> $ci_program
Program Files
Program Files (x86)
Here's what you should see if you get objects back from gci, using -Filter (I use -Path here):
PS C:\> $ci_program_object = Get-ChildItem -Path 'Program*'
PS C:\> $ci_program_object.GetType()
IsPublic IsSerial Name BaseType
True True Object[] System.Array
PS C:\> $ci_program_object[0].GetType()
IsPublic IsSerial Name BaseType
True True DirectoryInfo System.IO.FileSystemInfo
PS C:\> $ci_program_object[0] | Get-Member -MemberType Property
TypeName: System.IO.DirectoryInfo
Name MemberType Definition
Attributes Property System.IO.FileAttributes Attributes {get;set;}
CreationTime Property datetime CreationTime {get;set;}
CreationTimeUtc Property datetime CreationTimeUtc {get;set;}
Exists Property bool Exists {get;}
Extension Property string Extension {get;}
FullName Property string FullName {get;}
LastAccessTime Property datetime LastAccessTime {get;set;}
LastAccessTimeUtc Property datetime LastAccessTimeUtc {get;set;}
LastWriteTime Property datetime LastWriteTime {get;set;}
LastWriteTimeUtc Property datetime LastWriteTimeUtc {get;set;}
Name Property string Name {get;}
Parent Property System.IO.DirectoryInfo Parent {get;}
Root Property System.IO.DirectoryInfo Root {get;}
PS C:\> $ci_program_object
Directory: C:\
Mode LastWriteTime Length Name
d-r-- 1/26/2014 12:40 AM Program Files
d-r-- 3/28/2014 12:07 PM Program Files (x86)
Don't retire TechNet! -
(Don't give up yet - 12,700+ strong and growing) -
Is there any way to get information from the session in business class
without actually passing a reference down into my business classes. Here is
what I want to do, lets say I have the fo0llowing classes:
User -- contains username and password
LoginServlet --- adds a User object to the session
OrderServlet --- adds a new order to the database
Order --- represents an order
Log --- class used for logging transactions
The user logins in using the LoginServlet which adds a user object to the
session. Later the user creates a order. When I order is created it
generates a log. In the log class I would like to be able to access the
user object without having to pass the session object from OrderServlet ->
Order -> Log.
This is just a simple example. In my actual implementation I need to do
this several classes further down the chain. Any ideas?
-Fran
You could also use a ugly singleton, but then you are on your own with
classes reusability because they would be tight to the signleton.
Or maybe you write it in a properties file used by the logging class,
but really you should pass the objects : it's not fun but it's the way
it should be done :)
Mathieu
Filip Hanik wrote:
>
> not really,
> the session is only accessible from a servlet. You would have to pass the
> information down through the method calls.
>
> imagine if everything could access the session, it would be kind of
> confusing to debug.
>
> Filip
>
> "Francis Simon" <[email protected]> wrote in message
> news:[email protected]...
> > Is there any way to get information from the session in business class
> > without actually passing a reference down into my business classes. Here
> is
> > what I want to do, lets say I have the fo0llowing classes:
> >
> > User -- contains username and password
> > LoginServlet --- adds a User object to the session
> > OrderServlet --- adds a new order to the database
> > Order --- represents an order
> > Log --- class used for logging transactions
> >
> > The user logins in using the LoginServlet which adds a user object to the
> > session. Later the user creates a order. When I order is created it
> > generates a log. In the log class I would like to be able to access the
> > user object without having to pass the session object from OrderServlet ->
> > Order -> Log.
> >
> > This is just a simple example. In my actual implementation I need to do
> > this several classes further down the chain. Any ideas?
> >
> > -Fran
> >
> >
-
Get JSF objects in a Filter Class
Hi! I have a problem with my JSF application. As the most of the web applications I have a login at the begining and I place a Listener - Filter classes for catching the session timeout to returning the user to the login page. All this works OK. The problem it´s to validate that the user only has 1 session open at the time, when the user begin session I change a flag into it's database row, and when the user logout the flags change again to false (both actions (login and logout) was fired by the user clicking it's respective buttons), this works fine, but I want to change the data flag in the database row with the timeout Filter classes after pass 1 minute. My Filter class it's like this:
public void doFilter(ServletRequest request,ServletResponse response, FilterChain filterChain) throws IOException,ServletException {
if ((request instanceof HttpServletRequest) && (response instanceof HttpServletResponse)) {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
if (!StringUtils.contains(httpServletRequest.getRequestURI(), "welcomeJSF.jsp")) {
if((httpServletRequest.getRequestedSessionId() != null) && !httpServletRequest.isRequestedSessionIdValid()){
/* 1 */
FacesContext context = FacesContext.getCurrentInstance();
User user = (User) context.getExternalContext().getSessionMap().get("simpleUser");
UserDAO conn = new UserDAO();
List users = conn.findByNumber(new Long(user.getNumber()));
persistence.User userDB = (persistence.User) users.get(0);
userDB.setUse(false);
Transaction tx = conn.getSession().beginTransaction();
conn.save(userDB);
tx.commit();
conn.getSession().close();
/* 2 */
String timeoutUrl = httpServletRequest.getContextPath()+ "/faces/" + "welcomeJSF.jsp";
System.out.println("Session is not invalid. Redirecting to login page. ");
httpServletResponse.sendRedirect(timeoutUrl);
return;
filterChain.doFilter(request, response);
}When I comment from 1 to 2 works fine, but if I want to get the context.getExternalContext().getSessionMap().get("simpleUser") i get this error:
java.lang.NullPointerException
at validadores.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)This is because I'm working in a diferent conexts? How can I get Jsf objects from ServletRequest? or to pass getExternalContext().getSessionMap() to the filter class? Any ideas to change the database when the session timeouts if I'm using hibernate?
Thanks for your time and help!correction :
MyObjectProxy extends ObjectProxy{
override callProperty(
// your dyna logic
and expose new MyObjectProxy(dynaInstance) -
Using a session object to hold the value of a record set?
Hi,
I'm trying to hold the value of a record set (or literally the content of a column in a query in a db) in a session variable so that I can call on this later and insert into another table.
I'm not sure of the correct syntax, I've already made a connection to the DB. I'm trying the following but it doesnt seem to like the code:
<% session.setAttribute("code",rs("column_name")); %>
<%String attrib =
String.valueOf ( session.getAttribute("code")); %>
Hello <%= attrib %>
Any ideas, I dont know how to reference the record set, I declared the recordset previously as rs. Help! Can't find examples anywhere on the net!So just to recap. I appear to be seeing the column name "custorderno" within the Microsoft Access query "lastcust". But I get "no data found" when I run the following code (which I have sectioned off)
<!-- connect to database and lastcust query --!>
<%
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Tomcat/jakarta-tomcat-4.1.31/webapps/ROOT/Oatcake.mdb","","");
Statement statement = conn.createStatement();
String sql = "SELECT * FROM lastcust";
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
%>
<TR><TD><%= rs.getString("custorderno") %></TD>
</TR>
<% session.setAttribute("code",rs.getString("custorderno")); %>
<% String attrib =
String.valueOf ( session.getAttribute("code") ); %>
Hello <%= attrib %> [B]
<%
%>
</TABLE>
<%
if (statement != null)
statement.close();
if (conn != null)
conn.close();
catch (Exception e) {out.print(e);}
%>
</BODY>
</HTML>
No as mentioned I am (as you can see) declaring everything as a string when in actual fact the contents of the "custorderno" within the query is set to a autonumber within MS Access.
The while loop does work by returning the contents but the session object part is not working correctly with the following result returned:
[B]java.sql.SQLException: No Data Found
Help please! -
Hello,
We have an EJB3 application deployed to an Oracle AS 10.1.3.1.0 instance.
Our main point of entry to the application is a stateful session bean (that controls access), that has injected several other stateful session beans.
Like this:
+@Stateful(name = "TstreamUserSession")+
+public class TstreamUserSessionBean extends UserSessionBean implements TstreamUserSession {+
+@EJB(name = "ContactSession")+
private ContactSessionLocal contactSession;
+@EJB(name = "GuestSession")+
private GuestSessionLocal guestSession;
+@EJB(name = "TechCustomerSession")+
private TechCustomerSessionLocal techCustomerSession;
+@EJB(name = "PmSession")+
private PmSessionLocal pmSession;
+@EJB(name = "CustomerSession")+
private CustomerSessionLocal customerSession;
+@EJB(name = "PartnerSession")+
private PartnerSessionLocal partnerSession;
+@EJB(name = "AdminSession")+
private AdminSessionLocal adminSession;
+@EJB(name = "SuperAdminSession")+
private SuperAdminSessionLocal superAdminSession;
+@EJB(name = "VmSession")+
private VmSessionLocal vmSession;
+public TstreamUserSessionBean() {+
+}+
+...+
In this class, we also look up these sessions, because we need several instances of these, in this manner:
+private synchronized Object getSessionInstance(String sessionName) throws AccessDeniedException {+
+try {+
InitialContext ic = new InitialContext();
return ic.lookup("java:comp/env/" sessionName);+
+} catch (NamingException e) {+
+}+
+}+
However, we keep getting the following messages after a certain period.
java.io.IOException: Unable to find session object 2816103596632839360 for location 'AdminSession'
+10/01/12 11:50:04 at com.evermind.server.ejb.EJBInternalInputStream.resolveObject(EJBInternalInputStream.java:70)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.checkResolve(ObjectInputStream.java:1346)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBObject.activateBean(StatefulSessionEJBObject.java:581)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBObject.remove_X(StatefulSessionEJBObject.java:213)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBObject.remove_X(StatefulSessionEJBObject.java:159)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBHome.processTimedOutSessions(StatefulSessionEJBHome.java:371)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBHome.cleanUpMaintenance(StatefulSessionEJBHome.java:306)+
+10/01/12 11:50:04 at com.evermind.server.ejb.EJBTask.run(EJBTask.java:47)+
+10/01/12 11:50:04 at com.evermind.util.Task.schedule(Task.java:51)+
+10/01/12 11:50:04 at com.evermind.util.TaskManager.run(TaskManager.java:221)+
+10/01/12 11:50:04 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)+
+10/01/12 11:50:04 at java.lang.Thread.run(Thread.java:595)+
I guess this occurs when the stateful session TstreamUserSession is reactivated?
Or when the ones being injected are passivated?
Any idea why this occurs, or how to suppress it, because it really spams our logs...
Thanks.Hello,
We have an EJB3 application deployed to an Oracle AS 10.1.3.1.0 instance.
Our main point of entry to the application is a stateful session bean (that controls access), that has injected several other stateful session beans.
Like this:
+@Stateful(name = "TstreamUserSession")+
+public class TstreamUserSessionBean extends UserSessionBean implements TstreamUserSession {+
+@EJB(name = "ContactSession")+
private ContactSessionLocal contactSession;
+@EJB(name = "GuestSession")+
private GuestSessionLocal guestSession;
+@EJB(name = "TechCustomerSession")+
private TechCustomerSessionLocal techCustomerSession;
+@EJB(name = "PmSession")+
private PmSessionLocal pmSession;
+@EJB(name = "CustomerSession")+
private CustomerSessionLocal customerSession;
+@EJB(name = "PartnerSession")+
private PartnerSessionLocal partnerSession;
+@EJB(name = "AdminSession")+
private AdminSessionLocal adminSession;
+@EJB(name = "SuperAdminSession")+
private SuperAdminSessionLocal superAdminSession;
+@EJB(name = "VmSession")+
private VmSessionLocal vmSession;
+public TstreamUserSessionBean() {+
+}+
+...+
In this class, we also look up these sessions, because we need several instances of these, in this manner:
+private synchronized Object getSessionInstance(String sessionName) throws AccessDeniedException {+
+try {+
InitialContext ic = new InitialContext();
return ic.lookup("java:comp/env/" sessionName);+
+} catch (NamingException e) {+
+}+
+}+
However, we keep getting the following messages after a certain period.
java.io.IOException: Unable to find session object 2816103596632839360 for location 'AdminSession'
+10/01/12 11:50:04 at com.evermind.server.ejb.EJBInternalInputStream.resolveObject(EJBInternalInputStream.java:70)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.checkResolve(ObjectInputStream.java:1346)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)+
+10/01/12 11:50:04 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBObject.activateBean(StatefulSessionEJBObject.java:581)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBObject.remove_X(StatefulSessionEJBObject.java:213)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBObject.remove_X(StatefulSessionEJBObject.java:159)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBHome.processTimedOutSessions(StatefulSessionEJBHome.java:371)+
+10/01/12 11:50:04 at com.evermind.server.ejb.StatefulSessionEJBHome.cleanUpMaintenance(StatefulSessionEJBHome.java:306)+
+10/01/12 11:50:04 at com.evermind.server.ejb.EJBTask.run(EJBTask.java:47)+
+10/01/12 11:50:04 at com.evermind.util.Task.schedule(Task.java:51)+
+10/01/12 11:50:04 at com.evermind.util.TaskManager.run(TaskManager.java:221)+
+10/01/12 11:50:04 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)+
+10/01/12 11:50:04 at java.lang.Thread.run(Thread.java:595)+
I guess this occurs when the stateful session TstreamUserSession is reactivated?
Or when the ones being injected are passivated?
Any idea why this occurs, or how to suppress it, because it really spams our logs...
Thanks.
Maybe you are looking for
-
Customer service has one solution for my problem
My Cisco 4335 STB has been experiencing all of the usual issues reported here and on other forums. 1) Caller ID has never worked (I've run the troubleshooter and rebooted many times. I see the test message caller ID, no joy displaying during a test c
-
IPhone 4 does not see my home WiFi network anymore.
All of a sudden, a few days ago, my wife's iPhone 4 (initially with iOS 6.0.1, now with iOS 6.1) does not see anymore my home WiFi network (created by a Time Capsule), to which it connected automatically. This has worked flawlessly for years but now
-
Pressing "Pause" twice causes my Shuffle to move to the next song.
When I am listening to a specific song on my iPod Shuffle, (Thank You For The Venom-My Chemical Romance) which I purchased today via the iTunes Music Store, I press "Pause" and it pauses correctly but when I try to resume play, it switches to the nex
-
I am trying to clean up an old printer installation. I am down to one file that says it cannot be opened or emptied out of the trash because it is still open. When I drag it out of the trash and try to open it, it says I need to have an application t
-
Update a subst() with other substr() value from same row
Oracle 10.2.4.0 Given table MYTEST: Name Null? Type NAME_IND VARCHAR2(15) LOCAL_DATA VARCHAR2(30)need to update every row, effec