In my case I had a common superclass with a getDataContext() method
which would retrieve the one stored/bound to the current thread by the
filter. Here is the relevant code I used:
private DataContext dataContext;
public DataContext getDataContext()
{
if (dataContext == null)
dataContext = (DataContext) BaseContext.getThreadObjectContext();
return dataContext;
}
The only reason I cache the dataContext is to save a slight amount of
processing time. Probably overkill for my purposes.
Hope that helps,
mrg
On Thu, Apr 22, 2010 at 11:59 AM, Arnaud Garcia <arnau..magemed-87.com> wrote:
> thanks for answers...
> so,
>
> Yes I am doing a Webapp and I have in my web.xml the cayenne filter....
>
> I am not sure to understand what is the good way to retrieve the
> DataContext... Each time I need it I thought I just need to do
> (DataContext) DataContext.getThreadObjectContext();
>
> So now I just have to do change the DataContext by the BaseContext
> BaseContext.getThreadObjectContext();
>
> since the filter correctly initialized and bind it to the Thread ....
>
> is it ok ?
>
>
>
>
> 2010/4/22 Joe Baldwin <jfbaldwi..arthlink.net>
>
>> Arnaud,
>>
>> I read right past the "Wicket" reference; it appears that you are creating
>> a webapp. Michael is correct. The cayenne filter creates and binds the
>> ObjectContext for you in this case.
>>
>> Sorry for the confusion,
>> Joe
>>
>>
>> On Apr 22, 2010, at 10:13 AM, Michael Gentry wrote:
>>
>> > Did you configure your web.xml file to use the Cayenne web filter? In
>> > my application (which is Tapestry, but should apply to Wicket, I
>> > think) I have:
>> >
>> > <filter>
>> > <filter-name>Cayenne Filter</filter-name>
>> >
>> <filter-class>org.apache.cayenne.conf.WebApplicationContextFilter</filter-class>
>> > </filter>
>> > <filter-mapping>
>> > <filter-name>Cayenne Filter</filter-name>
>> > <url-pattern>/*</url-pattern>
>> > </filter-mapping>
>> >
>> > mrg
>> >
>> >
>> > On Thu, Apr 22, 2010 at 10:00 AM, Arnaud Garcia <arnau..magemed-87.com>
>> wrote:
>> >> Hello,
>> >>
>> >> I am working on a Wicket Cayenne application and when I launch the tests
>> I
>> >> have an error when the DataContext is initialized:
>> >>
>> >> This line, DataContext ctxt = (DataContext)
>> >> DataContext.getThreadObjectContext(); throws an
>> >>
>> >> java.lang.IllegalStateException: Current thread has no bound
>> ObjectContext
>> >>
>> >>
>> >> Well, any ideas to set up correctly the tests ?
>> >>
>> >> thanks
>> >>
>> >>
>> >> Arnaud
>> >>
>>
>>
>
This archive was generated by hypermail 2.0.0 : Thu Apr 22 2010 - 12:21:15 EDT