Hello,

I have what is probably a fairly simple problem. I am trying to load a RESTful service in Tomcat 6.x using Spring. When I start Tomcat, I receive an Exception -- here's the Exception received:

INFO: Creating Service {http:// us.service.brad.com/}IUserServiceService from class com.brad.service.us.IUserService Apr 1, 2008 12:01:48 AM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService' defined in ServletContext resource [/WEB-INF/beans.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getInputEncoding()Ljava/lang/String; Caused by: java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getInputEncoding()Ljava/lang/String;
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun .reflect .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25)
        at java.lang.reflect.Method.invoke(Method.java:585)
at org .apache.ws.commons.schema.utils.DOMUtil.getInputEncoding(DOMUtil.java: 594) at org .apache .ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java: 348) at org .apache .cxf .databinding .source.AbstractDataBinding.addSchemaDocument(AbstractDataBinding.java: 73) at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:224) at org .apache .cxf .service .factory .ReflectionServiceFactoryBean .buildServiceFromClass(ReflectionServiceFactoryBean.java:293) at org .apache .cxf .service .factory .ReflectionServiceFactoryBean .initializeServiceModel(ReflectionServiceFactoryBean.java:333) at org .apache .cxf .service .factory .ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java: 151) at org .apache .cxf .jaxws .support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:93) at org .apache .cxf .frontend .AbstractWSDLBasedEndpointFactory .createEndpoint(AbstractWSDLBasedEndpointFactory.java:74) at org .apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java: 108) at org .apache .cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java: 147)


Here is my web.xml:

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd";>

<web-app>
        <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>WEB-INF/beans.xml</param-value>
        </context-param>
        <listener>
                <listener-class>
                        org.springframework.web.context.ContextLoaderListener
                </listener-class>
        </listener>
        <servlet>
                <servlet-name>CXFServlet</servlet-name>
                <display-name>CXF Servlet</display-name>
                <servlet-class>
                        org.apache.cxf.transport.servlet.CXFServlet
                </servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet>
                <servlet-name>NonCXFDispatcher</servlet-name>
                <display-name>Non-CXF Servlet</display-name>
                <servlet-class>
                        org.springframework.web.servlet.DispatcherServlet
                </servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
                <servlet-name>NonCXFDispatcher</servlet-name>
                <url-pattern>/ncservices/*</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
                <servlet-name>CXFServlet</servlet-name>
                <url-pattern>/services/*</url-pattern>
        </servlet-mapping>
</web-app>

Here is my beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<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-http-binding.xml" 
/>
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

        <jaxws:endpoint id="userService"
                implementor="com.brad.service.us.UserService"
                address="/userService"
                bindingUri="http://apache.org/cxf/binding/http";>
                <jaxws:serviceFactory>
                        <bean
                                
class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
                                <property name="wrapped" value="true" />
                        </bean>
                </jaxws:serviceFactory>
        </jaxws:endpoint>
</beans>

Does anyone have any idea what the problem is? I have been through all of the documentation and I cannot see the problem. I am wondering if there is some potential dependency issue. I have tried both the 2.0.3 and 2.0.4 versions of the CXF jars, and I have also tried using the spring bean approach in the beans.xml file instead of the jaxws endpoint approach. Everything produces the same error.

Your help is appreciated!

Thanks,

Brad

Reply via email to