I'm replying to this somewhat old thread just to say that I have found
the problem.
The problem was that I had stored something as a SessionState Object
(SSO), then I forwarded the user to another website to do some
authentication which forwarded the user back to my site. But when the
user came back to me site, the SSO was null. Correction: it was
/sometimes/ null. Sometimes it worked fine.
Why was that? After much scratching of my head I found the answer, and
it was a very simple answer. The URL of the site I was originally on
didn't have the "www." in front of it. But when the authenticating site
forwarded the user back to my site, it used the URL with "www." in
front, thus causing it to be a different site with different cookies,
thus a different session id, and thus different SSOs.
Thank you to this great community for good suggestions.
Tim Koop
t...@timkoop.com <mailto:t...@timkoop.com>
www.timkoop.com <http://www.timkoop.com>
On 11/05/2011 2:17 PM, Tim Koop wrote:
Well, I just tried checking the session id like this, and it is in
fact the same after coming back. And the SessionState objects started
working too!
So then I took out this session id code, and the SessionState objects
are still working.
So now it's all working fine, and I am left scratching my head
wondering why.
Thank you both for your ideas. Maybe something fixed it, but I don't
know what.
Tim Koop
t...@timkoop.com <mailto:t...@timkoop.com>
www.timkoop.com <http://www.timkoop.com>
On 11/05/2011 1:33 PM, Josh Canfield wrote:
Are you sure you're getting the same session when you come back to the
page? try dumping the session id.
@Inject
private HttpServletRequest request;
void onActivate() {
final HttpSession session = request.getSession(false);
log.debug(session == null ? "Null session" : ("Session Id: " +
session.getId()));
}
Josh
On Wed, May 11, 2011 at 11:17 AM, Tim Koop<t...@timkoop.com> wrote:
Thanks Josh (and Thiago).
I added (create = false), and this certainly got rid of the error
message.
However, my session object is still either not getting set correctly
(even
though I clearly visit the page where it gets set, and I even write a
message to the log saying I was there), or it isn't being retrieved
correctly, because it is null when I want to read it.
My only thought is this: On the page where I set the session
object, that
page returns a java.net.URL object, redirecting the browser to
another page.
Perhaps this is preventing the session object from being stored
correctly?
And no, I don't plan to actually use a String as a SessionState
Object. I'm
just testing with it.
Thanks.
Tim Koop
t...@timkoop.com<mailto:t...@timkoop.com>
www.timkoop.com<http://www.timkoop.com>
On 11/05/2011 12:39 PM, Josh Canfield wrote:
http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/annotations/SessionState.html
Specifically:
public abstract boolean create
If true (the default), then referencing an field marked with the
annotation will create the SSO. If false, then accessing the field
will not create the SSO, it will only allow access to it if it already
exists.
Default:
true
This thread might be helpful.
http://tapestry.1045711.n5.nabble.com/SessionState-for-simple-types-td2839381.html
or this one
http://tapestry.1045711.n5.nabble.com/SessionState-error-td2432233.html
Josh
On Wed, May 11, 2011 at 10:01 AM, Tim Koop<t...@timkoop.com> wrote:
I'm having a little problem with even a simple SessionState String
object.
On one page I have this:
@SessionState
private String userColour;
...
userColour = "red";
Then on a subsequent page I have this:
@SessionState
private String userColour;
...
System.out.println("colour is " + userColour);
But instead of printing "red", the page throws the following
error. It
looks to me like it is trying to recreate the String object from a
fancy
constructor. But it isn't supposed to recreate the object, is
it? Isn't
is
supposed to store the object in memory just the way it is without
recreating
it with a constructor?
An unexpected application exception has occurred.
* org.apache.tapestry5.runtime.ComponentEventException
Error invoking constructor java.lang.String(byte[], int, int,
int)
(at String.java:337) (for service 'ApplicationStateManager'): No
service implements the interface [B.
context
eventType
activate
* org.apache.tapestry5.ioc.internal.OperationException
No service implements the interface [B.
trace
o Triggering event 'activate' on login/OpenId
o Instantiating instance of SSO class java.lang.String
o Determining injection value for parameter #1 (byte[])
o Resolving object of type byte[] using
MasterObjectProvider
* java.lang.RuntimeException
No service implements the interface [B.
Hide uninteresting stack frames Stack trace
o
org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:665)
o
org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:45)
o
org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:56)
o
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
o
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
o
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1057)
o
org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:41)
o
org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:806)
o
org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:50)
o
org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:233)
o
org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:60)
o
org.apache.tapestry5.ioc.internal.util.InternalUtils$2.invoke(InternalUtils.java:273)
o
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
o
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
o
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1057)
o
org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:277)
o
org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParametersForConstructor(InternalUtils.java:248)
o
org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:56)
o
org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$4.invoke(ServiceResourcesImpl.java:160)
o
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
o
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
o
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1057)
o
org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.autobuild(ServiceResourcesImpl.java:146)
o
org.apache.tapestry5.internal.services.ApplicationStateManagerImpl$1.create(ApplicationStateManagerImpl.java:104)
o
org.apache.tapestry5.internal.services.SessionApplicationStatePersistenceStrategy.getOrCreate(SessionApplicationStatePersistenceStrategy.java:57)
o
org.apache.tapestry5.internal.services.SessionApplicationStatePersistenceStrategy.get(SessionApplicationStatePersistenceStrategy.java:44)
o
org.apache.tapestry5.internal.services.ApplicationStateManagerImpl$ApplicationStateAdapter.getOrCreate(ApplicationStateManagerImpl.java:50)
o
org.apache.tapestry5.internal.services.ApplicationStateManagerImpl.get(ApplicationStateManagerImpl.java:133)
o
org.apache.tapestry5.internal.transform.ApplicationStateWorker$1.get(ApplicationStateWorker.java:91)
--
Tim Koop
t...@timkoop.com<mailto:t...@timkoop.com>
www.timkoop.com<http://www.timkoop.com>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org