You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Warren Bell <wa...@clarksnutrition.com> on 2010/07/30 00:31:04 UTC
Localizer in a new Thread
I want to take advantage of Wicket's message localization in a new
thread I have created. I am trying to pass the localizer to a thread
that runs background tasks. I am geting an
"org.apache.wicket.WicketRuntimeException: There is no application
attached to current thread...". I am sure I am going about this the
wrong way.
What's the best way to get message localization in a new thread ?
Thanks,
Warren <ma...@prosolutionssd.com>
RE: Localizer in a new Thread
Posted by Warren Bell <wa...@clarksnutrition.com>.
I am not sure how to preload the the values. I am trying this, but am
not getting anywhere.
myApp.getResourceSettings().getPropertiesFactory().load(ScanManTask.clas
s, "com.scanman.cron.task")
I have a properties file named ScanManTask.properties and have added it
to my app like this:
getResourceSettings().addStringResourceLoader(new
ClassStringResourceLoader(ScanManTask.class));
ScanManTask is not a commponent. The load method has a clazz and path
argument. I am assummeing the class is the class associated with the
property file and the path is the package it is in?
I guess I could just load them manually, but I would like to take
advantage of localization. How do I get a localized version of a
Properties object with my messages in it?
-----Original Message-----
From: Wilhelmsen Tor Iver [mailto:TorIverW@arrive.no]
Sent: Thursday, July 29, 2010 11:19 PM
To: users@wicket.apache.org
Subject: SV: Localizer in a new Thread
> To clarify, I want to use Localizer#getString(...) in a thraed I
> create.
> I have seen other posts on this issue, but haven't been able to figure
> out the solution.
The Localizer.getString() looks for its messages in Wicket's property
file structure, which depends on Application, the resource-oriented
classes, hierarchies and so forth. Your best bet is to "pre-read" the
values you need into a Properties object that you pass to the thread
code.
- Tor Iver
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
SV: Localizer in a new Thread
Posted by Wilhelmsen Tor Iver <To...@arrive.no>.
> To clarify, I want to use Localizer#getString(...) in a thraed I
> create.
> I have seen other posts on this issue, but haven't been able to figure
> out the solution.
The Localizer.getString() looks for its messages in Wicket's property file structure, which depends on Application, the resource-oriented classes, hierarchies and so forth. Your best bet is to "pre-read" the values you need into a Properties object that you pass to the thread code.
- Tor Iver
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: Localizer in a new Thread
Posted by Fernando Wermus <fe...@gmail.com>.
Ale,
I got a
org.hibernate.HibernateException: createCriteria is not valid without active
transaction
because the page that I am trying to render need to get an entity using
hibernate.
how could I solve this situation?
thanks in advance
On Fri, Jul 30, 2010 at 5:38 PM, Alex Objelean <al...@gmail.com>wrote:
>
> Yes, the solution I've mentioned in previous post should solve your
> problem.
>
> Alex
>
> On 30 July 2010 22:44, Fernando Wermus-3 [via Apache Wicket] <
> ml-node+2308410-419528218-229385@n4.nabble.com<ml...@n4.nabble.com>
> <ml...@n4.nabble.com>
> >
> > wrote:
>
> > Ale,
> > Related to what you have mentioned. I render mails with some
> > mockHTTPrequest and mockeHTTPResponse, etc. But, I need to render mails
> in
> > a
> > different thread than wicket's one. I have another servlet that runs
> > Blazeds
> > (Flex) where I also need to render some mails, but I got "There is no
> > application
> > attached to current thread...". According to what you mentioned, could I
> > solve this issue?
> >
> > thanks in advance.
> >
> > On Fri, Jul 30, 2010 at 5:46 AM, Alex Objelean <[hidden email]<
> http://user/SendEmail.jtp?type=node&node=2308410&i=0>>wrote:
> >
> >
> > >
> > > There was a long discussion about this. One of the proposal was to use
> > > InheritableThreadLocal which would solve this problem, but there was a
> > lot
> > > of concerns about this approach.
> > >
> > > The solution I have found was this:
> > > If you create the thread with ExecutorService, you could do the
> > following:
> > >
> > > final ExecutorService service = new ScheduledThreadPoolExecutor(1) {
> > > @Override
> > > protected void beforeExecute(final Thread t, final Runnable r) {
> > > Application.set(app);
> > > };
> > > @Override
> > > protected void afterExecute(final Runnable r, final Throwable t) {
> > > Application.unset();
> > > }
> > > };
> > >
> > > and execute you thread like this:
> > > service.submit(new Runnable() {
> > > @Override
> > > public void run() {
> > > //do stuff
> > > }
> > > });
> > >
> > > This will ensure that Application is accessible from within newly
> created
> >
> > > thread.
> > >
> > > Alex
> > > --
> > > View this message in context:
> > >
> >
> http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2307732.html
> <
> http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2307732.html?by-user=t
> >
> > > Sent from the Wicket - User mailing list archive at Nabble.com.
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [hidden email]<
> http://user/SendEmail.jtp?type=node&node=2308410&i=1>
> > > For additional commands, e-mail: [hidden email]<
> http://user/SendEmail.jtp?type=node&node=2308410&i=2>
> > >
> > >
> >
> >
> > --
> > Fernando Wermus.
> >
> > www.linkedin.com/in/fernandowermus
> >
> >
> > ------------------------------
> > View message @
> >
> http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2308410.html
> > To unsubscribe from RE: Localizer in a new Thread, click here<
> http://apache-wicket.1842946.n4.nabble.com/subscriptions/Unsubscribe.jtp?code=YWxleC5vYmplbGVhbkBnbWFpbC5jb218MjMwNzczMnwtNDA5MTE1Njc3
> >.
> >
> >
> >
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2308459.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
--
Fernando Wermus.
www.linkedin.com/in/fernandowermus
Re: Localizer in a new Thread
Posted by Alex Objelean <al...@gmail.com>.
Yes, the solution I've mentioned in previous post should solve your problem.
Alex
On 30 July 2010 22:44, Fernando Wermus-3 [via Apache Wicket] <
ml-node+2308410-419528218-229385@n4.nabble.com<ml...@n4.nabble.com>
> wrote:
> Ale,
> Related to what you have mentioned. I render mails with some
> mockHTTPrequest and mockeHTTPResponse, etc. But, I need to render mails in
> a
> different thread than wicket's one. I have another servlet that runs
> Blazeds
> (Flex) where I also need to render some mails, but I got "There is no
> application
> attached to current thread...". According to what you mentioned, could I
> solve this issue?
>
> thanks in advance.
>
> On Fri, Jul 30, 2010 at 5:46 AM, Alex Objelean <[hidden email]<http://user/SendEmail.jtp?type=node&node=2308410&i=0>>wrote:
>
>
> >
> > There was a long discussion about this. One of the proposal was to use
> > InheritableThreadLocal which would solve this problem, but there was a
> lot
> > of concerns about this approach.
> >
> > The solution I have found was this:
> > If you create the thread with ExecutorService, you could do the
> following:
> >
> > final ExecutorService service = new ScheduledThreadPoolExecutor(1) {
> > @Override
> > protected void beforeExecute(final Thread t, final Runnable r) {
> > Application.set(app);
> > };
> > @Override
> > protected void afterExecute(final Runnable r, final Throwable t) {
> > Application.unset();
> > }
> > };
> >
> > and execute you thread like this:
> > service.submit(new Runnable() {
> > @Override
> > public void run() {
> > //do stuff
> > }
> > });
> >
> > This will ensure that Application is accessible from within newly created
>
> > thread.
> >
> > Alex
> > --
> > View this message in context:
> >
> http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2307732.html<http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2307732.html?by-user=t>
> > Sent from the Wicket - User mailing list archive at Nabble.com.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]<http://user/SendEmail.jtp?type=node&node=2308410&i=1>
> > For additional commands, e-mail: [hidden email]<http://user/SendEmail.jtp?type=node&node=2308410&i=2>
> >
> >
>
>
> --
> Fernando Wermus.
>
> www.linkedin.com/in/fernandowermus
>
>
> ------------------------------
> View message @
> http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2308410.html
> To unsubscribe from RE: Localizer in a new Thread, click here<http://apache-wicket.1842946.n4.nabble.com/subscriptions/Unsubscribe.jtp?code=YWxleC5vYmplbGVhbkBnbWFpbC5jb218MjMwNzczMnwtNDA5MTE1Njc3>.
>
>
>
--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2308459.html
Sent from the Wicket - User mailing list archive at Nabble.com.
Re: Localizer in a new Thread
Posted by Fernando Wermus <fe...@gmail.com>.
Ale,
Related to what you have mentioned. I render mails with some
mockHTTPrequest and mockeHTTPResponse, etc. But, I need to render mails in a
different thread than wicket's one. I have another servlet that runs Blazeds
(Flex) where I also need to render some mails, but I got "There is no
application
attached to current thread...". According to what you mentioned, could I
solve this issue?
thanks in advance.
On Fri, Jul 30, 2010 at 5:46 AM, Alex Objelean <al...@gmail.com>wrote:
>
> There was a long discussion about this. One of the proposal was to use
> InheritableThreadLocal which would solve this problem, but there was a lot
> of concerns about this approach.
>
> The solution I have found was this:
> If you create the thread with ExecutorService, you could do the following:
>
> final ExecutorService service = new ScheduledThreadPoolExecutor(1) {
> @Override
> protected void beforeExecute(final Thread t, final Runnable r) {
> Application.set(app);
> };
> @Override
> protected void afterExecute(final Runnable r, final Throwable t) {
> Application.unset();
> }
> };
>
> and execute you thread like this:
> service.submit(new Runnable() {
> @Override
> public void run() {
> //do stuff
> }
> });
>
> This will ensure that Application is accessible from within newly created
> thread.
>
> Alex
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2307732.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
--
Fernando Wermus.
www.linkedin.com/in/fernandowermus
RE: Localizer in a new Thread
Posted by Alex Objelean <al...@gmail.com>.
There was a long discussion about this. One of the proposal was to use
InheritableThreadLocal which would solve this problem, but there was a lot
of concerns about this approach.
The solution I have found was this:
If you create the thread with ExecutorService, you could do the following:
final ExecutorService service = new ScheduledThreadPoolExecutor(1) {
@Override
protected void beforeExecute(final Thread t, final Runnable r) {
Application.set(app);
};
@Override
protected void afterExecute(final Runnable r, final Throwable t) {
Application.unset();
}
};
and execute you thread like this:
service.submit(new Runnable() {
@Override
public void run() {
//do stuff
}
});
This will ensure that Application is accessible from within newly created
thread.
Alex
--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Localizer-in-a-new-Thread-tp2307306p2307732.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
RE: Localizer in a new Thread
Posted by Warren Bell <wa...@clarksnutrition.com>.
To clarify, I want to use Localizer#getString(...) in a thraed I create.
I have seen other posts on this issue, but haven't been able to figure
out the solution.
Warren
-----Original Message-----
From: Warren Bell [mailto:warrenb@clarksnutrition.com]
Sent: Thursday, July 29, 2010 3:31 PM
To: users@wicket.apache.org
Subject: Localizer in a new Thread
I want to take advantage of Wicket's message localization in a new
thread I have created. I am trying to pass the localizer to a thread
that runs background tasks. I am geting an
"org.apache.wicket.WicketRuntimeException: There is no application
attached to current thread...". I am sure I am going about this the
wrong way.
What's the best way to get message localization in a new thread ?
Thanks,
Warren
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org