Hi What version of Camel do you use? And how do you run the app? eg using a maven goal, from Eclipse, or what?
On Mon, Jan 9, 2012 at 9:23 AM, xiangqiuzhao <[email protected]> wrote: > <bean id="myencoder" > class="org.jboss.netty.handler.codec.string.StringEncoder"/> > > my code like: > > ApplicationContext appctx = > new > ClassPathXmlApplicationContext("/org/apache/camel/component/netty/test-codecs.xml"); > Object decoder = appctx.getBean("mydecoder"); > Object encoder = appctx.getBean("myencoder"); > > SimpleRegistry registry = new SimpleRegistry(); > registry.put("myDecoder", decoder); > registry.put("myEncoder", encoder); > CamelContext context = new DefaultCamelContext(registry); > > context.addRoutes(new RouteBuilder() { > public void configure() throws Exception { > from("direct:cpsp") > .process(new MyToProcessor()) > > .to("netty:tcp://localhost:4096?sync=true&encoder=#myEncoder") > .process(new MyFromProcessor()); > } > }); > > context.start(); > > Endpoint endpoint = context.getEndpoint("direct:cpsp"); > Exchange exchange = endpoint.createExchange(); > byte[] data = FileUtil.getInputStreamContent(new > FileInputStream("D:/a.xml")); > > Producer producer = endpoint.createProducer(); > exchange.getIn().setBody(new String(data).trim()); > producer.process(exchange); > if (exchange.getException() != null) > throw exchange.getException(); > > System.out.println(exchange.getOut().getBody()); > > > but exception with: > > > > Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to > resolve endpoint: > netty://tcp://localhost:4096?encoder=%23myEncoder&sync=true due to: Could > not find a suitable setter for property: encoder as there isn't a setter > method with same type: java.lang.String nor type conversion possible: No > type converter available to convert from type: java.lang.String to the > required type: org.jboss.netty.channel.ChannelDownstreamHandler with value > #myEncoder > at > org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:450) > at > org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:47) > at > org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:180) > at > org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:110) > at > org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:116) > at > org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:61) > at > org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:55) > at > org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:410) > at > org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:181) > at > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:812) > ... 9 more > Caused by: java.lang.IllegalArgumentException: Could not find a suitable > setter for property: encoder as there isn't a setter method with same type: > java.lang.String nor type conversion possible: No type converter available > to convert from type: java.lang.String to the required type: > org.jboss.netty.channel.ChannelDownstreamHandler with value #myEncoder > at > org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:341) > at > org.apache.camel.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:291) > at > org.apache.camel.util.EndpointHelper.setProperties(EndpointHelper.java:225) > at > org.apache.camel.component.netty.NettyConfiguration.parseURI(NettyConfiguration.java:125) > at > org.apache.camel.component.netty.NettyComponent.createEndpoint(NettyComponent.java:49) > at > org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:75) > at > org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:432) > ... 18 more > > -- > View this message in context: > http://camel.465427.n5.nabble.com/set-encoder-in-netty-exception-tp5130760p5130760.html > Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen ----------------- FuseSource Email: [email protected] Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/
