[
https://issues.jboss.org/browse/AS7-1523?page=com.atlassian.jira.plugin.s...
]
Nicolai Ødum commented on AS7-1523:
-----------------------------------
The suggested workaround didn’t actually fix the problem in the long run. The problem is
that I have 2 ear’s that both use Spring (and expect to have their own Spring context)
that communicates with each other trough ejb calls. If I declare the dependencies as
module dependencies I end up on them both having Spring as a module dependency and then
they have to share the Spring context.
It’s there a way to solve that problem
org.springframework.jndi.TypeMismatchNamingException when looking up
a bean in JNDI tree if bean is deployed in another ear
---------------------------------------------------------------------------------------------------------------------------
Key: AS7-1523
URL:
https://issues.jboss.org/browse/AS7-1523
Project: Application Server 7
Issue Type: Bug
Components: Server
Affects Versions: 7.0.0.Alpha1
Environment: Windows 7, jdk 1.6.0_26 JBoss AS7 build (#1499) Spring 2.5.6
Reporter: Nicolai Ødum
Assignee: Jason Greene
Labels: as7, classloading, spring
Attachments: HelloWorld.ear.zip, HelloWorldEJB2.jar.zip, Source.zip
I have a 2 ear applications. One contains a EJB and the other contains a spring
application that loads the EJB as a Spring bean like this
<bean id="tinglysningService"
class="org.springframework.jndi.JndiObjectFactoryBean"
lazy-init="true">
<property name="expectedType"
value="com.csc.etl.kerne.serviceinterface.interfaces.TinglysningService"
/>
<property name="jndiName"
value="kerne.ejb.TinglysningServiceBean#com.csc.etl.kerne.serviceinterface.interfaces.TinglysningService">
</property>
<property name="lookupOnStartup">
<value>false</value>
</property>
<property name="proxyInterface">
<value>com.csc.etl.kerne.serviceinterface.interfaces.TinglysningService</value>
</property>
</bean>
When looking up the bean like this
org.springframework.context.ApplicationContext context;
....
TinglysningService tinglysningService = (TinglysningService)
context.getBean("tinglysningService");
I get the following error
09:42:17,635 ERROR [com.csc.etl.sagsportal.beans.forespoerg.tingbogen.DataLoader] (MSC
service thread 1-3) JndiObjectTargetSource failed to obtain new target object; nested
exception is org.springframework.jndi.TypeMismatchNamingException: Object of type [class
com.csc.etl.kerne.serviceinterface.interfaces.TinglysningService$$$view17] available at
JNDI location [java:global/kerne/kerne/TinglysningServiceBean] is not assignable to
[com.csc.etl.kerne.serviceinterface.interfaces.TinglysningService]:
org.springframework.jndi.JndiLookupFailureException: JndiObjectTargetSource failed to
obtain new target object; nested exception is
org.springframework.jndi.TypeMismatchNamingException: Object of type [class
com.csc.etl.kerne.serviceinterface.interfaces.TinglysningService$$$view17] available at
JNDI location [java:global/kerne/kerne/TinglysningServiceBean] is not assignable to
[com.csc.etl.kerne.serviceinterface.interfaces.TinglysningService]
at
org.springframework.jndi.JndiObjectTargetSource.getTarget(JndiObjectTargetSource.java:138)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:184)
[spring-2.5.6.SEC01.jar:]
at $Proxy127.hentAlleEjerLav(Unknown Source) at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_26]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[:1.6.0_26]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[:1.6.0_26]
at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_26]
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
[spring-2.5.6.SEC01.jar:]
at
com.csc.etl.sagsportal.utils.logging.PerformanceLoggingAspect.log(PerformanceLoggingAspect.java:94)
[classes:]
at
com.csc.etl.sagsportal.utils.logging.PerformanceLoggingAspect.doPerformanceLogging(PerformanceLoggingAspect.java:50)
[classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_26]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[:1.6.0_26]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[:1.6.0_26]
at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_26]
at
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
[spring-2.5.6.SEC01.jar:]
at $Proxy128.hentAlleEjerLav(Unknown Source) at
com.csc.etl.sagsportal.beans.forespoerg.tingbogen.DataLoader.init(DataLoader.java:40)
[classes:]
at
com.csc.etl.sagsportal.servlets.AjaxContentProviderServlet.init(AjaxContentProviderServlet.java:49)
[classes:]
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202)
[jbossweb-7.0.1.Final.jar:7.1.0.Alpha1-SNAPSHOT]
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102)
[jbossweb-7.0.1.Final.jar:7.1.0.Alpha1-SNAPSHOT]
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3631)
[jbossweb-7.0.1.Final.jar:7.1.0.Alpha1-SNAPSHOT]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3844)
[jbossweb-7.0.1.Final.jar:7.1.0.Alpha1-SNAPSHOT]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70)
[jboss-as-web-7.1.0.Alpha1-SNAPSHOT.jar:7.1.0.Alpha1-SNAPSHOT]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
at
org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_26]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_26]
Caused by: org.springframework.jndi.TypeMismatchNamingException: Object of type [class
com.csc.etl.kerne.serviceinterface.interfaces.TinglysningService$$$view17] available at
JNDI location [java:global/kerne/kerne/TinglysningServiceBean] is not assignable to
[com.csc.etl.kerne.serviceinterface.interfaces.TinglysningService]
at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:180)
[spring-2.5.6.SEC01.jar:]
at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95)
[spring-2.5.6.SEC01.jar:]
at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)
[spring-2.5.6.SEC01.jar:]
at
org.springframework.jndi.JndiObjectTargetSource.getTarget(JndiObjectTargetSource.java:131)
[spring-2.5.6.SEC01.jar:]
... 36 more
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira