[
https://issues.apache.org/jira/browse/WICKET-2080?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jawher Moussa updated WICKET-2080:
----------------------------------
Attachment: wib.zip
Okay, so, once the attached wib.zip downloaded and extracted somewhere, let's
say in a directory ${wib} :
- execute 'mvn install' in the directory ${wib}/org.djo.tp
- Launch eclipse and import the 5 projects located in ${wib} into your workspace
- In eclipse, double click on the file org.djo.tp/target.target and click on
the button "Set as target platform" in the top right corner of the editor.
- Click on the run button and select the "test" run configuration.
- If everything wen well, after 1 or 2 seconds, you should be able to access
the 2 wicket applications from your browser by pointing it to
http://localhost:9090/app1/ and http://localhost:9090/app1/
Depending on the order, one of the apps should work and show a "App [1|2]"
header, the other should cause an exception to show up.
I'll be around should you encounter any issues in the process ;)
> InjectorHolder is broken when wicket-ioc.jar is shared between multiple web
> applications
> ----------------------------------------------------------------------------------------
>
> Key: WICKET-2080
> URL: https://issues.apache.org/jira/browse/WICKET-2080
> Project: Wicket
> Issue Type: Bug
> Components: wicket-spring
> Affects Versions: 1.4-M3
> Environment: Java6 tomcat 6.0.18
> Reporter: Matej Zupanc
> Assignee: Igor Vaynberg
> Fix For: 1.5-M1
>
> Attachments: wib.zip
>
>
> I notice that in case, when I use two web-application on tomcat, sharing
> spring and wicket libraries, applications start to behave unpredictably.
> After short exploring and debug running, I discovered that wicket "ProxyBean"
> return wrong bean from Spring. When I try with ordinary call to Spring
> context
> (WebApplicationContextUtils.getRequiredWebApplicationContext(WebApplication.get().getServletContext()).getBean("testBeanName");)
> I get correct bean.
> My testCase has been run on tomcat 6.0.18. Shared library are placed under
> shared lib location in tomcat. All spring and wicket libraries are placed in
> shared lib location. For test I create webA and webB war archives. In both
> applications I use bean named "appIdProvider" but each application has
> different implementing class for this bean. When I start tomcat I see in
> logs, that both spring applicationContext are initialised. First I test webA
> application and result is what I expect. Next I make call to webB and result
> isn't what I expect, but result of call to bean injected with @SpringBean is
> same to call from webA application.
> Same story happens if I make first call to webB and after that to webA. In
> this case call to webB are correct and execution of webA is wrong.
> After printing the returned beans I see that annotated beans (@SpringBean)
> are LazyInitProxyFactory (in test values are
> "org.apache.wicket.proxy.lazyinitproxyfactory$jdkhand...@107eafc") and are
> same instances in both applications. If I make direct lookup in SpringContext
> I get back concrete bean and instances of this bean are different for each
> webapplication.
> All this doesn't happens if I deploy both web-application together with all
> spring and wicket libraries embedded into web application archive
> (WEB-INF/lib). But deployment of spring and wicket libraries for each
> application is expensive if I have many web application (using wicket and
> spring) on same server.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.