Hello,

I should have mentioned that I have that.
It is a bit different due to how my application is packaged but it
essentially does the same:

<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:searchService.xml</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

I found a thread where Dan Kulp said the following:

Change to something like:


<bean id="MyImpl" class="minitest.service.impl.MiniServiceImpl"/>

 <jaxws:endpoint id="miniservice"
                   implementor="#MyImpl"
                   address="/MiniService">
                   <jaxws:properties>

I think there are a couple examples similar to that in the docs someplace.

Basically, you want your impl to be created with a standard swing <bean>
tag.
Thus, Spring will inject things.   Then just reference it from the endpoint
tag.

Dan

I tried this and it doesn't seem to work either. However I have polluted my
install with some of my attempts so I'll try again from a clean config.
--
Loïc Paillotin


On Mon, Jan 31, 2011 at 2:17 PM, Christian Schneider <
[email protected]> wrote:

> What seems to be missing is a contextloaderlistener that boots up your
> spring context.
>
> <web-app>
> <context-param>
> <param-name>contextConfigLocation</param-name>
> <param-value>WEB-INF/searchService.xml</param-value>
> </context-param>
>
> <listener>
>
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
> </listener>
>  ...
> </web-app>
>
> Best regards
>
> Christian
>
> Am 31.01.2011 22:45, schrieb Loďc ¨Paillotin:
>
>> Hello,
>>
>> I am fairly new to CXF and Spring, and have been tasked to port an
>> existing
>> XFire Soap service to CXF.
>>
>> Right now, my service seems to be correctly configured: I can access the
>> WSDL which seems correct (minor differences but I'll worry about that
>> later).
>>
>> The problem I have is that some beans that were injected by spring in my
>> service under XFire are not injected in my CXF implementation.
>>
>> My implementation class looks something like this:
>>
>> @WebService(endpointInterface = "demo.cxf.ServiceCxf")
>> public class ServiceCxfImpl implements ServiceCxf {
>>     private SearchService search;
>>     private SearchSpec spec;
>>     /**
>>      * @inheritDoc
>>      */
>>     public SearchResult[] searchSimple(SearchSpec spec) {
>>         return search.searchSimple(spec);
>>     }
>>
>>  The problem is that my SearchService bean is never instantiated.
>>
>> My config:
>> searchService.xml
>> <beans xmlns="http://www.springframework.org/schema/beans";
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>> xmlns:jaxws="http://cxf.apache.org/jaxws";
>> xsi:schemaLocation="
>> http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans.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-servlet.xml" />
>>  <bean id="aegisBean"
>> class="org.apache.cxf.aegis.databinding.AegisDatabinding"
>> scope="prototype"/>
>>  <bean id="jaxws-and-aegis-service-factory"
>>     class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"
>>     scope="prototype">
>>         <property name="dataBinding" ref="aegisBean"/>
>>                  <property name="serviceConfigurations">
>>                      <list>
>>                        <bean
>> class="org.apache.cxf.jaxws.support.JaxWsServiceConfiguration"/>
>>                        <bean
>>
>> class="org.apache.cxf.aegis.databinding.XFireCompatibilityServiceConfiguration"/>
>>                        <bean
>> class="org.apache.cxf.service.factory.DefaultServiceConfiguration"/>
>>                     </list>
>>                  </property>
>> </bean>
>>
>>
>>   <bean id="searchService"
>>         class="demo.cxf.SearchService"/>
>>
>>
>> <jaxws:endpoint id="ServiceCxf"
>>    implementor=demo.cxf.ServiceCxfImpl"
>>    address="/searchServiceCxf">
>>    <jaxws:serviceFactory>
>>    <ref bean='jaxws-and-aegis-service-factory'/>
>>    <ref bean='searchService'/>
>>    </jaxws:serviceFactory>
>>
>>
>> </jaxws:endpoint>
>> </beans>
>>
>> In web.xml, my servlet is simply configured like so:
>>
>>  <servlet>
>>     <servlet-name>CXFServlet</servlet-name>
>>     <display-name>CXF Servlet</display-name>
>>     <servlet-class>
>>         org.apache.cxf.transport.servlet.CXFServlet
>>     </servlet-class>
>>   </servlet>
>>
>>  <servlet-mapping>
>>     <servlet-name>CXFServlet</servlet-name>
>>     <url-pattern>/cxf/*</url-pattern>
>>   </servlet-mapping>
>>
>>
>> I have no idea why I can't inject the bean using spring. I tried lots of
>> different things that probably make no sense, and I am a bit lost to be
>> honest.
>> Could somebody point me in the right direction?
>>
>> Thanks a lot in advance for your help.
>>
>> --
>> Loďc Paillotin
>>
>>
> --
> ----
> http://www.liquid-reality.de
>
>

Reply via email to