cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dan Diephouse" <...@envoisolutions.com>
Subject Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Date Sat, 14 Jul 2007 16:25:10 GMT
Do you have an endpointInterface attribute defined on your @WebService?

i.e. you should have:

@WebService(endpointInterface="foo.bar.IUserService",
serviceName="UserService")
public class UserService ....

(Note: the serviceName can only go on the impl class)

@WebService
public class IUserService

Regards,
- Dan

On 7/14/07, Brad O'Hearne <brado@neurofire.com> wrote:
>
> Additionally, I don't know if this helps, but I found this line higher
> up in my log before the error occurs:
>
> INFO: Creating Service {http://user.brad.com/}UserServiceService from
> class com.brad.user.UserService
>
> The service "UserServiceService" looks a little weird, as I don't have
> it specified as that anywhere.
>
> B
>
> Dan Diephouse wrote:
> > Hi Brad,
> > Don't you think you're being a little impatient here? Your message is
> > from 6
> > PM on a FRIDAY (now 12 AM Saturday) and pretty much everyone has gone
> > home.
> > While I sympathize with your problem & timeline, I think you're being
> > quite
> > unrealistic in your expectations. I'm the one who wrote the code and
> > probably no one else around really feels qualified to answer this
> > question,
> > so everyone else is probably going to wait a reasonable amount of time
> > for
> > me to come back online. And I've been busy travelling.
> >
> > As to your error, it seems for some reason CXF isn't finding your
> > @httpresource annotation. What does the @WebService attribute look
> > like on
> > your CustomerService class? You could possibly try adding a serviceClass
> > attribute to your <jaxws:endpoint> and see if that will help:
> >
> > <jaxws:endpoint serviceClass="...IUserService"/>
> >
> > - Dan
> >
> >
> > On 7/13/07, Brad O'Hearne <brado@neurofire.com> wrote:
> >>
> >> Hello,
> >>
> >> I don't want to cross the line on asking questions to the dev list, but
> >> I'm in a bit of a bind here, and I need to get this worked out, and I
> >> think that posting this to the dev list may be appropriate for the
> >> following reasons:
> >>
> >> 1) It is in the realm where the documentation says the functionality
> >> exists, but doesn't say how to configure (i.e. a hole in the
> >> documentation).
> >> 2) The stack trace / error I am receiving I am guessing only a
> developer
> >> is going to likely understand -- it makes absolutely no sense at a user
> >> level.
> >> 3) The only reference I found to this error on Google was from last
> >> month on the developer list.
> >>
> >> The forwarded email explains my problem and stack trace, but in a
> >> nutshell, I just need to configure annotation based, SOAP-Free, Restful
> >> Http/xml services in Spring. Nothing tricky -- simple, standard,
> >> boilerplate need. I am having no luck, as my service loading fails. The
> >> stack trace is attached. Here is my web.xml file:
> >>
> >> <!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-mapping>
> >>        <servlet-name>CXFServlet</servlet-name>
> >>        <url-pattern>/*</url-pattern>
> >>    </servlet-mapping>
> >>
> >> </web-app>
> >>
> >> Here is my beans.xml file:
> >>
> >> <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-extension-http-binding.xml" />
> >>    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> >>
> >>    <bean id="JaxWsServiceFactoryBean"
> >>        class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
> >>        <property name="wrapped" value="false" />
> >>    </bean>
> >>
> >>    <jaxws:endpoint id="userService"
> >>        implementor="com.brad.user.UserService"
> >>        address="/UserService"
> >>        bindingUri="http://apache.org/cxf/binding/http"
> >>        >
> >>        <jaxws:serviceFactory>
> >>            <ref bean="JaxWsServiceFactoryBean" />
> >>        </jaxws:serviceFactory>
> >>    </jaxws:endpoint>
> >>
> >> </beans>
> >>
> >> Here is my UserService interface:
> >>
> >> package com.brad.user;
> >>
> >> import javax.jws.WebService;
> >>
> >> import org.codehaus.jra.Get;
> >> import org.codehaus.jra.HttpResource;
> >>
> >> import com.brad.service.ServiceRequest;
> >> import com.brad.service.ServiceResponse;
> >>
> >> @WebService
> >> public interface IUserService {
> >>
> >>    @Get
> >>    @HttpResource(location = "/users")
> >>    ServiceResponse getUsers(ServiceRequest request);
> >> }
> >>
> >> Thanks in advance for the help. I'm to the end of my rope, with regards
> >> to my timeline, and I need to get this working, and qualify CXF as a
> >> service stack that can be used for this project, or else I'm going to
> >> have to punt this weekend and incur a ton of work basically duplicating
> >> what CXF already purports to do.
> >>
> >> Cheers,
> >>
> >> Brad
> >>
> >>
> >> ---------- Forwarded message ----------
> >> From: Brad O'Hearne <brado@neurofire.com>
> >> To: cxf-user@incubator.apache.org
> >> Date: Fri, 13 Jul 2007 17:09:28 -0700
> >> Subject: Re: Exception loading CXF service in Spring with HTTP Binding
> >> I'm appealing to anyone out there who can please help me with this
> >> problem. All I'm trying to do is standard configuration of a single
> >> service, with a single method, using Http binding, using Spring. If I
> >> cannot get this problem resolved soon, as much as I do not want to, I'm
> >> going to have to punt usage of both CXF and XFire, which I am migrating
> >> from. Simple, SOAP-free, RESTful HTTP service invocations configured in
> >> Spring -- that's it. The documentation says that this can be done, but
> >> doesn't give a complete description of how this can be done; Google
> >> gives a reference from last month about this, but no answers, and the
> >> API samples don't shed any light on it. It seems my configuration is
> >> close, but I'm starting to wonder if Http Binding in CXF actually
> works,
> >> as the there is little to no information available on it.
> >>
> >> If anyone is in the know about how to get this to work, I'd greatly
> >> appreciate it. I'm up against a deadline and I'll have to roll my own
> >> service stack if I have to wait several days to get this resolved.
> >>
> >> Thanks in advance for your help.
> >>
> >> Brad
> >>
> >> Brad O'Hearne wrote:
> >> > I am loading a simple CXF service using Spring, and an HTTP Binding.
> >> > It is throwing an Exception, which unfortunately is very cryptic,
> >> > gives me no idea of what the problem is, or how to fix it, and
> there's
> >> > not any solution I can find in the documentation or by searching in
> >> > Google. Does anyone have any idea what this Exception means and/or
> how
> >> > to fix it? Thanks...output is below:
> >> >
> >> > ERROR [main] (ContextLoader.java:203) - Context initialization failed
> >> > org.springframework.beans.factory.BeanCreationException: Error
> >> > creating bean with name 'userService': Invocation of init method
> >> > failed; nested exception is java.lang.IndexOutOfBoundsException: No
> >> > group 1
> >> > Caused by:
> >> > java.lang.IndexOutOfBoundsException: No group 1
> >> >   at java.util.regex.Matcher.group(Matcher.java:463)
> >> >   at java.util.regex.Matcher.appendReplacement(Matcher.java:730)
> >> >   at java.util.regex.Matcher.replaceAll(Matcher.java:806)
> >> >   at
> >> >
> >> org.apache.cxf.binding.http.strategy.Inflector.pluralize(Inflector.java
> >> :72)
> >> >
> >> >   at
> >> > org.apache.cxf.binding.http.strategy.ConventionStrategy.extractNoun(
> >> ConventionStrategy.java:148)
> >> >
> >> >   at
> >> > org.apache.cxf.binding.http.strategy.ConventionStrategy.map(
> >> ConventionStrategy.java:88)
> >> >
> >> >   at
> >> > org.apache.cxf.binding.http.HttpBindingFactory.createBindingInfo(
> >> HttpBindingFactory.java:100)
> >> >
> >> >   at
> >> > org.apache.cxf.frontend.AbstractEndpointFactory.createBindingInfo(
> >> AbstractEndpointFactory.java:274)
> >> >
> >> >   at
> >> > org.apache.cxf.jaxws.JaxWsServerFactoryBean.createBindingInfo(
> >> JaxWsServerFactoryBean.java:124)
> >> >
> >> >   at
> >> > org.apache.cxf.frontend.AbstractEndpointFactory.createEndpointInfo(
> >> AbstractEndpointFactory.java:191)
> >> >
> >> >   at
> >> > org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(
> >> AbstractEndpointFactory.java:105)
> >> >
> >> >   at
> >> >
> >> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java
> >> :89)
> >> >
> >> >   at
> >> > org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(
> >> JaxWsServerFactoryBean.java:142)
> >> >
> >> >   at
> >> org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:277)
> >> >   at
> >> org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:223)
> >> >   at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:175)
> >> >   at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:329)
> >> >   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.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod
> >>
> >> (AbstractAutowireCapableBeanFactory.java:1240)
> >> >
> >> >   at
> >> >
> >>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods
> >>
> >> (AbstractAutowireCapableBeanFactory.java:1205)
> >> >
> >> >   at
> >> >
> >>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
> >>
> >> (AbstractAutowireCapableBeanFactory.java:1171)
> >> >
> >> >   at
> >> >
> >>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
> >>
> >> (AbstractAutowireCapableBeanFactory.java:425)
> >> >
> >> >   at
> >> >
> >>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(
> >>
> >> AbstractBeanFactory.java:251)
> >> >
> >> >   at
> >> >
> >>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton
> >>
> >> (DefaultSingletonBeanRegistry.java:156)
> >> >
> >> >   at
> >> > org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (
> >> AbstractBeanFactory.java:248)
> >> >
> >> >   at
> >> > org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (
> >> AbstractBeanFactory.java:160)
> >> >
> >> >   at
> >> >
> >>
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons
> >>
> >> (DefaultListableBeanFactory.java:287)
> >> >
> >> >   at
> >> >
> >> org.springframework.context.support.AbstractApplicationContext.refresh(
> >> AbstractApplicationContext.java:352)
> >> >
> >> >   at
> >> >
> >>
> org.springframework.web.context.ContextLoader.createWebApplicationContext(
> >>
> >> ContextLoader.java:244)
> >> >
> >> >   at
> >> >
> >> org.springframework.web.context.ContextLoader.initWebApplicationContext
> (
> >> ContextLoader.java:187)
> >> >
> >> >   at
> >> >
> >>
> org.springframework.web.context.ContextLoaderListener.contextInitialized
> >> (ContextLoaderListener.java:49)
> >> >
> >> >   at
> >> > org.apache.catalina.core.StandardContext.listenerStart(
> >> StandardContext.java:3826)
> >> >
> >> >   at
> >> > org.apache.catalina.core.StandardContext.start(StandardContext.java
> >> :4335)
> >> >   at
> >> > org.apache.catalina.core.ContainerBase.addChildInternal(
> >> ContainerBase.java:759)
> >> >
> >> >   at
> >> >
> >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
> >> >   at
> >> > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
> >> >   at
> >> > org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:824)
> >> >   at
> >> > org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java
> :713)
> >> >   at
> >> > org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java
> :489)
> >> >   at
> >> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1137)
> >> >   at
> >> > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
> >> :310)
> >> >
> >> >   at
> >> > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(
> >> LifecycleSupport.java:119)
> >> >
> >> >   at
> >> > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
> >> >   at
> >> org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
> >> >   at
> >> > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
> >> >   at
> >> > org.apache.catalina.core.StandardEngine.start(StandardEngine.java
> :442)
> >> >   at
> >> >
> >> org.apache.catalina.core.StandardService.start(StandardService.java
> :450)
> >> >   at
> >> > org.apache.catalina.core.StandardServer.start(StandardServer.java
> :709)
> >> >   at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
> >> >   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.catalina.startup.Bootstrap.start(Bootstrap.java:287)
> >> >   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
> >>
> >>
> >>
> >>
> >
> >
>
>


-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message