Hi, 

I was trying to use the @producer annotation in serivcemix to send a message
to an endpoint. 

Here is the code 

@WebService(endpointInterface =
"org.apache.servicemix.examples.cxf.HelloWorld") 
public class HelloWorldImpl implements HelloWorld 
{ 
    @EndpointInject(uri="direct:start") 
    protected ProducerTemplate template; 

    public String sayHi(String text) 
    { 
        produce(); 
        return "Hello " + text; 
    } 

    public void produce() 
    { 
        template.sendBody("hello world"); 
    } 
} 

and this is the beans.xml 


<?xml version="1.0" encoding="UTF-8"?> 
<!-- Licensed to the Apache Software Foundation (ASF) under one or more
contributor 
        license agreements. See the NOTICE file distributed with this work
for additional 
        information regarding copyright ownership. The ASF licenses this
file to 
        you under the Apache License, Version 2.0 (the "License"); you may
not use 
        this file except in compliance with the License. You may obtain a
copy of 
        the License at http://www.apache.org/licenses/LICENSE-2.0 Unless
required 
        by applicable law or agreed to in writing, software distributed
under the 
        License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS 
        OF ANY KIND, either express or implied. See the License for the
specific 
        language governing permissions and limitations under the License.
--> 
<!-- START SNIPPET: beans --> 
<beans xmlns="http://www.springframework.org/schema/beans"; 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:jaxws="http://cxf.apache.org/jaxws"; 
        xmlns:osgi="http://camel.apache.org/schema/osgi"; 
        xsi:schemaLocation=" 
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/osgi
http://camel.apache.org/schema/osgi/camel-osgi.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd";> 

        <import resource="classpath:META-INF/cxf/cxf.xml" /> 
        <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 
        <import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /> 
        <import
resource="classpath:META-INF/cxf/osgi/cxf-extension-osgi.xml" /> 

        <jaxws:endpoint id="helloWorld" 
               
implementor="org.apache.servicemix.examples.cxf.HelloWorldImpl" 
                address="/HelloWorld" /> 
        
        <bean class="org.apache.servicemix.examples.cxf.HelloWorldImpl" /> 
        
        <osgi:camelContext xmlns="http://camel.apache.org/schema/spring";> 
                <route> 
                        <from uri="direct:start" /> 

                        <to uri="log:ExampleRouter" /> 
                </route> 
        </osgi:camelContext> 

</beans> 
<!-- END SNIPPET: beans --> 



I got NPE when invoking the producertemplate to send message at the this
line 'template.sendBody("hello world");' 

Looks like the producertemplate was not injected to the bean correctly. 

Thanks
-- 
View this message in context: 
http://camel.465427.n5.nabble.com/Got-NPE-when-invoking-POJO-producer-tp2845554p2845554.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to