In many cases, it indicates that the actual bean you are configuring in Spring is not to be lifecycle managed by Spring. Think of it as equivalent to the abstract attribute in a Spring bean definition. When you set createdFromApi to true, you tell Spring not to instantiate a bean instance from the given XML; however, what you name this abstract bean comes into play later when you use the CXF implementation of the JAX-WS Java API to instantiate your service. Take a look at the org.apache.cxf.configuration.Configurable interface and the org.apache.cxf.configuration.spring.ConfigurerImpl class. These two combine to determine a bean name or a pattern match for a bean name in your Spring configuration file that can be used to apply configuration from the Spring context to a bean that you instantiated outside of the Spring context. STSClient in WS-Policy support and HTTPConduit configuration in the HTTP transport both work in a similar way. A class instance is instantiated in code and then a Spring bean is found that represents the desired configuration for that instance based on the name returned by Configurable#getBeanName(). The configuration in Spring is copied to the instance created in code.
See http://cxf.apache.org/docs/server-http-transport.html for an example of the HTTPConduit configuration for a WSDL based service. -----Original Message----- From: Grégory Le Bonniec [mailto:[email protected]] Sent: Thursday, March 04, 2010 12:22 PM To: [email protected] Subject: createdFromAPI Hi, I don't really understand what is the purpose of createdFromAPI in this example {quote} <jaxws:endpoint name="{http://test.com}BusinessServiceImplPort" createdFromAPI="true"> <jaxws:properties> <entry key="schema-validation-enabled" value="true" /> </jaxws:properties> </jaxws:endpoint> {quote} I understand the fact that is important to use createdFromAPI to avoid to have the same Id on differents beans But in which case, do I have to put createdFromAPI to false ? Thank you Greg
