[jboss-dev] DefaultJndiBinder use of jndi from constructor
Ales Justin
ales.justin at gmail.com
Tue Nov 17 05:22:50 EST 2009
The DefaultJndiBinder was removed from Weld-int trunk.
We now do binding in JndiBinderDeployer:
*
http://anonsvn.jboss.org/repos/jbossas/projects/weld-int/trunk/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinderDeployer.java
I guess this means you'll have to move your jndi beans into deployers/,
otherwise PS::checkComplete on deployers phase will complain.
And of course JndiBinderDeployer would need a "depends" element.
Scott Stark wrote:
> I'm looking at moving the jndi beans into deploy, and one issue I have
> run into is that the DefaultJndiBinder deployed from
> deployers/beanvalidation.deployer/META-INF/bv-core-jboss-beans.xml is
> attempting to access jndi from its ctor:
>
> 19:59:25,942 ERROR [DefaultJndiBinder] Unable to create JNDI subcontext
> for Bean Validation Factories: javax.naming.CommunicationException:
> Receive timed out [Root exception is java.net.SocketTimeoutException:
> Receive timed out]
> at
> org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1678)
> at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1795)
> at
> org.jnp.interfaces.NamingContext.createSubcontext(NamingContext.java:1106)
> at
> org.jnp.interfaces.NamingContext.createSubcontext(NamingContext.java:1096)
> at javax.naming.InitialContext.createSubcontext(InitialContext.java:464)
> at
> org.jboss.beanvalidation.util.DefaultJndiBinder.createSubContextForFactories(DefaultJndiBinder.java:65)
> at
> org.jboss.beanvalidation.util.DefaultJndiBinder.<init>(DefaultJndiBinder.java:57)
> at
> org.jboss.beanvalidation.util.DefaultJndiBinder.<init>(DefaultJndiBinder.java:51)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.jboss.reflect.plugins.introspection.ReflectionUtils.newInstance(ReflectionUtils.java:149)
> at
> org.jboss.reflect.plugins.introspection.ReflectConstructorInfoImpl.newInstance(ReflectConstructorInfoImpl.java:106)
> at
> org.jboss.joinpoint.plugins.BasicConstructorJoinPoint.dispatch(BasicConstructorJoinPoint.java:80)
> at
> org.jboss.aop.microcontainer.integration.AOPConstructorJoinpoint.createTarget(AOPConstructorJoinpoint.java:295)
> at
> org.jboss.aop.microcontainer.integration.AOPConstructorJoinpoint.dispatch(AOPConstructorJoinpoint.java:116)
> at
> org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:243)
> at
> org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
> at
> org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:111)
> at
> org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72)
> at
> org.jboss.kernel.plugins.dependency.InstantiateAction.installActionInternal(InstantiateAction.java:66)
>
>
> I can get around this by adding a demand from the binder's Instantiated
> state:
>
> <!-- Default JNDI name creator -->
> <bean name="DefaultJndiBinder"
> class="org.jboss.beanvalidation.util.DefaultJndiBinder">
> <demand state="Instantiated">LocalNamingBean</demand>
> </bean>
>
>
> but I'm wondering if this should be done from a more typical lifecycle
> method to simplify dependency configuration.
>
> _______________________________________________
> jboss-development mailing list
> jboss-development at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-development
>
More information about the jboss-development
mailing list