Only one session for logged user.

2009-03-06 Thread Martin Bednář
Hello,

In our application I must guarantee that user is logged only once to the
application.
I have the following problem.

1,User logged to aplication, create session1
2,User browser crased, but session1 is still alive for next 30minutes
(session expiration time is 30minutes).
3,User open new browser and login to application (session2 is created).

And in point 3 I need close session1 before I log user in.

I hold userId in user session, but I don't know how to iterate over all
sessions and check if another session for same user is here.

Any advice ?

Thx Martin


ChannelTarget 2 AjaxRequestTarget

2009-03-02 Thread Martin Bednář
Hi all,
I need following functionality: after receiving ChannelTarget (using cometd
server) I need open ModalDialog window on client and show some information.
For this purpose I created adapter with following methods. But in standard
wicket distribution is addJavascript declared as finall (so I have self
compiled distribution of wicked without this declaration). Is there another
way how I can do it correctly ? Or it's possible to declare this method
non-finall in wicket, or create something simillar
to ChannelTargetToAjaxRequestTargetAdapter in wicket itself ?


public class ChannelTargetToAjaxRequestTargetAdapter extends
AjaxRequestTarget {

private final IChannelTarget channelTarget;

/**
 * @param target
 */
public ChannelTargetToAjaxRequestTargetAdapter(final Page page, final
IChannelTarget target) {
super(page);
this.channelTarget = target;
}

/** {...@inheritdoc} */
@Override
public void addComponent(final Component component) {
channelTarget.addComponent(component);
}

@Override
public void addJavascript(final String javascript) {
channelTarget.appendJavascript(javascript);
}


... all others methods are implemented to
throw UnsupportedOperationException

Thank you
Martin


BEA WebLogic 9.2 cluster

2009-01-15 Thread Martin Bednář
Hi,

I have problems with deploying wicket (wicket-1.4m1) application on WebLogic
9.2 server cluster (2 nodes).
Application use spring 2.5.5 for service layer and is configured:
web.xml:
distributable/
filter
filter-namewicket.call-centre/filter-name

filter-classorg.apache.wicket.protocol.http.WicketFilter/filter-class
init-param
param-nameapplicationFactoryClassName/param-name

param-valueorg.apache.wicket.spring.SpringWebApplicationFactory/param-value
/init-param
init-param
param-nameapplicationBean/param-name
param-valuewicketApplication/param-value
/init-param
init-param
param-namewicket.configuration/param-name!--
param-valuedevelopment/param-value
--
param-valuedeployment/param-value
/init-param
/filter

filter-mapping
filter-namewicket.call-centre/filter-name
url-pattern/*/url-pattern
/filter-mapping

listener

listener-classorg.springframework.web.context.ContextLoaderListener/listener-class
/listener

context-param
param-namecontextConfigLocation/param-name
param-valueclasspath:applicationContext.xml/param-value
/context-param


weblogic.xml:
  session-descriptor
  persistent-store-typereplicated_if_clustered/persistent-store-type
  /session-descriptor

If application deploys on nonclustered environment everything is ok. On
cluster I got these errors:

Warning RMI app-test testws [ACTIVE] ExecuteThread: '0' for queue:
'weblogic.kernel.Default (self-tuning)' WLS Kernel  
1231941794006 BEA-080004 An error was thrown by rmi server:
weblogic.cluster.replication.ReplicationManager.create(Lweblogic.rmi.spi.HostID;ILweblogic.cluster.replication.ROID;Lweblogic.cluster.replication.Replicatable;)

 java.lang.ExceptionInInitializerError.

java.lang.ExceptionInInitializerError

  at sun.misc.Unsafe.ensureClassInitialized(Native Method)

  at
sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)

  at
sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)

  at java.lang.reflect.Field.acquireFieldAccessor(Field.java:917)

  at java.lang.reflect.Field.getFieldAccessor(Field.java:898)

  at java.lang.reflect.Field.getLong(Field.java:527)

  at
java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1586)

  at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)

  at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:408)

  at java.io.ObjectStreamClass.init(ObjectStreamClass.java:400)

  at java.io.ObjectStreamClass.lookup0(ObjectStreamClass.java:297)

  at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java)

  at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:531)

  at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552)

  at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)

  at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)

  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)

  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)

  at
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.readObject(SecondLevelCacheSessionStore.java:412)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

  at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

  at java.lang.reflect.Method.invoke(Method.java:585)

  at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)

  at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)

  at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)

org.apache.wicket.WicketRuntimeException: There is no application attached
to current thread [ACTIVE] ExecuteThread: '0' for queue:
'weblogic.kernel.Default (self-tuning)'

  at org.apache.wicket.Application.get(Application.java:177)

  at org.apache.wicket.Component.getApplication(Component.java:1282)

  at org.apache.wicket.Component.init(Component.java:894)

  at org.apache.wicket.MarkupContainer.init(MarkupContainer.java:105)

  at org.apache.wicket.Page.init(Page.java:236)

  at
org.apache.wicket.protocol.http.pagestore.SerializedPagesCache$SerializedPageWithSession$1.init(SerializedPagesCache.java:206)

  at
org.apache.wicket.protocol.http.pagestore.SerializedPagesCache$SerializedPageWithSession.clinit(SerializedPagesCache.java:205)

  at sun.misc.Unsafe.ensureClassInitialized(Native Method)

  at
sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)

  at

Re: No localizer has been set

2007-08-30 Thread Martin Bednář

Johan Compagner napsal(a):

thats odd
on your production machine you have enabled debugging:
if (log.isDebugEnabled())
{
log.debug(detaching  + this +  for requestCycle  +
RequestCycle.get());
}

and that code is not executed for development machine?
Thats a bit the reverse what it should be..

But the problem is that StringResourceModel.toString() calls getString()
thats wrong it shouldn't do that.
  


OK, what's the preferred way to localize data in ListView.populateItem

I found this on wicket wiki item.add(new Label(name, new 
StringResourceModel(wrapper.getValue(), null, null)));
after changing to new StringResourceModel(wrapper.getValue(), this, 
null) it's working on production server too.


Martin

johan


On 8/29/07, Martin Bednář [EMAIL PROTECTED] wrote:
  

I use code below, it works on my development machine (linux, jetty6) but
don't work on production server (linux,tomcat-5, tomcat 5.5).
Any advice ?

public LanguageCheckBoxPanel(String id) {
super(id);
for (LanguageSelectOption languageOption :
LanguageModel.languages) {
languages.add(new CheckBoxLanguageWrapper(languageOption));
}

add(new ListView(languageList, languages) {
protected void populateItem(ListItem item) {
CheckBoxLanguageWrapper wrapper =
(CheckBoxLanguageWrapper) item
.getModelObject();

//On this line code fails
item.add(new Label(name, new StringResourceModel(wrapper
.getValue(), null, null)));

item.add(new CheckBox(check, new PropertyModel(wrapper,
selected)));
}
});

}


Stack trace

WicketMessage: Exception in rendering component: [Component id = name,
page = cz.triax.marathon.statistics.BatchPrintPage, path =
2:navomaticBorder:form:languagePanel:languageList:0:name.Label,
isVisible = true, isVersioned = false]

Root cause:

java.lang.IllegalStateException: No localizer has been set at
wicket.model.StringResourceModel.getString(StringResourceModel.java:397)
at
wicket.model.StringResourceModel.toString(StringResourceModel.java:464)
at java.lang.String.valueOf(String.java:2827) at
java.lang.StringBuffer.append(StringBuffer.java:219) at
wicket.model.AbstractDetachableModel.attach(AbstractDetachableModel.java
:60)
at
wicket.model.AbstractDetachableModel.getObject(
AbstractDetachableModel.java:101)
at wicket.Component.getModelObject(Component.java:983) at
wicket.Component.getModelObjectAsString(Component.java:998) at
wicket.markup.html.basic.Label.onComponentTagBody(Label.java:113) at
wicket.Component.renderComponent(Component.java:1712) at
wicket.markup.html.WebComponent.onRender(WebComponent.java:61) at
wicket.Component.render(Component.java:1526) at
wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982)
at wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:917)
at wicket.Component.renderComponent(Component.java:1712) at
wicket.MarkupContainer.onRender(MarkupContainer.java:927) at
wicket.Component.render(Component.java:1526) at
wicket.markup.html.list.ListView.renderItem(ListView.java:676) at
wicket.markup.html.list.ListView.onRender(ListView.java:637) at
wicket.Component.render(Component.java:1526) at
wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982)
at
wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:571)
at wicket.markup.html.panel.Panel.onComponentTagBody(Panel.java:108) at
wicket.Component.renderComponent(Component.java:1712) at
wicket.MarkupContainer.onRender(MarkupContainer.java:927) at
wicket.Component.render(Component.java:1526) at
wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982)
at wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:917)
at wicket.markup.html.form.Form.onComponentTagBody(Form.java:779) at
wicket.Component.renderComponent(Component.java:1712) at
wicket.MarkupContainer.onRender(MarkupContainer.java:927) at
wicket.markup.html.form.Form.onRender(Form.java:850) at
wicket.Component.render(Component.java:1526) at
wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982)
at wicket.markup.html.border.Border.renderBodyComponent(Border.java:300)
at wicket.markup.html.border.Border.resolve(Border.java:215) at
wicket.MarkupContainer.renderNext(MarkupContainer.java:1345) at
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982)
at wicket.markup.html.border.Border.renderBodyComponent(Border.java:300)
at wicket.markup.html.border.Border.resolve(Border.java:215) at
wicket.MarkupContainer.renderNext(MarkupContainer.java:1345) at
wicket.MarkupContainer.renderComponentTagBody

No localizer has been set

2007-08-28 Thread Martin Bednář
I use code below, it works on my development machine (linux, jetty6) but 
don't work on production server (linux,tomcat-5, tomcat 5.5).

Any advice ?

   public LanguageCheckBoxPanel(String id) {
   super(id);
   for (LanguageSelectOption languageOption : 
LanguageModel.languages) {

   languages.add(new CheckBoxLanguageWrapper(languageOption));
   }

   add(new ListView(languageList, languages) {
   protected void populateItem(ListItem item) {
   CheckBoxLanguageWrapper wrapper = 
(CheckBoxLanguageWrapper) item

   .getModelObject();

//On this line code fails
   item.add(new Label(name, new StringResourceModel(wrapper
   .getValue(), null, null)));
   
   item.add(new CheckBox(check, new PropertyModel(wrapper,

   selected)));
   }
   });

   }


Stack trace

WicketMessage: Exception in rendering component: [Component id = name, 
page = cz.triax.marathon.statistics.BatchPrintPage, path = 
2:navomaticBorder:form:languagePanel:languageList:0:name.Label, 
isVisible = true, isVersioned = false]


Root cause:

java.lang.IllegalStateException: No localizer has been set at 
wicket.model.StringResourceModel.getString(StringResourceModel.java:397) 
at 
wicket.model.StringResourceModel.toString(StringResourceModel.java:464) 
at java.lang.String.valueOf(String.java:2827) at 
java.lang.StringBuffer.append(StringBuffer.java:219) at 
wicket.model.AbstractDetachableModel.attach(AbstractDetachableModel.java:60) 
at 
wicket.model.AbstractDetachableModel.getObject(AbstractDetachableModel.java:101) 
at wicket.Component.getModelObject(Component.java:983) at 
wicket.Component.getModelObjectAsString(Component.java:998) at 
wicket.markup.html.basic.Label.onComponentTagBody(Label.java:113) at 
wicket.Component.renderComponent(Component.java:1712) at 
wicket.markup.html.WebComponent.onRender(WebComponent.java:61) at 
wicket.Component.render(Component.java:1526) at 
wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at 
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982) 
at wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:917) 
at wicket.Component.renderComponent(Component.java:1712) at 
wicket.MarkupContainer.onRender(MarkupContainer.java:927) at 
wicket.Component.render(Component.java:1526) at 
wicket.markup.html.list.ListView.renderItem(ListView.java:676) at 
wicket.markup.html.list.ListView.onRender(ListView.java:637) at 
wicket.Component.render(Component.java:1526) at 
wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at 
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982) 
at 
wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:571) 
at wicket.markup.html.panel.Panel.onComponentTagBody(Panel.java:108) at 
wicket.Component.renderComponent(Component.java:1712) at 
wicket.MarkupContainer.onRender(MarkupContainer.java:927) at 
wicket.Component.render(Component.java:1526) at 
wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at 
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982) 
at wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:917) 
at wicket.markup.html.form.Form.onComponentTagBody(Form.java:779) at 
wicket.Component.renderComponent(Component.java:1712) at 
wicket.MarkupContainer.onRender(MarkupContainer.java:927) at 
wicket.markup.html.form.Form.onRender(Form.java:850) at 
wicket.Component.render(Component.java:1526) at 
wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at 
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982) 
at wicket.markup.html.border.Border.renderBodyComponent(Border.java:300) 
at wicket.markup.html.border.Border.resolve(Border.java:215) at 
wicket.MarkupContainer.renderNext(MarkupContainer.java:1345) at 
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982) 
at wicket.markup.html.border.Border.renderBodyComponent(Border.java:300) 
at wicket.markup.html.border.Border.resolve(Border.java:215) at 
wicket.MarkupContainer.renderNext(MarkupContainer.java:1345) at 
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982) 
at 
wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:571) 
at wicket.markup.html.border.Border.onComponentTagBody(Border.java:244) 
at wicket.Component.renderComponent(Component.java:1712) at 
wicket.MarkupContainer.onRender(MarkupContainer.java:927) at 
wicket.Component.render(Component.java:1526) at 
wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at 
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982) 
at 
wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:571) 
at wicket.markup.html.border.Border.onComponentTagBody(Border.java:244) 
at wicket.Component.renderComponent(Component.java:1712) at 
wicket.MarkupContainer.onRender(MarkupContainer.java:927) at