Hi

I think one of the users had a similar problems recently. When CXFServlet
links to beans.xml using its init-param, then this beans.xml should have no
import statements, comment them out

hope it helps, Sergey

On Wed, Jun 9, 2010 at 10:03 PM, Reed, Nate <[email protected]> wrote:

> Hi,
>
>
>
> I'm having problems getting CXF-JAXRS to work with Spring-WS in my
> project.   I was able to get a very simple "HelloResource" example
> working.  In this example, I passed in beans.xml to CXF as an
> init-param, but this is not a solution because in my real project I have
> some beans that are shared with Spring-WS.  When I tried to get CXF to
> load both in its init-param, requests for the Hello resource failed with
> an error similar to below.
>
>
>
> So, as an alternative approach, I am trying to get Spring
> MessageDispatcherServlet to load all the beans needed by CXF, but it
> still doesn't work.
>
>
>
> I wonder what I'm missing?  When I make a request for my service, I see
> the following log message:
>
>
>
> WARNING: Can't find the request for
> http://localhost:8080/HooversAPI-trunk/rest/company/1's<http://localhost:8080/HooversAPI-trunk/rest/company/1%27s>Observer
>
>
>
> I have defined a root resource as follows:
>
>
>
> @Path("/company")
>
> public class CompanyResource
>
>                                extends
>
>
> BaseEndPoint<GetCompanyDetailRequestDocument,
> GetCompanyDetailResponseDocument> {
>
>
>
>                public CompanyResource() {
>
>                                super(logger);
>
>                }
>
>
>
>                private static final Logger logger = LoggerFactory
>
>
> .getLogger(CompanyResource.class);
>
>
>
>                @Context
>
>                protected org.apache.cxf.jaxrs.ext.MessageContext mc;
>
>
>
>                @GET
>
>                @Path("{id}")
>
>                @Produces("text/html")
>
>                public GetCompanyDetailResponse echo(@PathParam("id")
> long id) {
>
>                ....
>
>                }
>
>
>
> In web.xml, I have configured Spring MessageDispatcherServlet to load
> the application context from beans.xml, which defines my JAX-RS server
> and imports all the beans it needs from spring-ws-servlet.xml:
>
>
>
>      <servlet>
>
>            <servlet-name>CXFServlet</servlet-name>
>
>            <servlet-class>
>
>                  org.apache.cxf.transport.servlet.CXFServlet
>
>            </servlet-class>
>
>            <load-on-startup>2</load-on-startup>
>
>      </servlet>
>
>
>
>      <servlet-mapping>
>
>            <servlet-name>CXFServlet</servlet-name>
>
>            <url-pattern>/rest/*</url-pattern>
>
>      </servlet-mapping>
>
>
>
>      <servlet>
>
>            <servlet-name>spring-ws</servlet-name>
>
>            <servlet-class>
>
>
> org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-
> class>
>
>            <init-param>
>
>                  <param-name>contextConfigLocation</param-name>
>
>                  <param-value>/WEB-INF/beans.xml</param-value>
>
>            </init-param>
>
>            <load-on-startup>1</load-on-startup>
>
>      </servlet>
>
>
>
>      <servlet-mapping>
>
>            <servlet-name>spring-ws</servlet-name>
>
>            <url-pattern>/*</url-pattern>
>
>      </servlet-mapping>
>
>
>
> In beans.xml:
>
>
>
>
>
>      <import resource="classpath:META-INF/cxf/cxf.xml"/>
>
>      <import
> resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" />
>
>      <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>
>      <import resource="spring-ws-servlet.xml" />
>
>
>
>      <bean id="helloResourceBean"
> class="com.dnb.applications.webservice.resource.HelloResource"/>
>
>      <bean id="companyResourceBean"
> class="com.dnb.applications.webservice.resource.CompanyResource">
>
>            <property name="handler" ref="companyHandler" />
>
>      </bean>
>
>
>
>      <bean id="xmlBeansProvider"
> class="org.apache.cxf.jaxrs.provider.XMLBeansJSONProvider" />
>
>
>
>      <bean id="xmlBeansDataBinding"
> class="org.apache.cxf.xmlbeans.XmlBeansDataBinding">
>
>            <property name="namespaceMap" ref="jsonNamespaceMap"/>
>
>      </bean>
>
>
>
>      <util:map id="jsonNamespaceMap" map-class="java.util.Hashtable">
>
>            <entry key="http://applications.dnb.com/webservice/schema";
> value="ns10"/>
>
>            <entry key="http://www.w3.org/2001/XMLSchema-instance";
> value="xsi"/>
>
>      </util:map>
>
>
>
>      <jaxrs:server id="HooversRestAPI" address="/rest"
> staticSubresourceResolution="true">
>
>            <jaxrs:serviceBeans>
>
>                  <ref bean="companyResourceBean" />
>
>                  <ref bean="helloResourceBean" />
>
>            </jaxrs:serviceBeans>
>
>            <jaxrs:providers>
>
>                  <ref bean="xmlBeansProvider"/>
>
>            </jaxrs:providers>
>
>            <jaxrs:dataBinding>
>
>                  <ref bean="xmlBeansDataBinding" />
>
>            </jaxrs:dataBinding>
>
>      </jaxrs:server>
>
>
>
> Any ideas?  I also tried address="/" but get the same result.
>
>
>
> Thanks,
>
> Nate
>
>
>
>

Reply via email to