[ 
https://issues.apache.org/jira/browse/WICKET-2080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12769919#action_12769919
 ] 

Igor Vaynberg commented on WICKET-2080:
---------------------------------------

hrm, still cant get the workspace to do what i need. i got the two apps 
running, great. now i need to import my wicket projects into the workspace and 
have them used by the osgi container.

i imported wicket, wicket-ioc, and wicket-spring into the workspace, converted 
them to plugin projects, gave them the appropriate name and version, setup all 
the dependencies. now when i start the container i get this:

2009-10-25 23:54:41.924::WARN:  failed app
java.lang.NoClassDefFoundError: org/apache/wicket/MetaDataKey
        at org.djo.WebApp2.init(WebApp2.java:11)

which doesnt really make sense....so i mustve set up something wrong...

org.apache.wicket is an exported package in my wicket plugin project, and if 
the framework can see WicketFilter then why not MetaDataKey, weird.

> 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, wib2.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.

Reply via email to