WebService methods generated from implementation instead of interface
---------------------------------------------------------------------

                 Key: CXF-870
                 URL: https://issues.apache.org/jira/browse/CXF-870
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.0
         Environment: CXF 2.0, Spring 2, JAX-WS
            Reporter: Allard Buijze
            Priority: Minor
             Fix For: 2.0.1


-- Description of problem --
When CXF creates a service provider for a given JAX-WS-annotated 
(implementation) class, it tries to create a WebService operation for each 
method in that implementation class.
In the case of a spring bean, there could be getter and setter methods. CXF 
will fail in creating WS operations from these methods and fail to publish the 
service.

-- Suggested solution --
The solution to this problem would be to only generate WS operations from the 
methods in the interface(s) the class implements.

An example of a spring context that will cause CXF to fail is as follows:

<jaxws:endpoint id="helloWorld" implementor="#serverBean" address="/HelloWorld" 
/>
<bean id="serverBean" class="com.company.services.ServiceProviderImpl">
    <property name="myPropetry" value="MyValue" />
</bean>

-- Workaround --
A workaround to the problem can be to use constructor injection. This removes 
the need for setter methods.
The following spring context shows how this can be done:
<jaxws:endpoint id="helloWorld" implementor="#serverBean" address="/HelloWorld" 
/>
<bean id="serverBean" class="com.company.services.ServiceProviderImpl">
    <<constructor-arg index="0" value="MyValue" />
</bean>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to