Bonjour,
J'essaie d'accéder localement à un bean session stateless à partir d'une servlet dans mon application...(servlet est dans un WAR et ejb dans un JAR, tous deux sur la meme machine)
Je débute depuis peu avec les EJB 2.1 et ce n'est pas facile!!
D'autant que j'écris à la main les descripteurs de déploiement :-)
Bon, normalement j'ai correctement écrit ejb-jar.xml et jboss.xml pour l'EJB,
web.xml et jboss.xml pour l'appli cliente...
normalement le jndi.properties est bien configuré:
code:
### JBossNS client properties for connection from the localhost
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099
Voici le JNDI namespace:
java:comp namespace of the SIP2.war application:
+- UserTransaction[link -> UserTransaction] (class: javax.naming.LinkRef)
+- env (class: org.jnp.interfaces.NamingContext)
| +- ejb (class: org.jnp.interfaces.NamingContext)
| | +- GenerateurDIndexLocal[link -> GenerateurDIndex_SIP2] (class: javax.naming.LinkRef)
| | +- ServiceTransactionSIPLocal[link -> ServiceTransactionSIP_SIP2] (class: javax.naming.LinkRef)
le global namespace:
+- ServiceSIP (proxy: $Proxy61 implements interface fr.infoparc.service.ServiceSIPHome,interface javax.ejb.Handle)
+- ejb (class: org.jnp.interfaces.NamingContext)
| +- ServiceTransactionSIP_SIP2 (proxy: $Proxy59 implements interface fr.infoparc.service.ServiceTransactionSIPLocalHome)
| +- ServiceSIP_SIP2 (proxy: $Proxy57 implements interface fr.infoparc.service.ServiceSIPLocalHome)
| +- GenerateurDIndex_SIP2 (proxy: $Proxy58 implements interface fr.infoparc.service.GenerateurDIndexLocalHome)
+- QueueConnectionFactory (class: org.jboss.naming.LinkRefPair)
+- UUIDKeyGeneratorFactory (class: org.jboss.ejb.plugins.keygenerator.uuid.UUIDKeyGeneratorFactory)
l'exception que j'obtiens après déploiement:
code:
15:39:47,753 ERROR [LogInterceptor] EJBException in method: public abstract fr.infoparc.service.ServiceSIPLocal fr.infoparc.service.ServiceSIPLocalHome.create() throws javax.ejb.CreateException:
javax.ejb.EJBException: Invalid invocation, check your deployment packaging, method=public abstract fr.infoparc.service.ServiceSIPLocal fr.infoparc.service.ServiceSIPLocalHome.create() throws javax.ejb.CreateException
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invokeHome(StatelessSessionContainer.java:175)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:189)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invokeHome(StatelessSessionInstanceInterceptor.java:98)
at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValidationInterceptor.java:56)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:125)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:161)
at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:145)
at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:132)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:107)
at org.jboss.ejb.SessionContainer.internalInvokeHome(SessionContainer.java:637)
at org.jboss.ejb.Container.invoke(Container.java:975)
at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invokeHome(BaseLocalProxyFactory.java:359)
at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java:133)
at $Proxy78.create(Unknown Source)
une idée?
Partager