oh you are in an OSGi container? for openejb you have to import package org.apache.openejb.client and org.apache.openejb.client.proxy i think or something like that (i don't really remember).
- Romain 2011/6/16 Charles Moulliard <[email protected]> > I think that the code that we use to create the endpoint works fine in > a non osgi environment but not on osgi as jndi is not really supported > > @Override > protected Endpoint createEndpoint(String uri, String remaining, > Map<String, Object> parameters) throws Exception { > BeanEndpoint answer = new BeanEndpoint(uri, this); > answer.setBeanName(remaining); > > // plugin registry to lookup in jndi for the EJBs > Registry registry = new JndiRegistry(getContext()); > answer.setBeanHolder(new EjbRegistryBean(registry, > getCamelContext(), answer.getBeanName())); > > Processor processor = answer.getProcessor(); > setProperties(processor, parameters); > return answer; > } > > > On Wed, Jun 15, 2011 at 11:33 PM, Romain Manni-Bucau > <[email protected]> wrote: > > Hi, > > > > creating a list with spring should work but i think the problem is the > > context creation here. > > > > personnaly i use the bean component and i ask to me (with java dsl) or > > spring to do the lookup to put it in the camel registry. > > > > - Romain > > > > 2011/6/15 Charles Moulliard <[email protected]> > > > >> Hi, > >> > >> I try to use openejb from camel using camel-ejb but get this error > >> when camel looks to find the ejb stateless bean > >> > >> <beans xmlns="http://www.springframework.org/schema/beans" > >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >> xmlns:p="http://www.springframework.org/schema/util" > >> xsi:schemaLocation=" > >> http://www.springframework.org/schema/beans > >> http://www.springframework.org/schema/beans/spring-beans.xsd > >> http://www.springframework.org/schema/util > >> http://www.springframework.org/schema/util/spring-util.xsd > >> http://camel.apache.org/schema/spring > >> http://camel.apache.org/schema/spring/camel-spring.xsd"> > >> > >> <camelContext xmlns="http://camel.apache.org/schema/spring"> > >> <route> > >> <from uri="timer://foo?fixedRate=true&period=5s"/> > >> <setBody> > >> <constant>4</constant> > >> <constant>3</constant> > >> </setBody> > >> <to uri="ejb:CalculatorImplRemote?method=sum"/> > >> <log message=">>> Result : ${body}"/> > >> </route> > >> </camelContext> > >> > >> <!-- setup Camel EJB component --> > >> <bean id="ejb" class="org.apache.camel.component.ejb.EjbComponent"> > >> <property name="properties" ref="jndiProperties"/> > >> </bean> > >> > >> <!-- use OpenEJB context factory --> > >> <p:properties id="jndiProperties"> > >> <prop > >> > key="java.naming.factory.initial">org.apache.openejb.client.RemoteInitialContextFactory</prop> > >> <prop key="java.naming.provider.url">ejbd://127.0.0.1:4201 > </prop> > >> <prop key="java.naming.security.principal">daniel</prop> > >> <prop key="java.naming.security.credentials">password</prop> > >> </p:properties> > >> > >> </beans> > >> > >> 23:12:32,227 | ERROR | foo | DefaultErrorHandler > >> | ache.camel.processor.CamelLogger 232 | 64 - > >> org.apache.camel.camel-core - 2.7.0 | Failed delivery for exchangeId: > >> ID-biker-chm-local-58833-1308171227583-5-6. Exhausted after delivery > >> attempt: 1 caught: org.apache.camel.NoSuchBeanException: No bean could > >> be found in the registry for: CalculatorImplRemote > >> org.apache.camel.NoSuchBeanException: No bean could be found in the > >> registry for: CalculatorImplRemote > >> at > >> > org.apache.camel.component.bean.RegistryBean.getBean(RegistryBean.java:68)[64:org.apache.camel.camel-core:2.7.0] > >> at > >> > org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:84)[64:org.apache.camel.camel-core:2.7.0] > >> at > >> > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:103)[64:org.apache.camel.camel-core:2.7.0] > >> at > >> > org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:74)[64:org.apache.camel.camel-core:2.7.0] > >> at > >> > org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:102)[64:org.apache.camel.camel-core:2.7.0] > >> at > >> > org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:72)[64:org.apache.camel.camel-core:2.7.0] > >> at > >> > org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)[64:org.apache.camel.camel-core:2.7.0] > >> > >> > >> How can we define using <setBody> tag the following two parameters to > >> call the method sum of the stateless ejb CalculatorRemote ? > >> > >> public int sum(int add1, int add2); > >> > >> <setBody> > >> <constant>???</constant> > >> </setBody> > >> > >> > >> Regards, > >> > >> Charles Moulliard > >> > >> Apache Committer > >> > >> Blog : http://cmoulliard.blogspot.com > >> Twitter : http://twitter.com/cmoulliard > >> Linkedin : http://www.linkedin.com/in/charlesmoulliard > >> Skype: cmoulliard > >> > > >
