Only one session for logged user.
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
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
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
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
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