You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Brad O'Hearne <br...@neurofire.com> on 2007/07/14 02:37:29 UTC
[Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
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
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP
Binding]
Posted by kawanka <ka...@nbnet.nb.ca>.
I was quite encouraged when I saw this e-mail as I'm having a similar issue.
I'm in the middle of a project which uses Hibernate, XFire and Spring. I
refactored the project quite a bit a week ago. During that process, I was
browsing the XFire related site announcements. I was on the site to make
sure I had the latest API etc... I saw the news that XFire is now CXF.
After some initial "this is going to screw up my schedule thoughts", I
browsed the CXF site, downloaded the version 2 release and started porting
the application.. which doesn't seem like a big deal until I ran into the
issue in this e-mail.
My first impression is that CXF seems like it's going to be quite the SOAP
toolkit. Merging two existing projects must have its issues. However, the
end result will probably be more functionality for the end user.
Anyways, back to the problem... I started porting my project to CXF.. This
was about a week ago. I did a lot of Googling this week. Last night I found
this post. Since the begining of the week, I've done some tests with Hessian
(There are issues with Hibernate.. I know, it's a binary protocol...). Axis2
(too xml aware) and CXF.
Moving to CXF from XFire is the natural choice. However, If I cannot get
past this issue, I'm dead in the water and will have to use Axis2 which
seems overly concerned with serializing the data. I just want to use the
SOAP toolkit. I could not care less about WSDL serialization etc... Maybe
once my project prototype is complete, I can look at performance issues
related to WSDL generation on the fly.... if there are performance issues
that is.
There was talk about having the issue in this post fixed and in SVN. Would I
find this issue resolved in the SVN repository?
Are there other methods to wire my SOAP services which are possibly more
finished in the version 2 of the CXF release? I also have to use MTOM to
upload huge files.. this was working in the xfire version. Hopefully, this
is still working in the CXF version.
R.
Brad O'Hearne wrote:
>
> I should also mention that with both services loaded, even if I try to
> invoke the first service, which appears to have loaded as normal, CXF
> barfs with the following exception -- keep in mind, the first service
> has not been changed from its working state:
>
> INFO: URIParameterInterceptor handle message on path [/authenticate]
> with content-type [application/xml]
> Jul 16, 2007 4:11:03 PM org.apache.cxf.phase.PhaseInterceptorChain
> doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: object is not an instance of declaring
> class
> at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:88)
> at
> org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:82)
> at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:56)
> at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
> at
> org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
> at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:87)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:206)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:67)
> at
> org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:100)
> at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:224)
> at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:103)
> at
> org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:261)
> at
> org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:239)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:270)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:191)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:227)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:211)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:817)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:623)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:444)
> at java.lang.Thread.run(Thread.java:595)
>
>
> Brad O'Hearne wrote:
>> Dan, (and anyone else)
>>
>> I mentioned that I'd let you know how testing of this went. Well, good
>> news / bad news. The good news is, that except for some labors to get
>> databinding to work in places, I got my service working. The bad news,
>> is that I added a second service to my beans.xml file, and I'm back at
>> ground zero, as it seems only one service will load properly. If you
>> recall, the original xml in the beans.xml file we came to in order to
>> properly load the first service was as follows:
>>
>> <bean id="userService"
>> class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
>> init-method="create">
>> <property name="serviceClass"
>> value="com.brad.user.IUserService" />
>> <property name="serviceBean">
>> <bean class="com.brad.user.UserService" />
>> </property>
>> <property name="address" value="/UserService" />
>> <property name="bindingId"
>> value="http://apache.org/cxf/binding/http" />
>> <property name="serviceFactory" ref="JaxWsServiceFactoryBean" />
>> </bean>
>>
>> This loads and is invoked successfully. But now I've added a second
>> service to my beans.xml, as follows:
>>
>> <bean id="sponsorService"
>> class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
>> init-method="create">
>> <property name="serviceClass"
>> value="com.brad.sponsor.ISponsorService" />
>> <property name="serviceBean">
>> <bean class="com.brad.sponsor.SponsorService" />
>> </property>
>> <property name="address" value="/SponsorService" />
>> <property name="bindingId"
>> value="http://apache.org/cxf/binding/http" />
>> <property name="serviceFactory" ref="JaxWsServiceFactoryBean" />
>> </bean>
>>
>> When I deploy and start my server, on load I get no errors. But I also
>> do not see this new service load like the first one. The first
>> service, I see this in the logs:
>>
>> INFO: Creating Service {http://user.brad.com/}IUserServiceService from
>> class com.brad.user.IUserService
>>
>> But I do not see this for my second (ISponsorService) service. I have
>> no idea why this is happening, but obviously I need to ability to load
>> multiple services. Any idea why this is happening, and how to load
>> more than one service?
>>
>> Brad
>>
>> Brad O'Hearne wrote:
>>> Dan,
>>>
>>> Thanks so much for your help. There was one minor change -- there is
>>> no "implementor" property that can be set. You have to set the
>>> "serviceBean" class instead. All appears to load cleanly. Now off to
>>> test if I can actually hit the service from the outside. I'll let you
>>> know how that goes. Feel free to ping me when the endpoint config bug
>>> you mentioned is fixed, and when I should revert to the
>>> jaxws:endpoint specification again in my beans.xml configuration.
>>>
>>> Thanks a ton for your help. Hopefully, all is well, and I'll be able
>>> to be a daily consumer of this API via its usage in this project, and
>>> can maybe pitch in here down the road.
>>>
>>> Cheers,
>>>
>>> Brad
>>>
>>> Dan Diephouse wrote:
>>>> Oops, my bad. Well it seems our schema is missing the approrpriate
>>>> bindingUri/bindingId element. Argh... Alrighty, we'll have to fall
>>>> back to
>>>> the old spring syntax:
>>>>
>>>> <bean class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
>>>> init-method="create">
>>>> <property name="serviceClass"
>>>> value="com.brad.user.IUserService<http://apache.org/cxf/binding/http>
>>>> "/>
>>>> <property name="implementor">
>>>> <bean class="com.brad.UserService"/>
>>>> </property>
>>>> <property name="serviceClass" value="com.brad.user.IUserService"/>
>>>> <property name="address" value="/UserService"/>
>>>> <property name="bindingId"
>>>> value="http://apache.org/cxf/binding/http"/>
>>>> <property name="serviceFactory" ref="JaxWsServiceFactoryBean"/>
>>>> </bean>
>>>>
>>>> I've made the schema fix in SVN and am working on fixing the other
>>>> bug you
>>>> ran into now...
>>>> - Dan
>>>>
>>>> On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>>>>
>>>>> Dan,
>>>>>
>>>>> That is what I tried first, at your original recommendation. The
>>>>> problem
>>>>> is that the jaxws:server element according to the schema doesn't have
>>>>> either "implementor" or "bindingUri" attributes. It instead has an
>>>>> "implementor" element, and a "binding" element, which I tried
>>>>> using, in
>>>>> the markup I sent you, but had no luck, and got the exception. The
>>>>> schema isn't any clue as to what I'm supposed to have there.
>>>>>
>>>>> Brad
>>>>>
>>>>> Dan Diephouse wrote:
>>>>> > What you want is this:
>>>>> >
>>>>> > <jaxws:server id="userService"
>>>>> > serviceClass="com.brad.user.IUserService"
>>>>> > address="/UserService"
>>>>> > bindingUri="http://apache.org/cxf/binding/http"
>>>>> > implementor="com.brad.UserService">
>>>>> > <jaxws:serviceFactory>
>>>>> > <ref bean="JaxWsServiceFactoryBean" />
>>>>> > </jaxws:serviceFactory>
>>>>> > </jaxws:server>
>>>>> >
>>>>> > Regards,
>>>>> >
>>>>> > - Dan
>>>>> >
>>>>> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>>>> >>
>>>>> >> Dan,
>>>>> >>
>>>>> >> Thanks so much for tracking this down. Unfortunately, I'm still
>>>>> having
>>>>> >> some problems, because in the jaxws:server element markup you
>>>>> suggested,
>>>>> >> neither the implementor or bindingUri attributes are legal. I
>>>>> popped
>>>>> >> open the jaxws.xsd schema, to try to see if I could resolve it, and
>>>>> here
>>>>> >> is what I put together:
>>>>> >>
>>>>> >> <jaxws:server id="userService"
>>>>> >> serviceClass="com.brad.user.IUserService"
>>>>> >> address="/UserService">
>>>>> >>
>>>>> >> <jaxws:binding>http://apache.org/cxf/binding/http</jaxws:binding>
>>>>> >> <jaxws:implementor>com.brad.UserService</jaxws:implementor>
>>>>> >> <jaxws:serviceFactory>
>>>>> >> <ref bean="JaxWsServiceFactoryBean" />
>>>>> >> </jaxws:serviceFactory>
>>>>> >> </jaxws:server>
>>>>> >>
>>>>> >>
>>>>> >> but unfortunately, that doesn't work either. I'm failing on the
>>>>> binding
>>>>> >> it appears. I figured it probably wanted a class name rather than a
>>>>> uri,
>>>>> >> but the error output I got suggests that there's probably more info
>>>>> >> needed to create the binding. The schema wasn't any clue on what
>>>>> to put
>>>>> >> for this element. Here is the output below:
>>>>> >>
>>>>> >> ERROR [main] (ContextLoader.java:203) - Context initialization
>>>>> failed
>>>>> >> org.springframework.beans.factory.BeanDefinitionStoreException:
>>>>> >> Unexpected exception parsing XML document from ServletContext
>>>>> resource
>>>>> >> [/WEB-INF/beans.xml]; nested exception is
>>>>> >> java.lang.IllegalStateException: bindingConfig property must
>>>>> have child
>>>>> >> elements!
>>>>> >> Caused by:
>>>>> >> java.lang.IllegalStateException: bindingConfig property must
>>>>> have child
>>>>> >> elements!
>>>>> >>
>>>>> >> Brad
>>>>> >>
>>>>> >> Dan Diephouse wrote:
>>>>> >> > OK, I wrote a test case and I see whats happening now.
>>>>> Unfortunately
>>>>> >> when
>>>>> >> > using EndpointImpl (which <jaxws:endpoint> does), somehow the
>>>>> HTTP
>>>>> >> > Binding
>>>>> >> > seems to be looking for the annotations on the impl class instead
>>>>> >> of the
>>>>> >> > interface class :-\.
>>>>> >> >
>>>>> >> > Try this instead:
>>>>> >> >
>>>>> >> >
>>>>> >> > <jaxws:server id="userService"
>>>>> >> > serviceClass="com.brad.user.IUserService"
>>>>> >> > implementor="com.brad.user.UserService"
>>>>> >> > address="/UserService"
>>>>> >> > bindingUri="http://apache.org/cxf/binding/http">
>>>>> >> > <jaxws:serviceFactory>
>>>>> >> > <ref bean="JaxWsServiceFactoryBean" />
>>>>> >> > </jaxws:serviceFactory>
>>>>> >> > </jaxws:server>
>>>>> >> >
>>>>> >> > Notice that its jaxws:server, not jaxws:endpoint. (This
>>>>> creates a CXF
>>>>> >> > Server
>>>>> >> > object instead of a JAX-WS Endpoint object and allows more
>>>>> control of
>>>>> >> how
>>>>> >> > CXF creates the service). This will tell CXF to look at the
>>>>> >> > IUserService for
>>>>> >> > annotations.
>>>>> >> >
>>>>> >> > I'll fix this bug in SVN later today, but in the meantime that
>>>>> should
>>>>> >> > work.
>>>>> >> >
>>>>> >> > Cheers,
>>>>> >> > - Dan
>>>>> >> >
>>>>> >> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>>>> >> >>
>>>>> >> >> Dan,
>>>>> >> >>
>>>>> >> >> I just tried the endpointInterface attribute now on my
>>>>> implementation
>>>>> >> >> class, while leaving just the @WebService and method annotations
>>>>> >> on my
>>>>> >> >> interface class, as follows:
>>>>> >> >>
>>>>> >> >> @WebService (endpointInterface = "com.brad.user.IUserService")
>>>>> >> >> public class UserService implements IUserService {...
>>>>> >> >>
>>>>> >> >> @WebService
>>>>> >> >> public interface IUserService {
>>>>> >> >>
>>>>> >> >> As stated, I left the annotations on my one method in
>>>>> IUserService.
>>>>> I
>>>>> >> >> annotated no methods in UserService. The full output / error
>>>>> I get
>>>>> is
>>>>> >> >> below. The interesting thing is that these methods that the log
>>>>> shows
>>>>> >> >> are being set up exist only in the implementation class, and
>>>>> are not
>>>>> >> >> annotated. They do not exist in the interface class. The one
>>>>> method
>>>>> >> that
>>>>> >> >> is annotated in my interface class, getUsers(), is never
>>>>> mentioned.
>>>>> >> >>
>>>>> >> >> INFO: Creating Service
>>>>> {http://user.brad.com/}UserServiceServicefrom
>>>>> >> >> class com.brad.user.UserService
>>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>>> >> instance
>>>>> >> >> of singleton bean '
>>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>>> >> instance
>>>>> >> >> of singleton bean '
>>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>>> >> instance
>>>>> >> >> of singleton bean '
>>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>>> >> instance
>>>>> >> >> of singleton bean '
>>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>>> >> instance
>>>>> >> >> of singleton bean '
>>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>>> >> instance
>>>>> >> >> of singleton bean '
>>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>>>> >> >> INFO: Mapping method createUser to resource /eUsers and verb
>>>>> POST
>>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>>>> >> >> INFO: Mapping method modifyUser to resource /modifyUser and verb
>>>>> POST
>>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>>>> >> >> INFO: Mapping method authenticate to resource /authenticate
>>>>> and verb
>>>>> >> >> POST
>>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>>>> >> >> INFO: Mapping method deleteUser to resource /users and verb
>>>>> DELETE
>>>>> >> >> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
>>>>> >> >> singletons in
>>>>> >> >>
>>>>> >> >>
>>>>> >>
>>>>> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979
>>>>>
>>>>> >>
>>>>> >> >>
>>>>> >> >> :
>>>>> >> >> defining beans
>>>>> >> >> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,
>>>>> >> >> org.apache.cxf.bus.spring.BusExtensionPostProcessor,
>>>>> >> >> org.apache.cxf.resource.ResourceManager,
>>>>> >> >> org.apache.cxf.binding.BindingFactoryManager,
>>>>> >> >> org.apache.cxf.transport.DestinationFactoryManager,
>>>>> >> >> org.apache.cxf.transport.ConduitInitiatorManager,
>>>>> >> >>
>>>>> org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,
>>>>> >> >> org.apache.cxf.workqueue.WorkQueueManager,
>>>>> >> >> org.apache.cxf.buslifecycle.BusLifeCycleManager,
>>>>> >> >> org.apache.cxf.endpoint.ServerRegistry,
>>>>> >> >> org.apache.cxf.endpoint.ServerLifeCycleManager,
>>>>> >> >> org.apache.cxf.endpoint.ClientLifeCycleManager,
>>>>> >> >> org.apache.cxf.transports.http.QueryHandlerRegistry,
>>>>> >> >> org.apache.cxf.endpoint.EndpointResolverRegistry,
>>>>> >> >> org.apache.cxf.headers.HeaderManager,
>>>>> >> >> org.apache.cxf.catalog.OASISCatalogManager,
>>>>> >> >> org.apache.cxf.binding.http.HttpBindingFactory,
>>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory
>>>>> >> >> ,JaxWsServiceFactoryBean,userService];
>>>>> >> >> root of factory hierarchy
>>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>>> >> >> dependent beans for bean 'JaxWsServiceFactoryBean':
>>>>> [userService]
>>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>>> >> >> dependent beans for bean
>>>>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
>>>>> >> >> [org.apache.cxf.transport.ConduitInitiatorManager]
>>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>>> >> >> dependent beans for bean
>>>>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
>>>>> >> >> [org.apache.cxf.transport.DestinationFactoryManager]
>>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>>> >> >> dependent beans for bean
>>>>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
>>>>> >> >> [org.apache.cxf.binding.BindingFactoryManager]
>>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>>> >> >> dependent beans for bean
>>>>> >> >> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
>>>>> >> >> [org.apache.cxf.resource.ResourceManager]
>>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>>> >> >> dependent beans for bean
>>>>> >> >> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
>>>>> >> >> [org.apache.cxf.resource.ResourceManager]
>>>>> >> >> 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)
>>>>> >> >> Jul 14, 2007 10:01:59 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': 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)
>>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>>> org.apache.catalina.core.StandardContext
>>>>> >> start
>>>>> >> >> SEVERE: Error listenerStart
>>>>> >> >> Jul 14, 2007 10:01:59 AM org.a
>>>>> >> >>
>>>>> >> >>
>>>>> >> >> Brad O'Hearne wrote:
>>>>> >> >> > Dan,
>>>>> >> >> >
>>>>> >> >> > I just tried the endpointInterface attribute on my interface
>>>>> class,
>>>>> >> as
>>>>> >> >> > follows:
>>>>> >> >> >
>>>>> >> >> > @WebService (endpointInterface = "com.brad.user.IUserService")
>>>>> >> >> > public interface IUserService {
>>>>> >> >> >
>>>>> >> >> > and here is the error I receive:
>>>>> >> >> >
>>>>> >> >> > 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 javax.xml.ws.WebServiceException:
>>>>> >> >> > Attributes portName, serviceName and endpointInterface are not
>>>>> >> allowed
>>>>> >> >> > in the @WebService annotation of an SEI.
>>>>> >> >> > Caused by:
>>>>> >> >> > javax.xml.ws.WebServiceException: Attributes portName,
>>>>> serviceName
>>>>> >> and
>>>>> >> >> > endpointInterface are not allowed in the @WebService
>>>>> annotation
>>>>> >> of an
>>>>> >> >> > SEI.
>>>>> >> >> > at
>>>>> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(
>>>>> >> >> JaxWsImplementorInfo.java:279)
>>>>> >> >> >
>>>>> >> >> > at
>>>>> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(
>>>>> >> >> JaxWsImplementorInfo.java:57)
>>>>> >> >> >
>>>>> >> >> >
>>>>> >> >> > I think this probably goes back to the design pattern
>>>>> mentioned
>>>>> >> in my
>>>>> >> >> > previous post (annotations on the interface, none of the
>>>>> >> >> > implementation class). I'm guessing we are on the cusp of
>>>>> having
>>>>> >> this
>>>>> >> >> > solved.
>>>>> >> >> >
>>>>> >> >> > Thanks,
>>>>> >> >> >
>>>>> >> >> > Brad
>>>>> >> >> >
>>>>> >> >> > Brad O'Hearne wrote:
>>>>> >> >> >> Dan,
>>>>> >> >> >>
>>>>> >> >> >> I think you may have hit on the mystery here. I do not
>>>>> have an
>>>>> >> >> >> endpoint interface defined on my @WebService. But the rest of
>>>>> your
>>>>> >> >> >> answer below suggests that I may have done something else
>>>>> wrong
>>>>> in
>>>>> >> >> >> general. My annotations occur entirely in my interface, i.e.
>>>>> >> >> >>
>>>>> >> >> >> @WebService
>>>>> >> >> >> public interface IUserService ...
>>>>> >> >> >>
>>>>> >> >> >> and my implementing class has no annotations whatsoever,
>>>>> i.e.:
>>>>> >> >> >>
>>>>> >> >> >> public class UserService extends IUserService ...
>>>>> >> >> >>
>>>>> >> >> >> and from the past posts I have, you'll see that my
>>>>> beans.xml file
>>>>> >> >> >> references the implementation class, i.e.
>>>>> >> >> >>
>>>>> >> >> >> <jaxws:endpoint id="userService"
>>>>> >> >> >> serviceClass="com.brad.user.IUserService"
>>>>> >> >> >> implementor="com.brad.user.UserService"
>>>>> >> >> >> address="/UserService"
>>>>> >> >> >> bindingUri="http://apache.org/cxf/binding/http"
>>>>> >> >> >> >
>>>>> >> >> >> <jaxws:serviceFactory>
>>>>> >> >> >> <ref bean="JaxWsServiceFactoryBean" />
>>>>> >> >> >> </jaxws:serviceFactory>
>>>>> >> >> >> </jaxws:endpoint>
>>>>> >> >> >>
>>>>> >> >> >> This was the pattern used in XFire which worked, and the
>>>>> >> pattern set
>>>>> >> >> >> forth in the CXF user's guide, as in:
>>>>> >> >> >> http://cwiki.apache.org/CXF20DOC/http-binding.html
>>>>> >> >> >>
>>>>> >> >> >> But perhaps I've read it wrong. So I'll ask...
>>>>> >> >> >>
>>>>> >> >> >> 1. Should my annotations be on my implementation class or my
>>>>> >> >> >> interface class?
>>>>> >> >> >> 2. Depending on the answer to 1), if annotations are put
>>>>> in the
>>>>> >> >> >> interface, the endpointInterface attribute would logically
>>>>> >> always be
>>>>> >> >> >> the same name as that interface. Is this accurate?
>>>>> >> >> >> 3. Should the implementor attribute in the beans.xml
>>>>> >> jaxws:endpoint
>>>>> >> >> >> element reference the interface, or the imlementation?
>>>>> >> >> >>
>>>>> >> >> >> Thanks a ton for helping out Dan, it is sincerely
>>>>> appreciated.
>>>>> >> I'll
>>>>> >> >> >> throw that endpointInterface attribute on my @WebService
>>>>> >> annotation
>>>>> >> >> >> right now (which presently sits in my interface) and see what
>>>>> >> >> happens.
>>>>> >> >> >>
>>>>> >> >> >> Brad
>>>>> >> >> >>
>>>>> >> >> >> Dan Diephouse wrote:
>>>>> >> >> >>> 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 <br...@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 <br...@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 <br...@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)
>>>>> >> >> >>>> >>
>>>>> >> >> >>>> >>
>>>>> >> >> >>>> >>
>>>>> >> >> >>>> >>
>>>>> >> >> >>>> >
>>>>> >> >> >>>> >
>>>>> >> >> >>>>
>>>>> >> >> >>>>
>>>>> >> >> >>>
>>>>> >> >> >>>
>>>>> >> >> >>
>>>>> >> >> >
>>>>> >> >>
>>>>> >> >>
>>>>> >> >>
>>>>> >> >
>>>>> >> >
>>>>> >>
>>>>> >>
>>>>> >
>>>>> >
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>
>
>
--
View this message in context: http://www.nabble.com/-Fwd%3A-Re%3A-Exception-loading-CXF-service-in-Spring-with-HTTP-Binding--tf4077582.html#a11809669
Sent from the cxf-dev mailing list archive at Nabble.com.
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
I should also mention that with both services loaded, even if I try to
invoke the first service, which appears to have loaded as normal, CXF
barfs with the following exception -- keep in mind, the first service
has not been changed from its working state:
INFO: URIParameterInterceptor handle message on path [/authenticate]
with content-type [application/xml]
Jul 16, 2007 4:11:03 PM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: object is not an instance of declaring
class
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:88)
at
org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:82)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:56)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:87)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:206)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:67)
at
org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:100)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:224)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:103)
at
org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:261)
at
org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:239)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:270)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:191)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:227)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:211)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:817)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:623)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:444)
at java.lang.Thread.run(Thread.java:595)
Brad O'Hearne wrote:
> Dan, (and anyone else)
>
> I mentioned that I'd let you know how testing of this went. Well, good
> news / bad news. The good news is, that except for some labors to get
> databinding to work in places, I got my service working. The bad news,
> is that I added a second service to my beans.xml file, and I'm back at
> ground zero, as it seems only one service will load properly. If you
> recall, the original xml in the beans.xml file we came to in order to
> properly load the first service was as follows:
>
> <bean id="userService"
> class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
> init-method="create">
> <property name="serviceClass"
> value="com.brad.user.IUserService" />
> <property name="serviceBean">
> <bean class="com.brad.user.UserService" />
> </property>
> <property name="address" value="/UserService" />
> <property name="bindingId"
> value="http://apache.org/cxf/binding/http" />
> <property name="serviceFactory" ref="JaxWsServiceFactoryBean" />
> </bean>
>
> This loads and is invoked successfully. But now I've added a second
> service to my beans.xml, as follows:
>
> <bean id="sponsorService"
> class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
> init-method="create">
> <property name="serviceClass"
> value="com.brad.sponsor.ISponsorService" />
> <property name="serviceBean">
> <bean class="com.brad.sponsor.SponsorService" />
> </property>
> <property name="address" value="/SponsorService" />
> <property name="bindingId"
> value="http://apache.org/cxf/binding/http" />
> <property name="serviceFactory" ref="JaxWsServiceFactoryBean" />
> </bean>
>
> When I deploy and start my server, on load I get no errors. But I also
> do not see this new service load like the first one. The first
> service, I see this in the logs:
>
> INFO: Creating Service {http://user.brad.com/}IUserServiceService from
> class com.brad.user.IUserService
>
> But I do not see this for my second (ISponsorService) service. I have
> no idea why this is happening, but obviously I need to ability to load
> multiple services. Any idea why this is happening, and how to load
> more than one service?
>
> Brad
>
> Brad O'Hearne wrote:
>> Dan,
>>
>> Thanks so much for your help. There was one minor change -- there is
>> no "implementor" property that can be set. You have to set the
>> "serviceBean" class instead. All appears to load cleanly. Now off to
>> test if I can actually hit the service from the outside. I'll let you
>> know how that goes. Feel free to ping me when the endpoint config bug
>> you mentioned is fixed, and when I should revert to the
>> jaxws:endpoint specification again in my beans.xml configuration.
>>
>> Thanks a ton for your help. Hopefully, all is well, and I'll be able
>> to be a daily consumer of this API via its usage in this project, and
>> can maybe pitch in here down the road.
>>
>> Cheers,
>>
>> Brad
>>
>> Dan Diephouse wrote:
>>> Oops, my bad. Well it seems our schema is missing the approrpriate
>>> bindingUri/bindingId element. Argh... Alrighty, we'll have to fall
>>> back to
>>> the old spring syntax:
>>>
>>> <bean class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
>>> init-method="create">
>>> <property name="serviceClass"
>>> value="com.brad.user.IUserService<http://apache.org/cxf/binding/http>
>>> "/>
>>> <property name="implementor">
>>> <bean class="com.brad.UserService"/>
>>> </property>
>>> <property name="serviceClass" value="com.brad.user.IUserService"/>
>>> <property name="address" value="/UserService"/>
>>> <property name="bindingId"
>>> value="http://apache.org/cxf/binding/http"/>
>>> <property name="serviceFactory" ref="JaxWsServiceFactoryBean"/>
>>> </bean>
>>>
>>> I've made the schema fix in SVN and am working on fixing the other
>>> bug you
>>> ran into now...
>>> - Dan
>>>
>>> On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>>>
>>>> Dan,
>>>>
>>>> That is what I tried first, at your original recommendation. The
>>>> problem
>>>> is that the jaxws:server element according to the schema doesn't have
>>>> either "implementor" or "bindingUri" attributes. It instead has an
>>>> "implementor" element, and a "binding" element, which I tried
>>>> using, in
>>>> the markup I sent you, but had no luck, and got the exception. The
>>>> schema isn't any clue as to what I'm supposed to have there.
>>>>
>>>> Brad
>>>>
>>>> Dan Diephouse wrote:
>>>> > What you want is this:
>>>> >
>>>> > <jaxws:server id="userService"
>>>> > serviceClass="com.brad.user.IUserService"
>>>> > address="/UserService"
>>>> > bindingUri="http://apache.org/cxf/binding/http"
>>>> > implementor="com.brad.UserService">
>>>> > <jaxws:serviceFactory>
>>>> > <ref bean="JaxWsServiceFactoryBean" />
>>>> > </jaxws:serviceFactory>
>>>> > </jaxws:server>
>>>> >
>>>> > Regards,
>>>> >
>>>> > - Dan
>>>> >
>>>> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>>> >>
>>>> >> Dan,
>>>> >>
>>>> >> Thanks so much for tracking this down. Unfortunately, I'm still
>>>> having
>>>> >> some problems, because in the jaxws:server element markup you
>>>> suggested,
>>>> >> neither the implementor or bindingUri attributes are legal. I
>>>> popped
>>>> >> open the jaxws.xsd schema, to try to see if I could resolve it, and
>>>> here
>>>> >> is what I put together:
>>>> >>
>>>> >> <jaxws:server id="userService"
>>>> >> serviceClass="com.brad.user.IUserService"
>>>> >> address="/UserService">
>>>> >>
>>>> >> <jaxws:binding>http://apache.org/cxf/binding/http</jaxws:binding>
>>>> >> <jaxws:implementor>com.brad.UserService</jaxws:implementor>
>>>> >> <jaxws:serviceFactory>
>>>> >> <ref bean="JaxWsServiceFactoryBean" />
>>>> >> </jaxws:serviceFactory>
>>>> >> </jaxws:server>
>>>> >>
>>>> >>
>>>> >> but unfortunately, that doesn't work either. I'm failing on the
>>>> binding
>>>> >> it appears. I figured it probably wanted a class name rather than a
>>>> uri,
>>>> >> but the error output I got suggests that there's probably more info
>>>> >> needed to create the binding. The schema wasn't any clue on what
>>>> to put
>>>> >> for this element. Here is the output below:
>>>> >>
>>>> >> ERROR [main] (ContextLoader.java:203) - Context initialization
>>>> failed
>>>> >> org.springframework.beans.factory.BeanDefinitionStoreException:
>>>> >> Unexpected exception parsing XML document from ServletContext
>>>> resource
>>>> >> [/WEB-INF/beans.xml]; nested exception is
>>>> >> java.lang.IllegalStateException: bindingConfig property must
>>>> have child
>>>> >> elements!
>>>> >> Caused by:
>>>> >> java.lang.IllegalStateException: bindingConfig property must
>>>> have child
>>>> >> elements!
>>>> >>
>>>> >> Brad
>>>> >>
>>>> >> Dan Diephouse wrote:
>>>> >> > OK, I wrote a test case and I see whats happening now.
>>>> Unfortunately
>>>> >> when
>>>> >> > using EndpointImpl (which <jaxws:endpoint> does), somehow the
>>>> HTTP
>>>> >> > Binding
>>>> >> > seems to be looking for the annotations on the impl class instead
>>>> >> of the
>>>> >> > interface class :-\.
>>>> >> >
>>>> >> > Try this instead:
>>>> >> >
>>>> >> >
>>>> >> > <jaxws:server id="userService"
>>>> >> > serviceClass="com.brad.user.IUserService"
>>>> >> > implementor="com.brad.user.UserService"
>>>> >> > address="/UserService"
>>>> >> > bindingUri="http://apache.org/cxf/binding/http">
>>>> >> > <jaxws:serviceFactory>
>>>> >> > <ref bean="JaxWsServiceFactoryBean" />
>>>> >> > </jaxws:serviceFactory>
>>>> >> > </jaxws:server>
>>>> >> >
>>>> >> > Notice that its jaxws:server, not jaxws:endpoint. (This
>>>> creates a CXF
>>>> >> > Server
>>>> >> > object instead of a JAX-WS Endpoint object and allows more
>>>> control of
>>>> >> how
>>>> >> > CXF creates the service). This will tell CXF to look at the
>>>> >> > IUserService for
>>>> >> > annotations.
>>>> >> >
>>>> >> > I'll fix this bug in SVN later today, but in the meantime that
>>>> should
>>>> >> > work.
>>>> >> >
>>>> >> > Cheers,
>>>> >> > - Dan
>>>> >> >
>>>> >> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>>> >> >>
>>>> >> >> Dan,
>>>> >> >>
>>>> >> >> I just tried the endpointInterface attribute now on my
>>>> implementation
>>>> >> >> class, while leaving just the @WebService and method annotations
>>>> >> on my
>>>> >> >> interface class, as follows:
>>>> >> >>
>>>> >> >> @WebService (endpointInterface = "com.brad.user.IUserService")
>>>> >> >> public class UserService implements IUserService {...
>>>> >> >>
>>>> >> >> @WebService
>>>> >> >> public interface IUserService {
>>>> >> >>
>>>> >> >> As stated, I left the annotations on my one method in
>>>> IUserService.
>>>> I
>>>> >> >> annotated no methods in UserService. The full output / error
>>>> I get
>>>> is
>>>> >> >> below. The interesting thing is that these methods that the log
>>>> shows
>>>> >> >> are being set up exist only in the implementation class, and
>>>> are not
>>>> >> >> annotated. They do not exist in the interface class. The one
>>>> method
>>>> >> that
>>>> >> >> is annotated in my interface class, getUsers(), is never
>>>> mentioned.
>>>> >> >>
>>>> >> >> INFO: Creating Service
>>>> {http://user.brad.com/}UserServiceServicefrom
>>>> >> >> class com.brad.user.UserService
>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>> >> instance
>>>> >> >> of singleton bean '
>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>> >> instance
>>>> >> >> of singleton bean '
>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>> >> instance
>>>> >> >> of singleton bean '
>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>> >> instance
>>>> >> >> of singleton bean '
>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>> >> instance
>>>> >> >> of singleton bean '
>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>>> >> instance
>>>> >> >> of singleton bean '
>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>>> >> >> INFO: Mapping method createUser to resource /eUsers and verb
>>>> POST
>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>>> >> >> INFO: Mapping method modifyUser to resource /modifyUser and verb
>>>> POST
>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>>> >> >> INFO: Mapping method authenticate to resource /authenticate
>>>> and verb
>>>> >> >> POST
>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>>> >> >> INFO: Mapping method deleteUser to resource /users and verb
>>>> DELETE
>>>> >> >> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
>>>> >> >> singletons in
>>>> >> >>
>>>> >> >>
>>>> >>
>>>> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979
>>>>
>>>> >>
>>>> >> >>
>>>> >> >> :
>>>> >> >> defining beans
>>>> >> >> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,
>>>> >> >> org.apache.cxf.bus.spring.BusExtensionPostProcessor,
>>>> >> >> org.apache.cxf.resource.ResourceManager,
>>>> >> >> org.apache.cxf.binding.BindingFactoryManager,
>>>> >> >> org.apache.cxf.transport.DestinationFactoryManager,
>>>> >> >> org.apache.cxf.transport.ConduitInitiatorManager,
>>>> >> >>
>>>> org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,
>>>> >> >> org.apache.cxf.workqueue.WorkQueueManager,
>>>> >> >> org.apache.cxf.buslifecycle.BusLifeCycleManager,
>>>> >> >> org.apache.cxf.endpoint.ServerRegistry,
>>>> >> >> org.apache.cxf.endpoint.ServerLifeCycleManager,
>>>> >> >> org.apache.cxf.endpoint.ClientLifeCycleManager,
>>>> >> >> org.apache.cxf.transports.http.QueryHandlerRegistry,
>>>> >> >> org.apache.cxf.endpoint.EndpointResolverRegistry,
>>>> >> >> org.apache.cxf.headers.HeaderManager,
>>>> >> >> org.apache.cxf.catalog.OASISCatalogManager,
>>>> >> >> org.apache.cxf.binding.http.HttpBindingFactory,
>>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory
>>>> >> >> ,JaxWsServiceFactoryBean,userService];
>>>> >> >> root of factory hierarchy
>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>> >> >> dependent beans for bean 'JaxWsServiceFactoryBean':
>>>> [userService]
>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>> >> >> dependent beans for bean
>>>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
>>>> >> >> [org.apache.cxf.transport.ConduitInitiatorManager]
>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>> >> >> dependent beans for bean
>>>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
>>>> >> >> [org.apache.cxf.transport.DestinationFactoryManager]
>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>> >> >> dependent beans for bean
>>>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
>>>> >> >> [org.apache.cxf.binding.BindingFactoryManager]
>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>> >> >> dependent beans for bean
>>>> >> >> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
>>>> >> >> [org.apache.cxf.resource.ResourceManager]
>>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>>> >> >> dependent beans for bean
>>>> >> >> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
>>>> >> >> [org.apache.cxf.resource.ResourceManager]
>>>> >> >> 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)
>>>> >> >> Jul 14, 2007 10:01:59 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': 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)
>>>> >> >> Jul 14, 2007 10:01:59 AM
>>>> org.apache.catalina.core.StandardContext
>>>> >> start
>>>> >> >> SEVERE: Error listenerStart
>>>> >> >> Jul 14, 2007 10:01:59 AM org.a
>>>> >> >>
>>>> >> >>
>>>> >> >> Brad O'Hearne wrote:
>>>> >> >> > Dan,
>>>> >> >> >
>>>> >> >> > I just tried the endpointInterface attribute on my interface
>>>> class,
>>>> >> as
>>>> >> >> > follows:
>>>> >> >> >
>>>> >> >> > @WebService (endpointInterface = "com.brad.user.IUserService")
>>>> >> >> > public interface IUserService {
>>>> >> >> >
>>>> >> >> > and here is the error I receive:
>>>> >> >> >
>>>> >> >> > 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 javax.xml.ws.WebServiceException:
>>>> >> >> > Attributes portName, serviceName and endpointInterface are not
>>>> >> allowed
>>>> >> >> > in the @WebService annotation of an SEI.
>>>> >> >> > Caused by:
>>>> >> >> > javax.xml.ws.WebServiceException: Attributes portName,
>>>> serviceName
>>>> >> and
>>>> >> >> > endpointInterface are not allowed in the @WebService
>>>> annotation
>>>> >> of an
>>>> >> >> > SEI.
>>>> >> >> > at
>>>> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(
>>>> >> >> JaxWsImplementorInfo.java:279)
>>>> >> >> >
>>>> >> >> > at
>>>> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(
>>>> >> >> JaxWsImplementorInfo.java:57)
>>>> >> >> >
>>>> >> >> >
>>>> >> >> > I think this probably goes back to the design pattern
>>>> mentioned
>>>> >> in my
>>>> >> >> > previous post (annotations on the interface, none of the
>>>> >> >> > implementation class). I'm guessing we are on the cusp of
>>>> having
>>>> >> this
>>>> >> >> > solved.
>>>> >> >> >
>>>> >> >> > Thanks,
>>>> >> >> >
>>>> >> >> > Brad
>>>> >> >> >
>>>> >> >> > Brad O'Hearne wrote:
>>>> >> >> >> Dan,
>>>> >> >> >>
>>>> >> >> >> I think you may have hit on the mystery here. I do not
>>>> have an
>>>> >> >> >> endpoint interface defined on my @WebService. But the rest of
>>>> your
>>>> >> >> >> answer below suggests that I may have done something else
>>>> wrong
>>>> in
>>>> >> >> >> general. My annotations occur entirely in my interface, i.e.
>>>> >> >> >>
>>>> >> >> >> @WebService
>>>> >> >> >> public interface IUserService ...
>>>> >> >> >>
>>>> >> >> >> and my implementing class has no annotations whatsoever,
>>>> i.e.:
>>>> >> >> >>
>>>> >> >> >> public class UserService extends IUserService ...
>>>> >> >> >>
>>>> >> >> >> and from the past posts I have, you'll see that my
>>>> beans.xml file
>>>> >> >> >> references the implementation class, i.e.
>>>> >> >> >>
>>>> >> >> >> <jaxws:endpoint id="userService"
>>>> >> >> >> serviceClass="com.brad.user.IUserService"
>>>> >> >> >> implementor="com.brad.user.UserService"
>>>> >> >> >> address="/UserService"
>>>> >> >> >> bindingUri="http://apache.org/cxf/binding/http"
>>>> >> >> >> >
>>>> >> >> >> <jaxws:serviceFactory>
>>>> >> >> >> <ref bean="JaxWsServiceFactoryBean" />
>>>> >> >> >> </jaxws:serviceFactory>
>>>> >> >> >> </jaxws:endpoint>
>>>> >> >> >>
>>>> >> >> >> This was the pattern used in XFire which worked, and the
>>>> >> pattern set
>>>> >> >> >> forth in the CXF user's guide, as in:
>>>> >> >> >> http://cwiki.apache.org/CXF20DOC/http-binding.html
>>>> >> >> >>
>>>> >> >> >> But perhaps I've read it wrong. So I'll ask...
>>>> >> >> >>
>>>> >> >> >> 1. Should my annotations be on my implementation class or my
>>>> >> >> >> interface class?
>>>> >> >> >> 2. Depending on the answer to 1), if annotations are put
>>>> in the
>>>> >> >> >> interface, the endpointInterface attribute would logically
>>>> >> always be
>>>> >> >> >> the same name as that interface. Is this accurate?
>>>> >> >> >> 3. Should the implementor attribute in the beans.xml
>>>> >> jaxws:endpoint
>>>> >> >> >> element reference the interface, or the imlementation?
>>>> >> >> >>
>>>> >> >> >> Thanks a ton for helping out Dan, it is sincerely
>>>> appreciated.
>>>> >> I'll
>>>> >> >> >> throw that endpointInterface attribute on my @WebService
>>>> >> annotation
>>>> >> >> >> right now (which presently sits in my interface) and see what
>>>> >> >> happens.
>>>> >> >> >>
>>>> >> >> >> Brad
>>>> >> >> >>
>>>> >> >> >> Dan Diephouse wrote:
>>>> >> >> >>> 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 <br...@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 <br...@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 <br...@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)
>>>> >> >> >>>> >>
>>>> >> >> >>>> >>
>>>> >> >> >>>> >>
>>>> >> >> >>>> >>
>>>> >> >> >>>> >
>>>> >> >> >>>> >
>>>> >> >> >>>>
>>>> >> >> >>>>
>>>> >> >> >>>
>>>> >> >> >>>
>>>> >> >> >>
>>>> >> >> >
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >> >
>>>> >> >
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>>
>>>>
>>>
>>>
>>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan, (and anyone else)
I mentioned that I'd let you know how testing of this went. Well, good
news / bad news. The good news is, that except for some labors to get
databinding to work in places, I got my service working. The bad news,
is that I added a second service to my beans.xml file, and I'm back at
ground zero, as it seems only one service will load properly. If you
recall, the original xml in the beans.xml file we came to in order to
properly load the first service was as follows:
<bean id="userService"
class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
init-method="create">
<property name="serviceClass"
value="com.brad.user.IUserService" />
<property name="serviceBean">
<bean class="com.brad.user.UserService" />
</property>
<property name="address" value="/UserService" />
<property name="bindingId"
value="http://apache.org/cxf/binding/http" />
<property name="serviceFactory" ref="JaxWsServiceFactoryBean" />
</bean>
This loads and is invoked successfully. But now I've added a second
service to my beans.xml, as follows:
<bean id="sponsorService"
class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
init-method="create">
<property name="serviceClass"
value="com.brad.sponsor.ISponsorService" />
<property name="serviceBean">
<bean class="com.brad.sponsor.SponsorService" />
</property>
<property name="address" value="/SponsorService" />
<property name="bindingId"
value="http://apache.org/cxf/binding/http" />
<property name="serviceFactory" ref="JaxWsServiceFactoryBean" />
</bean>
When I deploy and start my server, on load I get no errors. But I also
do not see this new service load like the first one. The first service,
I see this in the logs:
INFO: Creating Service {http://user.brad.com/}IUserServiceService from
class com.brad.user.IUserService
But I do not see this for my second (ISponsorService) service. I have no
idea why this is happening, but obviously I need to ability to load
multiple services. Any idea why this is happening, and how to load more
than one service?
Brad
Brad O'Hearne wrote:
> Dan,
>
> Thanks so much for your help. There was one minor change -- there is
> no "implementor" property that can be set. You have to set the
> "serviceBean" class instead. All appears to load cleanly. Now off to
> test if I can actually hit the service from the outside. I'll let you
> know how that goes. Feel free to ping me when the endpoint config bug
> you mentioned is fixed, and when I should revert to the jaxws:endpoint
> specification again in my beans.xml configuration.
>
> Thanks a ton for your help. Hopefully, all is well, and I'll be able
> to be a daily consumer of this API via its usage in this project, and
> can maybe pitch in here down the road.
>
> Cheers,
>
> Brad
>
> Dan Diephouse wrote:
>> Oops, my bad. Well it seems our schema is missing the approrpriate
>> bindingUri/bindingId element. Argh... Alrighty, we'll have to fall
>> back to
>> the old spring syntax:
>>
>> <bean class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
>> init-method="create">
>> <property name="serviceClass"
>> value="com.brad.user.IUserService<http://apache.org/cxf/binding/http>
>> "/>
>> <property name="implementor">
>> <bean class="com.brad.UserService"/>
>> </property>
>> <property name="serviceClass" value="com.brad.user.IUserService"/>
>> <property name="address" value="/UserService"/>
>> <property name="bindingId" value="http://apache.org/cxf/binding/http"/>
>> <property name="serviceFactory" ref="JaxWsServiceFactoryBean"/>
>> </bean>
>>
>> I've made the schema fix in SVN and am working on fixing the other
>> bug you
>> ran into now...
>> - Dan
>>
>> On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>>
>>> Dan,
>>>
>>> That is what I tried first, at your original recommendation. The
>>> problem
>>> is that the jaxws:server element according to the schema doesn't have
>>> either "implementor" or "bindingUri" attributes. It instead has an
>>> "implementor" element, and a "binding" element, which I tried using, in
>>> the markup I sent you, but had no luck, and got the exception. The
>>> schema isn't any clue as to what I'm supposed to have there.
>>>
>>> Brad
>>>
>>> Dan Diephouse wrote:
>>> > What you want is this:
>>> >
>>> > <jaxws:server id="userService"
>>> > serviceClass="com.brad.user.IUserService"
>>> > address="/UserService"
>>> > bindingUri="http://apache.org/cxf/binding/http"
>>> > implementor="com.brad.UserService">
>>> > <jaxws:serviceFactory>
>>> > <ref bean="JaxWsServiceFactoryBean" />
>>> > </jaxws:serviceFactory>
>>> > </jaxws:server>
>>> >
>>> > Regards,
>>> >
>>> > - Dan
>>> >
>>> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>> >>
>>> >> Dan,
>>> >>
>>> >> Thanks so much for tracking this down. Unfortunately, I'm still
>>> having
>>> >> some problems, because in the jaxws:server element markup you
>>> suggested,
>>> >> neither the implementor or bindingUri attributes are legal. I popped
>>> >> open the jaxws.xsd schema, to try to see if I could resolve it, and
>>> here
>>> >> is what I put together:
>>> >>
>>> >> <jaxws:server id="userService"
>>> >> serviceClass="com.brad.user.IUserService"
>>> >> address="/UserService">
>>> >>
>>> >> <jaxws:binding>http://apache.org/cxf/binding/http</jaxws:binding>
>>> >> <jaxws:implementor>com.brad.UserService</jaxws:implementor>
>>> >> <jaxws:serviceFactory>
>>> >> <ref bean="JaxWsServiceFactoryBean" />
>>> >> </jaxws:serviceFactory>
>>> >> </jaxws:server>
>>> >>
>>> >>
>>> >> but unfortunately, that doesn't work either. I'm failing on the
>>> binding
>>> >> it appears. I figured it probably wanted a class name rather than a
>>> uri,
>>> >> but the error output I got suggests that there's probably more info
>>> >> needed to create the binding. The schema wasn't any clue on what
>>> to put
>>> >> for this element. Here is the output below:
>>> >>
>>> >> ERROR [main] (ContextLoader.java:203) - Context initialization
>>> failed
>>> >> org.springframework.beans.factory.BeanDefinitionStoreException:
>>> >> Unexpected exception parsing XML document from ServletContext
>>> resource
>>> >> [/WEB-INF/beans.xml]; nested exception is
>>> >> java.lang.IllegalStateException: bindingConfig property must have
>>> child
>>> >> elements!
>>> >> Caused by:
>>> >> java.lang.IllegalStateException: bindingConfig property must have
>>> child
>>> >> elements!
>>> >>
>>> >> Brad
>>> >>
>>> >> Dan Diephouse wrote:
>>> >> > OK, I wrote a test case and I see whats happening now.
>>> Unfortunately
>>> >> when
>>> >> > using EndpointImpl (which <jaxws:endpoint> does), somehow the HTTP
>>> >> > Binding
>>> >> > seems to be looking for the annotations on the impl class instead
>>> >> of the
>>> >> > interface class :-\.
>>> >> >
>>> >> > Try this instead:
>>> >> >
>>> >> >
>>> >> > <jaxws:server id="userService"
>>> >> > serviceClass="com.brad.user.IUserService"
>>> >> > implementor="com.brad.user.UserService"
>>> >> > address="/UserService"
>>> >> > bindingUri="http://apache.org/cxf/binding/http">
>>> >> > <jaxws:serviceFactory>
>>> >> > <ref bean="JaxWsServiceFactoryBean" />
>>> >> > </jaxws:serviceFactory>
>>> >> > </jaxws:server>
>>> >> >
>>> >> > Notice that its jaxws:server, not jaxws:endpoint. (This creates
>>> a CXF
>>> >> > Server
>>> >> > object instead of a JAX-WS Endpoint object and allows more
>>> control of
>>> >> how
>>> >> > CXF creates the service). This will tell CXF to look at the
>>> >> > IUserService for
>>> >> > annotations.
>>> >> >
>>> >> > I'll fix this bug in SVN later today, but in the meantime that
>>> should
>>> >> > work.
>>> >> >
>>> >> > Cheers,
>>> >> > - Dan
>>> >> >
>>> >> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>> >> >>
>>> >> >> Dan,
>>> >> >>
>>> >> >> I just tried the endpointInterface attribute now on my
>>> implementation
>>> >> >> class, while leaving just the @WebService and method annotations
>>> >> on my
>>> >> >> interface class, as follows:
>>> >> >>
>>> >> >> @WebService (endpointInterface = "com.brad.user.IUserService")
>>> >> >> public class UserService implements IUserService {...
>>> >> >>
>>> >> >> @WebService
>>> >> >> public interface IUserService {
>>> >> >>
>>> >> >> As stated, I left the annotations on my one method in
>>> IUserService.
>>> I
>>> >> >> annotated no methods in UserService. The full output / error I
>>> get
>>> is
>>> >> >> below. The interesting thing is that these methods that the log
>>> shows
>>> >> >> are being set up exist only in the implementation class, and
>>> are not
>>> >> >> annotated. They do not exist in the interface class. The one
>>> method
>>> >> that
>>> >> >> is annotated in my interface class, getUsers(), is never
>>> mentioned.
>>> >> >>
>>> >> >> INFO: Creating Service
>>> {http://user.brad.com/}UserServiceServicefrom
>>> >> >> class com.brad.user.UserService
>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>> >> instance
>>> >> >> of singleton bean '
>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>> >> instance
>>> >> >> of singleton bean '
>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>> >> instance
>>> >> >> of singleton bean '
>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>> >> instance
>>> >> >> of singleton bean '
>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>> >> instance
>>> >> >> of singleton bean '
>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>>> >> instance
>>> >> >> of singleton bean '
>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>>> >> >> Jul 14, 2007 10:01:59 AM
>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>> >> >> INFO: Mapping method createUser to resource /eUsers and verb POST
>>> >> >> Jul 14, 2007 10:01:59 AM
>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>> >> >> INFO: Mapping method modifyUser to resource /modifyUser and verb
>>> POST
>>> >> >> Jul 14, 2007 10:01:59 AM
>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>> >> >> INFO: Mapping method authenticate to resource /authenticate
>>> and verb
>>> >> >> POST
>>> >> >> Jul 14, 2007 10:01:59 AM
>>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>>> >> >> INFO: Mapping method deleteUser to resource /users and verb
>>> DELETE
>>> >> >> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
>>> >> >> singletons in
>>> >> >>
>>> >> >>
>>> >>
>>> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979
>>>
>>> >>
>>> >> >>
>>> >> >> :
>>> >> >> defining beans
>>> >> >> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,
>>> >> >> org.apache.cxf.bus.spring.BusExtensionPostProcessor,
>>> >> >> org.apache.cxf.resource.ResourceManager,
>>> >> >> org.apache.cxf.binding.BindingFactoryManager,
>>> >> >> org.apache.cxf.transport.DestinationFactoryManager,
>>> >> >> org.apache.cxf.transport.ConduitInitiatorManager,
>>> >> >>
>>> org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,
>>> >> >> org.apache.cxf.workqueue.WorkQueueManager,
>>> >> >> org.apache.cxf.buslifecycle.BusLifeCycleManager,
>>> >> >> org.apache.cxf.endpoint.ServerRegistry,
>>> >> >> org.apache.cxf.endpoint.ServerLifeCycleManager,
>>> >> >> org.apache.cxf.endpoint.ClientLifeCycleManager,
>>> >> >> org.apache.cxf.transports.http.QueryHandlerRegistry,
>>> >> >> org.apache.cxf.endpoint.EndpointResolverRegistry,
>>> >> >> org.apache.cxf.headers.HeaderManager,
>>> >> >> org.apache.cxf.catalog.OASISCatalogManager,
>>> >> >> org.apache.cxf.binding.http.HttpBindingFactory,
>>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory
>>> >> >> ,JaxWsServiceFactoryBean,userService];
>>> >> >> root of factory hierarchy
>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>> >> >> dependent beans for bean 'JaxWsServiceFactoryBean': [userService]
>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>> >> >> dependent beans for bean
>>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
>>> >> >> [org.apache.cxf.transport.ConduitInitiatorManager]
>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>> >> >> dependent beans for bean
>>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
>>> >> >> [org.apache.cxf.transport.DestinationFactoryManager]
>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>> >> >> dependent beans for bean
>>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
>>> >> >> [org.apache.cxf.binding.BindingFactoryManager]
>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>> >> >> dependent beans for bean
>>> >> >> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
>>> >> >> [org.apache.cxf.resource.ResourceManager]
>>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>>> >> >> dependent beans for bean
>>> >> >> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
>>> >> >> [org.apache.cxf.resource.ResourceManager]
>>> >> >> 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)
>>> >> >> Jul 14, 2007 10:01:59 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': 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)
>>> >> >> Jul 14, 2007 10:01:59 AM org.apache.catalina.core.StandardContext
>>> >> start
>>> >> >> SEVERE: Error listenerStart
>>> >> >> Jul 14, 2007 10:01:59 AM org.a
>>> >> >>
>>> >> >>
>>> >> >> Brad O'Hearne wrote:
>>> >> >> > Dan,
>>> >> >> >
>>> >> >> > I just tried the endpointInterface attribute on my interface
>>> class,
>>> >> as
>>> >> >> > follows:
>>> >> >> >
>>> >> >> > @WebService (endpointInterface = "com.brad.user.IUserService")
>>> >> >> > public interface IUserService {
>>> >> >> >
>>> >> >> > and here is the error I receive:
>>> >> >> >
>>> >> >> > 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 javax.xml.ws.WebServiceException:
>>> >> >> > Attributes portName, serviceName and endpointInterface are not
>>> >> allowed
>>> >> >> > in the @WebService annotation of an SEI.
>>> >> >> > Caused by:
>>> >> >> > javax.xml.ws.WebServiceException: Attributes portName,
>>> serviceName
>>> >> and
>>> >> >> > endpointInterface are not allowed in the @WebService annotation
>>> >> of an
>>> >> >> > SEI.
>>> >> >> > at
>>> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(
>>> >> >> JaxWsImplementorInfo.java:279)
>>> >> >> >
>>> >> >> > at
>>> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(
>>> >> >> JaxWsImplementorInfo.java:57)
>>> >> >> >
>>> >> >> >
>>> >> >> > I think this probably goes back to the design pattern mentioned
>>> >> in my
>>> >> >> > previous post (annotations on the interface, none of the
>>> >> >> > implementation class). I'm guessing we are on the cusp of
>>> having
>>> >> this
>>> >> >> > solved.
>>> >> >> >
>>> >> >> > Thanks,
>>> >> >> >
>>> >> >> > Brad
>>> >> >> >
>>> >> >> > Brad O'Hearne wrote:
>>> >> >> >> Dan,
>>> >> >> >>
>>> >> >> >> I think you may have hit on the mystery here. I do not have an
>>> >> >> >> endpoint interface defined on my @WebService. But the rest of
>>> your
>>> >> >> >> answer below suggests that I may have done something else
>>> wrong
>>> in
>>> >> >> >> general. My annotations occur entirely in my interface, i.e.
>>> >> >> >>
>>> >> >> >> @WebService
>>> >> >> >> public interface IUserService ...
>>> >> >> >>
>>> >> >> >> and my implementing class has no annotations whatsoever, i.e.:
>>> >> >> >>
>>> >> >> >> public class UserService extends IUserService ...
>>> >> >> >>
>>> >> >> >> and from the past posts I have, you'll see that my
>>> beans.xml file
>>> >> >> >> references the implementation class, i.e.
>>> >> >> >>
>>> >> >> >> <jaxws:endpoint id="userService"
>>> >> >> >> serviceClass="com.brad.user.IUserService"
>>> >> >> >> implementor="com.brad.user.UserService"
>>> >> >> >> address="/UserService"
>>> >> >> >> bindingUri="http://apache.org/cxf/binding/http"
>>> >> >> >> >
>>> >> >> >> <jaxws:serviceFactory>
>>> >> >> >> <ref bean="JaxWsServiceFactoryBean" />
>>> >> >> >> </jaxws:serviceFactory>
>>> >> >> >> </jaxws:endpoint>
>>> >> >> >>
>>> >> >> >> This was the pattern used in XFire which worked, and the
>>> >> pattern set
>>> >> >> >> forth in the CXF user's guide, as in:
>>> >> >> >> http://cwiki.apache.org/CXF20DOC/http-binding.html
>>> >> >> >>
>>> >> >> >> But perhaps I've read it wrong. So I'll ask...
>>> >> >> >>
>>> >> >> >> 1. Should my annotations be on my implementation class or my
>>> >> >> >> interface class?
>>> >> >> >> 2. Depending on the answer to 1), if annotations are put in
>>> the
>>> >> >> >> interface, the endpointInterface attribute would logically
>>> >> always be
>>> >> >> >> the same name as that interface. Is this accurate?
>>> >> >> >> 3. Should the implementor attribute in the beans.xml
>>> >> jaxws:endpoint
>>> >> >> >> element reference the interface, or the imlementation?
>>> >> >> >>
>>> >> >> >> Thanks a ton for helping out Dan, it is sincerely appreciated.
>>> >> I'll
>>> >> >> >> throw that endpointInterface attribute on my @WebService
>>> >> annotation
>>> >> >> >> right now (which presently sits in my interface) and see what
>>> >> >> happens.
>>> >> >> >>
>>> >> >> >> Brad
>>> >> >> >>
>>> >> >> >> Dan Diephouse wrote:
>>> >> >> >>> 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 <br...@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 <br...@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 <br...@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)
>>> >> >> >>>> >>
>>> >> >> >>>> >>
>>> >> >> >>>> >>
>>> >> >> >>>> >>
>>> >> >> >>>> >
>>> >> >> >>>> >
>>> >> >> >>>>
>>> >> >> >>>>
>>> >> >> >>>
>>> >> >> >>>
>>> >> >> >>
>>> >> >> >
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >
>>> >> >
>>> >>
>>> >>
>>> >
>>> >
>>>
>>>
>>
>>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan,
Thanks so much for your help. There was one minor change -- there is no
"implementor" property that can be set. You have to set the
"serviceBean" class instead. All appears to load cleanly. Now off to
test if I can actually hit the service from the outside. I'll let you
know how that goes. Feel free to ping me when the endpoint config bug
you mentioned is fixed, and when I should revert to the jaxws:endpoint
specification again in my beans.xml configuration.
Thanks a ton for your help. Hopefully, all is well, and I'll be able to
be a daily consumer of this API via its usage in this project, and can
maybe pitch in here down the road.
Cheers,
Brad
Dan Diephouse wrote:
> Oops, my bad. Well it seems our schema is missing the approrpriate
> bindingUri/bindingId element. Argh... Alrighty, we'll have to fall
> back to
> the old spring syntax:
>
> <bean class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
> init-method="create">
> <property name="serviceClass"
> value="com.brad.user.IUserService<http://apache.org/cxf/binding/http>
> "/>
> <property name="implementor">
> <bean class="com.brad.UserService"/>
> </property>
> <property name="serviceClass" value="com.brad.user.IUserService"/>
> <property name="address" value="/UserService"/>
> <property name="bindingId" value="http://apache.org/cxf/binding/http"/>
> <property name="serviceFactory" ref="JaxWsServiceFactoryBean"/>
> </bean>
>
> I've made the schema fix in SVN and am working on fixing the other bug
> you
> ran into now...
> - Dan
>
> On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>
>> Dan,
>>
>> That is what I tried first, at your original recommendation. The problem
>> is that the jaxws:server element according to the schema doesn't have
>> either "implementor" or "bindingUri" attributes. It instead has an
>> "implementor" element, and a "binding" element, which I tried using, in
>> the markup I sent you, but had no luck, and got the exception. The
>> schema isn't any clue as to what I'm supposed to have there.
>>
>> Brad
>>
>> Dan Diephouse wrote:
>> > What you want is this:
>> >
>> > <jaxws:server id="userService"
>> > serviceClass="com.brad.user.IUserService"
>> > address="/UserService"
>> > bindingUri="http://apache.org/cxf/binding/http"
>> > implementor="com.brad.UserService">
>> > <jaxws:serviceFactory>
>> > <ref bean="JaxWsServiceFactoryBean" />
>> > </jaxws:serviceFactory>
>> > </jaxws:server>
>> >
>> > Regards,
>> >
>> > - Dan
>> >
>> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>> >>
>> >> Dan,
>> >>
>> >> Thanks so much for tracking this down. Unfortunately, I'm still
>> having
>> >> some problems, because in the jaxws:server element markup you
>> suggested,
>> >> neither the implementor or bindingUri attributes are legal. I popped
>> >> open the jaxws.xsd schema, to try to see if I could resolve it, and
>> here
>> >> is what I put together:
>> >>
>> >> <jaxws:server id="userService"
>> >> serviceClass="com.brad.user.IUserService"
>> >> address="/UserService">
>> >>
>> >> <jaxws:binding>http://apache.org/cxf/binding/http</jaxws:binding>
>> >> <jaxws:implementor>com.brad.UserService</jaxws:implementor>
>> >> <jaxws:serviceFactory>
>> >> <ref bean="JaxWsServiceFactoryBean" />
>> >> </jaxws:serviceFactory>
>> >> </jaxws:server>
>> >>
>> >>
>> >> but unfortunately, that doesn't work either. I'm failing on the
>> binding
>> >> it appears. I figured it probably wanted a class name rather than a
>> uri,
>> >> but the error output I got suggests that there's probably more info
>> >> needed to create the binding. The schema wasn't any clue on what
>> to put
>> >> for this element. Here is the output below:
>> >>
>> >> ERROR [main] (ContextLoader.java:203) - Context initialization failed
>> >> org.springframework.beans.factory.BeanDefinitionStoreException:
>> >> Unexpected exception parsing XML document from ServletContext
>> resource
>> >> [/WEB-INF/beans.xml]; nested exception is
>> >> java.lang.IllegalStateException: bindingConfig property must have
>> child
>> >> elements!
>> >> Caused by:
>> >> java.lang.IllegalStateException: bindingConfig property must have
>> child
>> >> elements!
>> >>
>> >> Brad
>> >>
>> >> Dan Diephouse wrote:
>> >> > OK, I wrote a test case and I see whats happening now.
>> Unfortunately
>> >> when
>> >> > using EndpointImpl (which <jaxws:endpoint> does), somehow the HTTP
>> >> > Binding
>> >> > seems to be looking for the annotations on the impl class instead
>> >> of the
>> >> > interface class :-\.
>> >> >
>> >> > Try this instead:
>> >> >
>> >> >
>> >> > <jaxws:server id="userService"
>> >> > serviceClass="com.brad.user.IUserService"
>> >> > implementor="com.brad.user.UserService"
>> >> > address="/UserService"
>> >> > bindingUri="http://apache.org/cxf/binding/http">
>> >> > <jaxws:serviceFactory>
>> >> > <ref bean="JaxWsServiceFactoryBean" />
>> >> > </jaxws:serviceFactory>
>> >> > </jaxws:server>
>> >> >
>> >> > Notice that its jaxws:server, not jaxws:endpoint. (This creates
>> a CXF
>> >> > Server
>> >> > object instead of a JAX-WS Endpoint object and allows more
>> control of
>> >> how
>> >> > CXF creates the service). This will tell CXF to look at the
>> >> > IUserService for
>> >> > annotations.
>> >> >
>> >> > I'll fix this bug in SVN later today, but in the meantime that
>> should
>> >> > work.
>> >> >
>> >> > Cheers,
>> >> > - Dan
>> >> >
>> >> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>> >> >>
>> >> >> Dan,
>> >> >>
>> >> >> I just tried the endpointInterface attribute now on my
>> implementation
>> >> >> class, while leaving just the @WebService and method annotations
>> >> on my
>> >> >> interface class, as follows:
>> >> >>
>> >> >> @WebService (endpointInterface = "com.brad.user.IUserService")
>> >> >> public class UserService implements IUserService {...
>> >> >>
>> >> >> @WebService
>> >> >> public interface IUserService {
>> >> >>
>> >> >> As stated, I left the annotations on my one method in
>> IUserService.
>> I
>> >> >> annotated no methods in UserService. The full output / error I get
>> is
>> >> >> below. The interesting thing is that these methods that the log
>> shows
>> >> >> are being set up exist only in the implementation class, and
>> are not
>> >> >> annotated. They do not exist in the interface class. The one
>> method
>> >> that
>> >> >> is annotated in my interface class, getUsers(), is never
>> mentioned.
>> >> >>
>> >> >> INFO: Creating Service
>> {http://user.brad.com/}UserServiceServicefrom
>> >> >> class com.brad.user.UserService
>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> >> instance
>> >> >> of singleton bean '
>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> >> instance
>> >> >> of singleton bean '
>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> >> instance
>> >> >> of singleton bean '
>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> >> instance
>> >> >> of singleton bean '
>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> >> instance
>> >> >> of singleton bean '
>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> >> instance
>> >> >> of singleton bean '
>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> >> Jul 14, 2007 10:01:59 AM
>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> >> >> INFO: Mapping method createUser to resource /eUsers and verb POST
>> >> >> Jul 14, 2007 10:01:59 AM
>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> >> >> INFO: Mapping method modifyUser to resource /modifyUser and verb
>> POST
>> >> >> Jul 14, 2007 10:01:59 AM
>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> >> >> INFO: Mapping method authenticate to resource /authenticate and
>> verb
>> >> >> POST
>> >> >> Jul 14, 2007 10:01:59 AM
>> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> >> >> INFO: Mapping method deleteUser to resource /users and verb DELETE
>> >> >> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
>> >> >> singletons in
>> >> >>
>> >> >>
>> >>
>> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979
>>
>> >>
>> >> >>
>> >> >> :
>> >> >> defining beans
>> >> >> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,
>> >> >> org.apache.cxf.bus.spring.BusExtensionPostProcessor,
>> >> >> org.apache.cxf.resource.ResourceManager,
>> >> >> org.apache.cxf.binding.BindingFactoryManager,
>> >> >> org.apache.cxf.transport.DestinationFactoryManager,
>> >> >> org.apache.cxf.transport.ConduitInitiatorManager,
>> >> >> org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,
>> >> >> org.apache.cxf.workqueue.WorkQueueManager,
>> >> >> org.apache.cxf.buslifecycle.BusLifeCycleManager,
>> >> >> org.apache.cxf.endpoint.ServerRegistry,
>> >> >> org.apache.cxf.endpoint.ServerLifeCycleManager,
>> >> >> org.apache.cxf.endpoint.ClientLifeCycleManager,
>> >> >> org.apache.cxf.transports.http.QueryHandlerRegistry,
>> >> >> org.apache.cxf.endpoint.EndpointResolverRegistry,
>> >> >> org.apache.cxf.headers.HeaderManager,
>> >> >> org.apache.cxf.catalog.OASISCatalogManager,
>> >> >> org.apache.cxf.binding.http.HttpBindingFactory,
>> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory
>> >> >> ,JaxWsServiceFactoryBean,userService];
>> >> >> root of factory hierarchy
>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> >> dependent beans for bean 'JaxWsServiceFactoryBean': [userService]
>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> >> dependent beans for bean
>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
>> >> >> [org.apache.cxf.transport.ConduitInitiatorManager]
>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> >> dependent beans for bean
>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
>> >> >> [org.apache.cxf.transport.DestinationFactoryManager]
>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> >> dependent beans for bean
>> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
>> >> >> [org.apache.cxf.binding.BindingFactoryManager]
>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> >> dependent beans for bean
>> >> >> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
>> >> >> [org.apache.cxf.resource.ResourceManager]
>> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> >> dependent beans for bean
>> >> >> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
>> >> >> [org.apache.cxf.resource.ResourceManager]
>> >> >> 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)
>> >> >> Jul 14, 2007 10:01:59 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': 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)
>> >> >> Jul 14, 2007 10:01:59 AM org.apache.catalina.core.StandardContext
>> >> start
>> >> >> SEVERE: Error listenerStart
>> >> >> Jul 14, 2007 10:01:59 AM org.a
>> >> >>
>> >> >>
>> >> >> Brad O'Hearne wrote:
>> >> >> > Dan,
>> >> >> >
>> >> >> > I just tried the endpointInterface attribute on my interface
>> class,
>> >> as
>> >> >> > follows:
>> >> >> >
>> >> >> > @WebService (endpointInterface = "com.brad.user.IUserService")
>> >> >> > public interface IUserService {
>> >> >> >
>> >> >> > and here is the error I receive:
>> >> >> >
>> >> >> > 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 javax.xml.ws.WebServiceException:
>> >> >> > Attributes portName, serviceName and endpointInterface are not
>> >> allowed
>> >> >> > in the @WebService annotation of an SEI.
>> >> >> > Caused by:
>> >> >> > javax.xml.ws.WebServiceException: Attributes portName,
>> serviceName
>> >> and
>> >> >> > endpointInterface are not allowed in the @WebService annotation
>> >> of an
>> >> >> > SEI.
>> >> >> > at
>> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(
>> >> >> JaxWsImplementorInfo.java:279)
>> >> >> >
>> >> >> > at
>> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(
>> >> >> JaxWsImplementorInfo.java:57)
>> >> >> >
>> >> >> >
>> >> >> > I think this probably goes back to the design pattern mentioned
>> >> in my
>> >> >> > previous post (annotations on the interface, none of the
>> >> >> > implementation class). I'm guessing we are on the cusp of having
>> >> this
>> >> >> > solved.
>> >> >> >
>> >> >> > Thanks,
>> >> >> >
>> >> >> > Brad
>> >> >> >
>> >> >> > Brad O'Hearne wrote:
>> >> >> >> Dan,
>> >> >> >>
>> >> >> >> I think you may have hit on the mystery here. I do not have an
>> >> >> >> endpoint interface defined on my @WebService. But the rest of
>> your
>> >> >> >> answer below suggests that I may have done something else wrong
>> in
>> >> >> >> general. My annotations occur entirely in my interface, i.e.
>> >> >> >>
>> >> >> >> @WebService
>> >> >> >> public interface IUserService ...
>> >> >> >>
>> >> >> >> and my implementing class has no annotations whatsoever, i.e.:
>> >> >> >>
>> >> >> >> public class UserService extends IUserService ...
>> >> >> >>
>> >> >> >> and from the past posts I have, you'll see that my beans.xml
>> file
>> >> >> >> references the implementation class, i.e.
>> >> >> >>
>> >> >> >> <jaxws:endpoint id="userService"
>> >> >> >> serviceClass="com.brad.user.IUserService"
>> >> >> >> implementor="com.brad.user.UserService"
>> >> >> >> address="/UserService"
>> >> >> >> bindingUri="http://apache.org/cxf/binding/http"
>> >> >> >> >
>> >> >> >> <jaxws:serviceFactory>
>> >> >> >> <ref bean="JaxWsServiceFactoryBean" />
>> >> >> >> </jaxws:serviceFactory>
>> >> >> >> </jaxws:endpoint>
>> >> >> >>
>> >> >> >> This was the pattern used in XFire which worked, and the
>> >> pattern set
>> >> >> >> forth in the CXF user's guide, as in:
>> >> >> >> http://cwiki.apache.org/CXF20DOC/http-binding.html
>> >> >> >>
>> >> >> >> But perhaps I've read it wrong. So I'll ask...
>> >> >> >>
>> >> >> >> 1. Should my annotations be on my implementation class or my
>> >> >> >> interface class?
>> >> >> >> 2. Depending on the answer to 1), if annotations are put in the
>> >> >> >> interface, the endpointInterface attribute would logically
>> >> always be
>> >> >> >> the same name as that interface. Is this accurate?
>> >> >> >> 3. Should the implementor attribute in the beans.xml
>> >> jaxws:endpoint
>> >> >> >> element reference the interface, or the imlementation?
>> >> >> >>
>> >> >> >> Thanks a ton for helping out Dan, it is sincerely appreciated.
>> >> I'll
>> >> >> >> throw that endpointInterface attribute on my @WebService
>> >> annotation
>> >> >> >> right now (which presently sits in my interface) and see what
>> >> >> happens.
>> >> >> >>
>> >> >> >> Brad
>> >> >> >>
>> >> >> >> Dan Diephouse wrote:
>> >> >> >>> 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 <br...@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 <br...@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 <br...@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)
>> >> >> >>>> >>
>> >> >> >>>> >>
>> >> >> >>>> >>
>> >> >> >>>> >>
>> >> >> >>>> >
>> >> >> >>>> >
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>
>> >> >> >>>
>> >> >> >>
>> >> >> >
>> >> >>
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Dan Diephouse <da...@envoisolutions.com>.
Oops, my bad. Well it seems our schema is missing the approrpriate
bindingUri/bindingId element. Argh... Alrighty, we'll have to fall back to
the old spring syntax:
<bean class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
init-method="create">
<property name="serviceClass"
value="com.brad.user.IUserService<http://apache.org/cxf/binding/http>
"/>
<property name="implementor">
<bean class="com.brad.UserService"/>
</property>
<property name="serviceClass" value="com.brad.user.IUserService"/>
<property name="address" value="/UserService"/>
<property name="bindingId" value="http://apache.org/cxf/binding/http"/>
<property name="serviceFactory" ref="JaxWsServiceFactoryBean"/>
</bean>
I've made the schema fix in SVN and am working on fixing the other bug you
ran into now...
- Dan
On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>
> Dan,
>
> That is what I tried first, at your original recommendation. The problem
> is that the jaxws:server element according to the schema doesn't have
> either "implementor" or "bindingUri" attributes. It instead has an
> "implementor" element, and a "binding" element, which I tried using, in
> the markup I sent you, but had no luck, and got the exception. The
> schema isn't any clue as to what I'm supposed to have there.
>
> Brad
>
> Dan Diephouse wrote:
> > What you want is this:
> >
> > <jaxws:server id="userService"
> > serviceClass="com.brad.user.IUserService"
> > address="/UserService"
> > bindingUri="http://apache.org/cxf/binding/http"
> > implementor="com.brad.UserService">
> > <jaxws:serviceFactory>
> > <ref bean="JaxWsServiceFactoryBean" />
> > </jaxws:serviceFactory>
> > </jaxws:server>
> >
> > Regards,
> >
> > - Dan
> >
> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
> >>
> >> Dan,
> >>
> >> Thanks so much for tracking this down. Unfortunately, I'm still having
> >> some problems, because in the jaxws:server element markup you
> suggested,
> >> neither the implementor or bindingUri attributes are legal. I popped
> >> open the jaxws.xsd schema, to try to see if I could resolve it, and
> here
> >> is what I put together:
> >>
> >> <jaxws:server id="userService"
> >> serviceClass="com.brad.user.IUserService"
> >> address="/UserService">
> >>
> >> <jaxws:binding>http://apache.org/cxf/binding/http</jaxws:binding>
> >> <jaxws:implementor>com.brad.UserService</jaxws:implementor>
> >> <jaxws:serviceFactory>
> >> <ref bean="JaxWsServiceFactoryBean" />
> >> </jaxws:serviceFactory>
> >> </jaxws:server>
> >>
> >>
> >> but unfortunately, that doesn't work either. I'm failing on the binding
> >> it appears. I figured it probably wanted a class name rather than a
> uri,
> >> but the error output I got suggests that there's probably more info
> >> needed to create the binding. The schema wasn't any clue on what to put
> >> for this element. Here is the output below:
> >>
> >> ERROR [main] (ContextLoader.java:203) - Context initialization failed
> >> org.springframework.beans.factory.BeanDefinitionStoreException:
> >> Unexpected exception parsing XML document from ServletContext resource
> >> [/WEB-INF/beans.xml]; nested exception is
> >> java.lang.IllegalStateException: bindingConfig property must have child
> >> elements!
> >> Caused by:
> >> java.lang.IllegalStateException: bindingConfig property must have child
> >> elements!
> >>
> >> Brad
> >>
> >> Dan Diephouse wrote:
> >> > OK, I wrote a test case and I see whats happening now. Unfortunately
> >> when
> >> > using EndpointImpl (which <jaxws:endpoint> does), somehow the HTTP
> >> > Binding
> >> > seems to be looking for the annotations on the impl class instead
> >> of the
> >> > interface class :-\.
> >> >
> >> > Try this instead:
> >> >
> >> >
> >> > <jaxws:server id="userService"
> >> > serviceClass="com.brad.user.IUserService"
> >> > implementor="com.brad.user.UserService"
> >> > address="/UserService"
> >> > bindingUri="http://apache.org/cxf/binding/http">
> >> > <jaxws:serviceFactory>
> >> > <ref bean="JaxWsServiceFactoryBean" />
> >> > </jaxws:serviceFactory>
> >> > </jaxws:server>
> >> >
> >> > Notice that its jaxws:server, not jaxws:endpoint. (This creates a CXF
> >> > Server
> >> > object instead of a JAX-WS Endpoint object and allows more control of
> >> how
> >> > CXF creates the service). This will tell CXF to look at the
> >> > IUserService for
> >> > annotations.
> >> >
> >> > I'll fix this bug in SVN later today, but in the meantime that should
> >> > work.
> >> >
> >> > Cheers,
> >> > - Dan
> >> >
> >> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
> >> >>
> >> >> Dan,
> >> >>
> >> >> I just tried the endpointInterface attribute now on my
> implementation
> >> >> class, while leaving just the @WebService and method annotations
> >> on my
> >> >> interface class, as follows:
> >> >>
> >> >> @WebService (endpointInterface = "com.brad.user.IUserService")
> >> >> public class UserService implements IUserService {...
> >> >>
> >> >> @WebService
> >> >> public interface IUserService {
> >> >>
> >> >> As stated, I left the annotations on my one method in IUserService.
> I
> >> >> annotated no methods in UserService. The full output / error I get
> is
> >> >> below. The interesting thing is that these methods that the log
> shows
> >> >> are being set up exist only in the implementation class, and are not
> >> >> annotated. They do not exist in the interface class. The one method
> >> that
> >> >> is annotated in my interface class, getUsers(), is never mentioned.
> >> >>
> >> >> INFO: Creating Service {http://user.brad.com/}UserServiceServicefrom
> >> >> class com.brad.user.UserService
> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> >> instance
> >> >> of singleton bean '
> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> >> instance
> >> >> of singleton bean '
> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> >> instance
> >> >> of singleton bean '
> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> >> instance
> >> >> of singleton bean '
> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> >> instance
> >> >> of singleton bean '
> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> >> instance
> >> >> of singleton bean '
> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> >> Jul 14, 2007 10:01:59 AM
> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> >> >> INFO: Mapping method createUser to resource /eUsers and verb POST
> >> >> Jul 14, 2007 10:01:59 AM
> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> >> >> INFO: Mapping method modifyUser to resource /modifyUser and verb
> POST
> >> >> Jul 14, 2007 10:01:59 AM
> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> >> >> INFO: Mapping method authenticate to resource /authenticate and verb
> >> >> POST
> >> >> Jul 14, 2007 10:01:59 AM
> >> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> >> >> INFO: Mapping method deleteUser to resource /users and verb DELETE
> >> >> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
> >> >> singletons in
> >> >>
> >> >>
> >>
> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979
> >>
> >> >>
> >> >> :
> >> >> defining beans
> >> >> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,
> >> >> org.apache.cxf.bus.spring.BusExtensionPostProcessor,
> >> >> org.apache.cxf.resource.ResourceManager,
> >> >> org.apache.cxf.binding.BindingFactoryManager,
> >> >> org.apache.cxf.transport.DestinationFactoryManager,
> >> >> org.apache.cxf.transport.ConduitInitiatorManager,
> >> >> org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,
> >> >> org.apache.cxf.workqueue.WorkQueueManager,
> >> >> org.apache.cxf.buslifecycle.BusLifeCycleManager,
> >> >> org.apache.cxf.endpoint.ServerRegistry,
> >> >> org.apache.cxf.endpoint.ServerLifeCycleManager,
> >> >> org.apache.cxf.endpoint.ClientLifeCycleManager,
> >> >> org.apache.cxf.transports.http.QueryHandlerRegistry,
> >> >> org.apache.cxf.endpoint.EndpointResolverRegistry,
> >> >> org.apache.cxf.headers.HeaderManager,
> >> >> org.apache.cxf.catalog.OASISCatalogManager,
> >> >> org.apache.cxf.binding.http.HttpBindingFactory,
> >> >> org.apache.cxf.transport.servlet.ServletTransportFactory
> >> >> ,JaxWsServiceFactoryBean,userService];
> >> >> root of factory hierarchy
> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> >> dependent beans for bean 'JaxWsServiceFactoryBean': [userService]
> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> >> dependent beans for bean
> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
> >> >> [org.apache.cxf.transport.ConduitInitiatorManager]
> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> >> dependent beans for bean
> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
> >> >> [org.apache.cxf.transport.DestinationFactoryManager]
> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> >> dependent beans for bean
> >> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
> >> >> [org.apache.cxf.binding.BindingFactoryManager]
> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> >> dependent beans for bean
> >> >> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
> >> >> [org.apache.cxf.resource.ResourceManager]
> >> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> >> dependent beans for bean
> >> >> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
> >> >> [org.apache.cxf.resource.ResourceManager]
> >> >> 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)
> >> >> Jul 14, 2007 10:01:59 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': 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)
> >> >> Jul 14, 2007 10:01:59 AM org.apache.catalina.core.StandardContext
> >> start
> >> >> SEVERE: Error listenerStart
> >> >> Jul 14, 2007 10:01:59 AM org.a
> >> >>
> >> >>
> >> >> Brad O'Hearne wrote:
> >> >> > Dan,
> >> >> >
> >> >> > I just tried the endpointInterface attribute on my interface
> class,
> >> as
> >> >> > follows:
> >> >> >
> >> >> > @WebService (endpointInterface = "com.brad.user.IUserService")
> >> >> > public interface IUserService {
> >> >> >
> >> >> > and here is the error I receive:
> >> >> >
> >> >> > 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 javax.xml.ws.WebServiceException:
> >> >> > Attributes portName, serviceName and endpointInterface are not
> >> allowed
> >> >> > in the @WebService annotation of an SEI.
> >> >> > Caused by:
> >> >> > javax.xml.ws.WebServiceException: Attributes portName, serviceName
> >> and
> >> >> > endpointInterface are not allowed in the @WebService annotation
> >> of an
> >> >> > SEI.
> >> >> > at
> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(
> >> >> JaxWsImplementorInfo.java:279)
> >> >> >
> >> >> > at
> >> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(
> >> >> JaxWsImplementorInfo.java:57)
> >> >> >
> >> >> >
> >> >> > I think this probably goes back to the design pattern mentioned
> >> in my
> >> >> > previous post (annotations on the interface, none of the
> >> >> > implementation class). I'm guessing we are on the cusp of having
> >> this
> >> >> > solved.
> >> >> >
> >> >> > Thanks,
> >> >> >
> >> >> > Brad
> >> >> >
> >> >> > Brad O'Hearne wrote:
> >> >> >> Dan,
> >> >> >>
> >> >> >> I think you may have hit on the mystery here. I do not have an
> >> >> >> endpoint interface defined on my @WebService. But the rest of
> your
> >> >> >> answer below suggests that I may have done something else wrong
> in
> >> >> >> general. My annotations occur entirely in my interface, i.e.
> >> >> >>
> >> >> >> @WebService
> >> >> >> public interface IUserService ...
> >> >> >>
> >> >> >> and my implementing class has no annotations whatsoever, i.e.:
> >> >> >>
> >> >> >> public class UserService extends IUserService ...
> >> >> >>
> >> >> >> and from the past posts I have, you'll see that my beans.xml file
> >> >> >> references the implementation class, i.e.
> >> >> >>
> >> >> >> <jaxws:endpoint id="userService"
> >> >> >> serviceClass="com.brad.user.IUserService"
> >> >> >> implementor="com.brad.user.UserService"
> >> >> >> address="/UserService"
> >> >> >> bindingUri="http://apache.org/cxf/binding/http"
> >> >> >> >
> >> >> >> <jaxws:serviceFactory>
> >> >> >> <ref bean="JaxWsServiceFactoryBean" />
> >> >> >> </jaxws:serviceFactory>
> >> >> >> </jaxws:endpoint>
> >> >> >>
> >> >> >> This was the pattern used in XFire which worked, and the
> >> pattern set
> >> >> >> forth in the CXF user's guide, as in:
> >> >> >> http://cwiki.apache.org/CXF20DOC/http-binding.html
> >> >> >>
> >> >> >> But perhaps I've read it wrong. So I'll ask...
> >> >> >>
> >> >> >> 1. Should my annotations be on my implementation class or my
> >> >> >> interface class?
> >> >> >> 2. Depending on the answer to 1), if annotations are put in the
> >> >> >> interface, the endpointInterface attribute would logically
> >> always be
> >> >> >> the same name as that interface. Is this accurate?
> >> >> >> 3. Should the implementor attribute in the beans.xml
> >> jaxws:endpoint
> >> >> >> element reference the interface, or the imlementation?
> >> >> >>
> >> >> >> Thanks a ton for helping out Dan, it is sincerely appreciated.
> >> I'll
> >> >> >> throw that endpointInterface attribute on my @WebService
> >> annotation
> >> >> >> right now (which presently sits in my interface) and see what
> >> >> happens.
> >> >> >>
> >> >> >> Brad
> >> >> >>
> >> >> >> Dan Diephouse wrote:
> >> >> >>> 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 <br...@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 <br...@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 <br...@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
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan,
That is what I tried first, at your original recommendation. The problem
is that the jaxws:server element according to the schema doesn't have
either "implementor" or "bindingUri" attributes. It instead has an
"implementor" element, and a "binding" element, which I tried using, in
the markup I sent you, but had no luck, and got the exception. The
schema isn't any clue as to what I'm supposed to have there.
Brad
Dan Diephouse wrote:
> What you want is this:
>
> <jaxws:server id="userService"
> serviceClass="com.brad.user.IUserService"
> address="/UserService"
> bindingUri="http://apache.org/cxf/binding/http"
> implementor="com.brad.UserService">
> <jaxws:serviceFactory>
> <ref bean="JaxWsServiceFactoryBean" />
> </jaxws:serviceFactory>
> </jaxws:server>
>
> Regards,
>
> - Dan
>
> On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>
>> Dan,
>>
>> Thanks so much for tracking this down. Unfortunately, I'm still having
>> some problems, because in the jaxws:server element markup you suggested,
>> neither the implementor or bindingUri attributes are legal. I popped
>> open the jaxws.xsd schema, to try to see if I could resolve it, and here
>> is what I put together:
>>
>> <jaxws:server id="userService"
>> serviceClass="com.brad.user.IUserService"
>> address="/UserService">
>>
>> <jaxws:binding>http://apache.org/cxf/binding/http</jaxws:binding>
>> <jaxws:implementor>com.brad.UserService</jaxws:implementor>
>> <jaxws:serviceFactory>
>> <ref bean="JaxWsServiceFactoryBean" />
>> </jaxws:serviceFactory>
>> </jaxws:server>
>>
>>
>> but unfortunately, that doesn't work either. I'm failing on the binding
>> it appears. I figured it probably wanted a class name rather than a uri,
>> but the error output I got suggests that there's probably more info
>> needed to create the binding. The schema wasn't any clue on what to put
>> for this element. Here is the output below:
>>
>> ERROR [main] (ContextLoader.java:203) - Context initialization failed
>> org.springframework.beans.factory.BeanDefinitionStoreException:
>> Unexpected exception parsing XML document from ServletContext resource
>> [/WEB-INF/beans.xml]; nested exception is
>> java.lang.IllegalStateException: bindingConfig property must have child
>> elements!
>> Caused by:
>> java.lang.IllegalStateException: bindingConfig property must have child
>> elements!
>>
>> Brad
>>
>> Dan Diephouse wrote:
>> > OK, I wrote a test case and I see whats happening now. Unfortunately
>> when
>> > using EndpointImpl (which <jaxws:endpoint> does), somehow the HTTP
>> > Binding
>> > seems to be looking for the annotations on the impl class instead
>> of the
>> > interface class :-\.
>> >
>> > Try this instead:
>> >
>> >
>> > <jaxws:server id="userService"
>> > serviceClass="com.brad.user.IUserService"
>> > implementor="com.brad.user.UserService"
>> > address="/UserService"
>> > bindingUri="http://apache.org/cxf/binding/http">
>> > <jaxws:serviceFactory>
>> > <ref bean="JaxWsServiceFactoryBean" />
>> > </jaxws:serviceFactory>
>> > </jaxws:server>
>> >
>> > Notice that its jaxws:server, not jaxws:endpoint. (This creates a CXF
>> > Server
>> > object instead of a JAX-WS Endpoint object and allows more control of
>> how
>> > CXF creates the service). This will tell CXF to look at the
>> > IUserService for
>> > annotations.
>> >
>> > I'll fix this bug in SVN later today, but in the meantime that should
>> > work.
>> >
>> > Cheers,
>> > - Dan
>> >
>> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>> >>
>> >> Dan,
>> >>
>> >> I just tried the endpointInterface attribute now on my implementation
>> >> class, while leaving just the @WebService and method annotations
>> on my
>> >> interface class, as follows:
>> >>
>> >> @WebService (endpointInterface = "com.brad.user.IUserService")
>> >> public class UserService implements IUserService {...
>> >>
>> >> @WebService
>> >> public interface IUserService {
>> >>
>> >> As stated, I left the annotations on my one method in IUserService. I
>> >> annotated no methods in UserService. The full output / error I get is
>> >> below. The interesting thing is that these methods that the log shows
>> >> are being set up exist only in the implementation class, and are not
>> >> annotated. They do not exist in the interface class. The one method
>> that
>> >> is annotated in my interface class, getUsers(), is never mentioned.
>> >>
>> >> INFO: Creating Service {http://user.brad.com/}UserServiceService from
>> >> class com.brad.user.UserService
>> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> instance
>> >> of singleton bean '
>> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> instance
>> >> of singleton bean '
>> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> instance
>> >> of singleton bean '
>> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> instance
>> >> of singleton bean '
>> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> instance
>> >> of singleton bean '
>> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
>> instance
>> >> of singleton bean '
>> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> >> Jul 14, 2007 10:01:59 AM
>> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> >> INFO: Mapping method createUser to resource /eUsers and verb POST
>> >> Jul 14, 2007 10:01:59 AM
>> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> >> INFO: Mapping method modifyUser to resource /modifyUser and verb POST
>> >> Jul 14, 2007 10:01:59 AM
>> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> >> INFO: Mapping method authenticate to resource /authenticate and verb
>> >> POST
>> >> Jul 14, 2007 10:01:59 AM
>> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> >> INFO: Mapping method deleteUser to resource /users and verb DELETE
>> >> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
>> >> singletons in
>> >>
>> >>
>> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979
>>
>> >>
>> >> :
>> >> defining beans
>> >> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,
>> >> org.apache.cxf.bus.spring.BusExtensionPostProcessor,
>> >> org.apache.cxf.resource.ResourceManager,
>> >> org.apache.cxf.binding.BindingFactoryManager,
>> >> org.apache.cxf.transport.DestinationFactoryManager,
>> >> org.apache.cxf.transport.ConduitInitiatorManager,
>> >> org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,
>> >> org.apache.cxf.workqueue.WorkQueueManager,
>> >> org.apache.cxf.buslifecycle.BusLifeCycleManager,
>> >> org.apache.cxf.endpoint.ServerRegistry,
>> >> org.apache.cxf.endpoint.ServerLifeCycleManager,
>> >> org.apache.cxf.endpoint.ClientLifeCycleManager,
>> >> org.apache.cxf.transports.http.QueryHandlerRegistry,
>> >> org.apache.cxf.endpoint.EndpointResolverRegistry,
>> >> org.apache.cxf.headers.HeaderManager,
>> >> org.apache.cxf.catalog.OASISCatalogManager,
>> >> org.apache.cxf.binding.http.HttpBindingFactory,
>> >> org.apache.cxf.transport.servlet.ServletTransportFactory
>> >> ,JaxWsServiceFactoryBean,userService];
>> >> root of factory hierarchy
>> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> dependent beans for bean 'JaxWsServiceFactoryBean': [userService]
>> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> dependent beans for bean
>> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
>> >> [org.apache.cxf.transport.ConduitInitiatorManager]
>> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> dependent beans for bean
>> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
>> >> [org.apache.cxf.transport.DestinationFactoryManager]
>> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> dependent beans for bean
>> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
>> >> [org.apache.cxf.binding.BindingFactoryManager]
>> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> dependent beans for bean
>> >> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
>> >> [org.apache.cxf.resource.ResourceManager]
>> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> >> dependent beans for bean
>> >> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
>> >> [org.apache.cxf.resource.ResourceManager]
>> >> 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)
>> >> Jul 14, 2007 10:01:59 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': 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)
>> >> Jul 14, 2007 10:01:59 AM org.apache.catalina.core.StandardContext
>> start
>> >> SEVERE: Error listenerStart
>> >> Jul 14, 2007 10:01:59 AM org.a
>> >>
>> >>
>> >> Brad O'Hearne wrote:
>> >> > Dan,
>> >> >
>> >> > I just tried the endpointInterface attribute on my interface class,
>> as
>> >> > follows:
>> >> >
>> >> > @WebService (endpointInterface = "com.brad.user.IUserService")
>> >> > public interface IUserService {
>> >> >
>> >> > and here is the error I receive:
>> >> >
>> >> > 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 javax.xml.ws.WebServiceException:
>> >> > Attributes portName, serviceName and endpointInterface are not
>> allowed
>> >> > in the @WebService annotation of an SEI.
>> >> > Caused by:
>> >> > javax.xml.ws.WebServiceException: Attributes portName, serviceName
>> and
>> >> > endpointInterface are not allowed in the @WebService annotation
>> of an
>> >> > SEI.
>> >> > at
>> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(
>> >> JaxWsImplementorInfo.java:279)
>> >> >
>> >> > at
>> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(
>> >> JaxWsImplementorInfo.java:57)
>> >> >
>> >> >
>> >> > I think this probably goes back to the design pattern mentioned
>> in my
>> >> > previous post (annotations on the interface, none of the
>> >> > implementation class). I'm guessing we are on the cusp of having
>> this
>> >> > solved.
>> >> >
>> >> > Thanks,
>> >> >
>> >> > Brad
>> >> >
>> >> > Brad O'Hearne wrote:
>> >> >> Dan,
>> >> >>
>> >> >> I think you may have hit on the mystery here. I do not have an
>> >> >> endpoint interface defined on my @WebService. But the rest of your
>> >> >> answer below suggests that I may have done something else wrong in
>> >> >> general. My annotations occur entirely in my interface, i.e.
>> >> >>
>> >> >> @WebService
>> >> >> public interface IUserService ...
>> >> >>
>> >> >> and my implementing class has no annotations whatsoever, i.e.:
>> >> >>
>> >> >> public class UserService extends IUserService ...
>> >> >>
>> >> >> and from the past posts I have, you'll see that my beans.xml file
>> >> >> references the implementation class, i.e.
>> >> >>
>> >> >> <jaxws:endpoint id="userService"
>> >> >> serviceClass="com.brad.user.IUserService"
>> >> >> implementor="com.brad.user.UserService"
>> >> >> address="/UserService"
>> >> >> bindingUri="http://apache.org/cxf/binding/http"
>> >> >> >
>> >> >> <jaxws:serviceFactory>
>> >> >> <ref bean="JaxWsServiceFactoryBean" />
>> >> >> </jaxws:serviceFactory>
>> >> >> </jaxws:endpoint>
>> >> >>
>> >> >> This was the pattern used in XFire which worked, and the
>> pattern set
>> >> >> forth in the CXF user's guide, as in:
>> >> >> http://cwiki.apache.org/CXF20DOC/http-binding.html
>> >> >>
>> >> >> But perhaps I've read it wrong. So I'll ask...
>> >> >>
>> >> >> 1. Should my annotations be on my implementation class or my
>> >> >> interface class?
>> >> >> 2. Depending on the answer to 1), if annotations are put in the
>> >> >> interface, the endpointInterface attribute would logically
>> always be
>> >> >> the same name as that interface. Is this accurate?
>> >> >> 3. Should the implementor attribute in the beans.xml
>> jaxws:endpoint
>> >> >> element reference the interface, or the imlementation?
>> >> >>
>> >> >> Thanks a ton for helping out Dan, it is sincerely appreciated.
>> I'll
>> >> >> throw that endpointInterface attribute on my @WebService
>> annotation
>> >> >> right now (which presently sits in my interface) and see what
>> >> happens.
>> >> >>
>> >> >> Brad
>> >> >>
>> >> >> Dan Diephouse wrote:
>> >> >>> 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 <br...@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 <br...@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 <br...@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)
>> >> >>>> >>
>> >> >>>> >>
>> >> >>>> >>
>> >> >>>> >>
>> >> >>>> >
>> >> >>>> >
>> >> >>>>
>> >> >>>>
>> >> >>>
>> >> >>>
>> >> >>
>> >> >
>> >>
>> >>
>> >>
>> >
>> >
>>
>>
>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Dan Diephouse <da...@envoisolutions.com>.
What you want is this:
<jaxws:server id="userService"
serviceClass="com.brad.user.IUserService"
address="/UserService"
bindingUri="http://apache.org/cxf/binding/http"
implementor="com.brad.UserService">
<jaxws:serviceFactory>
<ref bean="JaxWsServiceFactoryBean" />
</jaxws:serviceFactory>
</jaxws:server>
Regards,
- Dan
On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>
> Dan,
>
> Thanks so much for tracking this down. Unfortunately, I'm still having
> some problems, because in the jaxws:server element markup you suggested,
> neither the implementor or bindingUri attributes are legal. I popped
> open the jaxws.xsd schema, to try to see if I could resolve it, and here
> is what I put together:
>
> <jaxws:server id="userService"
> serviceClass="com.brad.user.IUserService"
> address="/UserService">
> <jaxws:binding>http://apache.org/cxf/binding/http</jaxws:binding>
> <jaxws:implementor>com.brad.UserService</jaxws:implementor>
> <jaxws:serviceFactory>
> <ref bean="JaxWsServiceFactoryBean" />
> </jaxws:serviceFactory>
> </jaxws:server>
>
>
> but unfortunately, that doesn't work either. I'm failing on the binding
> it appears. I figured it probably wanted a class name rather than a uri,
> but the error output I got suggests that there's probably more info
> needed to create the binding. The schema wasn't any clue on what to put
> for this element. Here is the output below:
>
> ERROR [main] (ContextLoader.java:203) - Context initialization failed
> org.springframework.beans.factory.BeanDefinitionStoreException:
> Unexpected exception parsing XML document from ServletContext resource
> [/WEB-INF/beans.xml]; nested exception is
> java.lang.IllegalStateException: bindingConfig property must have child
> elements!
> Caused by:
> java.lang.IllegalStateException: bindingConfig property must have child
> elements!
>
> Brad
>
> Dan Diephouse wrote:
> > OK, I wrote a test case and I see whats happening now. Unfortunately
> when
> > using EndpointImpl (which <jaxws:endpoint> does), somehow the HTTP
> > Binding
> > seems to be looking for the annotations on the impl class instead of the
> > interface class :-\.
> >
> > Try this instead:
> >
> >
> > <jaxws:server id="userService"
> > serviceClass="com.brad.user.IUserService"
> > implementor="com.brad.user.UserService"
> > address="/UserService"
> > bindingUri="http://apache.org/cxf/binding/http">
> > <jaxws:serviceFactory>
> > <ref bean="JaxWsServiceFactoryBean" />
> > </jaxws:serviceFactory>
> > </jaxws:server>
> >
> > Notice that its jaxws:server, not jaxws:endpoint. (This creates a CXF
> > Server
> > object instead of a JAX-WS Endpoint object and allows more control of
> how
> > CXF creates the service). This will tell CXF to look at the
> > IUserService for
> > annotations.
> >
> > I'll fix this bug in SVN later today, but in the meantime that should
> > work.
> >
> > Cheers,
> > - Dan
> >
> > On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
> >>
> >> Dan,
> >>
> >> I just tried the endpointInterface attribute now on my implementation
> >> class, while leaving just the @WebService and method annotations on my
> >> interface class, as follows:
> >>
> >> @WebService (endpointInterface = "com.brad.user.IUserService")
> >> public class UserService implements IUserService {...
> >>
> >> @WebService
> >> public interface IUserService {
> >>
> >> As stated, I left the annotations on my one method in IUserService. I
> >> annotated no methods in UserService. The full output / error I get is
> >> below. The interesting thing is that these methods that the log shows
> >> are being set up exist only in the implementation class, and are not
> >> annotated. They do not exist in the interface class. The one method
> that
> >> is annotated in my interface class, getUsers(), is never mentioned.
> >>
> >> INFO: Creating Service {http://user.brad.com/}UserServiceService from
> >> class com.brad.user.UserService
> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> >> of singleton bean '
> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> >> of singleton bean '
> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> >> of singleton bean '
> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> >> of singleton bean '
> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> >> of singleton bean '
> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> >> of singleton bean '
> >> org.apache.cxf.transport.servlet.ServletTransportFactory'
> >> Jul 14, 2007 10:01:59 AM
> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> >> INFO: Mapping method createUser to resource /eUsers and verb POST
> >> Jul 14, 2007 10:01:59 AM
> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> >> INFO: Mapping method modifyUser to resource /modifyUser and verb POST
> >> Jul 14, 2007 10:01:59 AM
> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> >> INFO: Mapping method authenticate to resource /authenticate and verb
> >> POST
> >> Jul 14, 2007 10:01:59 AM
> >> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> >> INFO: Mapping method deleteUser to resource /users and verb DELETE
> >> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
> >> singletons in
> >>
> >>
> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979
> >>
> >> :
> >> defining beans
> >> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,
> >> org.apache.cxf.bus.spring.BusExtensionPostProcessor,
> >> org.apache.cxf.resource.ResourceManager,
> >> org.apache.cxf.binding.BindingFactoryManager,
> >> org.apache.cxf.transport.DestinationFactoryManager,
> >> org.apache.cxf.transport.ConduitInitiatorManager,
> >> org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,
> >> org.apache.cxf.workqueue.WorkQueueManager,
> >> org.apache.cxf.buslifecycle.BusLifeCycleManager,
> >> org.apache.cxf.endpoint.ServerRegistry,
> >> org.apache.cxf.endpoint.ServerLifeCycleManager,
> >> org.apache.cxf.endpoint.ClientLifeCycleManager,
> >> org.apache.cxf.transports.http.QueryHandlerRegistry,
> >> org.apache.cxf.endpoint.EndpointResolverRegistry,
> >> org.apache.cxf.headers.HeaderManager,
> >> org.apache.cxf.catalog.OASISCatalogManager,
> >> org.apache.cxf.binding.http.HttpBindingFactory,
> >> org.apache.cxf.transport.servlet.ServletTransportFactory
> >> ,JaxWsServiceFactoryBean,userService];
> >> root of factory hierarchy
> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> dependent beans for bean 'JaxWsServiceFactoryBean': [userService]
> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> dependent beans for bean
> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
> >> [org.apache.cxf.transport.ConduitInitiatorManager]
> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> dependent beans for bean
> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
> >> [org.apache.cxf.transport.DestinationFactoryManager]
> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> dependent beans for bean
> >> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
> >> [org.apache.cxf.binding.BindingFactoryManager]
> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> dependent beans for bean
> >> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
> >> [org.apache.cxf.resource.ResourceManager]
> >> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> >> dependent beans for bean
> >> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
> >> [org.apache.cxf.resource.ResourceManager]
> >> 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)
> >> Jul 14, 2007 10:01:59 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': 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)
> >> Jul 14, 2007 10:01:59 AM org.apache.catalina.core.StandardContext start
> >> SEVERE: Error listenerStart
> >> Jul 14, 2007 10:01:59 AM org.a
> >>
> >>
> >> Brad O'Hearne wrote:
> >> > Dan,
> >> >
> >> > I just tried the endpointInterface attribute on my interface class,
> as
> >> > follows:
> >> >
> >> > @WebService (endpointInterface = "com.brad.user.IUserService")
> >> > public interface IUserService {
> >> >
> >> > and here is the error I receive:
> >> >
> >> > 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 javax.xml.ws.WebServiceException:
> >> > Attributes portName, serviceName and endpointInterface are not
> allowed
> >> > in the @WebService annotation of an SEI.
> >> > Caused by:
> >> > javax.xml.ws.WebServiceException: Attributes portName, serviceName
> and
> >> > endpointInterface are not allowed in the @WebService annotation of an
> >> > SEI.
> >> > at
> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(
> >> JaxWsImplementorInfo.java:279)
> >> >
> >> > at
> >> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(
> >> JaxWsImplementorInfo.java:57)
> >> >
> >> >
> >> > I think this probably goes back to the design pattern mentioned in my
> >> > previous post (annotations on the interface, none of the
> >> > implementation class). I'm guessing we are on the cusp of having this
> >> > solved.
> >> >
> >> > Thanks,
> >> >
> >> > Brad
> >> >
> >> > Brad O'Hearne wrote:
> >> >> Dan,
> >> >>
> >> >> I think you may have hit on the mystery here. I do not have an
> >> >> endpoint interface defined on my @WebService. But the rest of your
> >> >> answer below suggests that I may have done something else wrong in
> >> >> general. My annotations occur entirely in my interface, i.e.
> >> >>
> >> >> @WebService
> >> >> public interface IUserService ...
> >> >>
> >> >> and my implementing class has no annotations whatsoever, i.e.:
> >> >>
> >> >> public class UserService extends IUserService ...
> >> >>
> >> >> and from the past posts I have, you'll see that my beans.xml file
> >> >> references the implementation class, i.e.
> >> >>
> >> >> <jaxws:endpoint id="userService"
> >> >> serviceClass="com.brad.user.IUserService"
> >> >> implementor="com.brad.user.UserService"
> >> >> address="/UserService"
> >> >> bindingUri="http://apache.org/cxf/binding/http"
> >> >> >
> >> >> <jaxws:serviceFactory>
> >> >> <ref bean="JaxWsServiceFactoryBean" />
> >> >> </jaxws:serviceFactory>
> >> >> </jaxws:endpoint>
> >> >>
> >> >> This was the pattern used in XFire which worked, and the pattern set
> >> >> forth in the CXF user's guide, as in:
> >> >> http://cwiki.apache.org/CXF20DOC/http-binding.html
> >> >>
> >> >> But perhaps I've read it wrong. So I'll ask...
> >> >>
> >> >> 1. Should my annotations be on my implementation class or my
> >> >> interface class?
> >> >> 2. Depending on the answer to 1), if annotations are put in the
> >> >> interface, the endpointInterface attribute would logically always be
> >> >> the same name as that interface. Is this accurate?
> >> >> 3. Should the implementor attribute in the beans.xml jaxws:endpoint
> >> >> element reference the interface, or the imlementation?
> >> >>
> >> >> Thanks a ton for helping out Dan, it is sincerely appreciated. I'll
> >> >> throw that endpointInterface attribute on my @WebService annotation
> >> >> right now (which presently sits in my interface) and see what
> >> happens.
> >> >>
> >> >> Brad
> >> >>
> >> >> Dan Diephouse wrote:
> >> >>> 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 <br...@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 <br...@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 <br...@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
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan,
Thanks so much for tracking this down. Unfortunately, I'm still having
some problems, because in the jaxws:server element markup you suggested,
neither the implementor or bindingUri attributes are legal. I popped
open the jaxws.xsd schema, to try to see if I could resolve it, and here
is what I put together:
<jaxws:server id="userService"
serviceClass="com.brad.user.IUserService"
address="/UserService">
<jaxws:binding>http://apache.org/cxf/binding/http</jaxws:binding>
<jaxws:implementor>com.brad.UserService</jaxws:implementor>
<jaxws:serviceFactory>
<ref bean="JaxWsServiceFactoryBean" />
</jaxws:serviceFactory>
</jaxws:server>
but unfortunately, that doesn't work either. I'm failing on the binding
it appears. I figured it probably wanted a class name rather than a uri,
but the error output I got suggests that there's probably more info
needed to create the binding. The schema wasn't any clue on what to put
for this element. Here is the output below:
ERROR [main] (ContextLoader.java:203) - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException:
Unexpected exception parsing XML document from ServletContext resource
[/WEB-INF/beans.xml]; nested exception is
java.lang.IllegalStateException: bindingConfig property must have child
elements!
Caused by:
java.lang.IllegalStateException: bindingConfig property must have child
elements!
Brad
Dan Diephouse wrote:
> OK, I wrote a test case and I see whats happening now. Unfortunately when
> using EndpointImpl (which <jaxws:endpoint> does), somehow the HTTP
> Binding
> seems to be looking for the annotations on the impl class instead of the
> interface class :-\.
>
> Try this instead:
>
>
> <jaxws:server id="userService"
> serviceClass="com.brad.user.IUserService"
> implementor="com.brad.user.UserService"
> address="/UserService"
> bindingUri="http://apache.org/cxf/binding/http">
> <jaxws:serviceFactory>
> <ref bean="JaxWsServiceFactoryBean" />
> </jaxws:serviceFactory>
> </jaxws:server>
>
> Notice that its jaxws:server, not jaxws:endpoint. (This creates a CXF
> Server
> object instead of a JAX-WS Endpoint object and allows more control of how
> CXF creates the service). This will tell CXF to look at the
> IUserService for
> annotations.
>
> I'll fix this bug in SVN later today, but in the meantime that should
> work.
>
> Cheers,
> - Dan
>
> On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>>
>> Dan,
>>
>> I just tried the endpointInterface attribute now on my implementation
>> class, while leaving just the @WebService and method annotations on my
>> interface class, as follows:
>>
>> @WebService (endpointInterface = "com.brad.user.IUserService")
>> public class UserService implements IUserService {...
>>
>> @WebService
>> public interface IUserService {
>>
>> As stated, I left the annotations on my one method in IUserService. I
>> annotated no methods in UserService. The full output / error I get is
>> below. The interesting thing is that these methods that the log shows
>> are being set up exist only in the implementation class, and are not
>> annotated. They do not exist in the interface class. The one method that
>> is annotated in my interface class, getUsers(), is never mentioned.
>>
>> INFO: Creating Service {http://user.brad.com/}UserServiceService from
>> class com.brad.user.UserService
>> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
>> of singleton bean '
>> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
>> of singleton bean '
>> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
>> of singleton bean '
>> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
>> of singleton bean '
>> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
>> of singleton bean '
>> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
>> of singleton bean '
>> org.apache.cxf.transport.servlet.ServletTransportFactory'
>> Jul 14, 2007 10:01:59 AM
>> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> INFO: Mapping method createUser to resource /eUsers and verb POST
>> Jul 14, 2007 10:01:59 AM
>> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> INFO: Mapping method modifyUser to resource /modifyUser and verb POST
>> Jul 14, 2007 10:01:59 AM
>> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> INFO: Mapping method authenticate to resource /authenticate and verb
>> POST
>> Jul 14, 2007 10:01:59 AM
>> org.apache.cxf.binding.http.strategy.ConventionStrategy map
>> INFO: Mapping method deleteUser to resource /users and verb DELETE
>> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
>> singletons in
>>
>> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979
>>
>> :
>> defining beans
>> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,
>> org.apache.cxf.bus.spring.BusExtensionPostProcessor,
>> org.apache.cxf.resource.ResourceManager,
>> org.apache.cxf.binding.BindingFactoryManager,
>> org.apache.cxf.transport.DestinationFactoryManager,
>> org.apache.cxf.transport.ConduitInitiatorManager,
>> org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,
>> org.apache.cxf.workqueue.WorkQueueManager,
>> org.apache.cxf.buslifecycle.BusLifeCycleManager,
>> org.apache.cxf.endpoint.ServerRegistry,
>> org.apache.cxf.endpoint.ServerLifeCycleManager,
>> org.apache.cxf.endpoint.ClientLifeCycleManager,
>> org.apache.cxf.transports.http.QueryHandlerRegistry,
>> org.apache.cxf.endpoint.EndpointResolverRegistry,
>> org.apache.cxf.headers.HeaderManager,
>> org.apache.cxf.catalog.OASISCatalogManager,
>> org.apache.cxf.binding.http.HttpBindingFactory,
>> org.apache.cxf.transport.servlet.ServletTransportFactory
>> ,JaxWsServiceFactoryBean,userService];
>> root of factory hierarchy
>> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> dependent beans for bean 'JaxWsServiceFactoryBean': [userService]
>> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> dependent beans for bean
>> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
>> [org.apache.cxf.transport.ConduitInitiatorManager]
>> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> dependent beans for bean
>> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
>> [org.apache.cxf.transport.DestinationFactoryManager]
>> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> dependent beans for bean
>> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
>> [org.apache.cxf.binding.BindingFactoryManager]
>> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> dependent beans for bean
>> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
>> [org.apache.cxf.resource.ResourceManager]
>> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
>> dependent beans for bean
>> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
>> [org.apache.cxf.resource.ResourceManager]
>> 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)
>> Jul 14, 2007 10:01:59 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': 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)
>> Jul 14, 2007 10:01:59 AM org.apache.catalina.core.StandardContext start
>> SEVERE: Error listenerStart
>> Jul 14, 2007 10:01:59 AM org.a
>>
>>
>> Brad O'Hearne wrote:
>> > Dan,
>> >
>> > I just tried the endpointInterface attribute on my interface class, as
>> > follows:
>> >
>> > @WebService (endpointInterface = "com.brad.user.IUserService")
>> > public interface IUserService {
>> >
>> > and here is the error I receive:
>> >
>> > 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 javax.xml.ws.WebServiceException:
>> > Attributes portName, serviceName and endpointInterface are not allowed
>> > in the @WebService annotation of an SEI.
>> > Caused by:
>> > javax.xml.ws.WebServiceException: Attributes portName, serviceName and
>> > endpointInterface are not allowed in the @WebService annotation of an
>> > SEI.
>> > at
>> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(
>> JaxWsImplementorInfo.java:279)
>> >
>> > at
>> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(
>> JaxWsImplementorInfo.java:57)
>> >
>> >
>> > I think this probably goes back to the design pattern mentioned in my
>> > previous post (annotations on the interface, none of the
>> > implementation class). I'm guessing we are on the cusp of having this
>> > solved.
>> >
>> > Thanks,
>> >
>> > Brad
>> >
>> > Brad O'Hearne wrote:
>> >> Dan,
>> >>
>> >> I think you may have hit on the mystery here. I do not have an
>> >> endpoint interface defined on my @WebService. But the rest of your
>> >> answer below suggests that I may have done something else wrong in
>> >> general. My annotations occur entirely in my interface, i.e.
>> >>
>> >> @WebService
>> >> public interface IUserService ...
>> >>
>> >> and my implementing class has no annotations whatsoever, i.e.:
>> >>
>> >> public class UserService extends IUserService ...
>> >>
>> >> and from the past posts I have, you'll see that my beans.xml file
>> >> references the implementation class, i.e.
>> >>
>> >> <jaxws:endpoint id="userService"
>> >> serviceClass="com.brad.user.IUserService"
>> >> implementor="com.brad.user.UserService"
>> >> address="/UserService"
>> >> bindingUri="http://apache.org/cxf/binding/http"
>> >> >
>> >> <jaxws:serviceFactory>
>> >> <ref bean="JaxWsServiceFactoryBean" />
>> >> </jaxws:serviceFactory>
>> >> </jaxws:endpoint>
>> >>
>> >> This was the pattern used in XFire which worked, and the pattern set
>> >> forth in the CXF user's guide, as in:
>> >> http://cwiki.apache.org/CXF20DOC/http-binding.html
>> >>
>> >> But perhaps I've read it wrong. So I'll ask...
>> >>
>> >> 1. Should my annotations be on my implementation class or my
>> >> interface class?
>> >> 2. Depending on the answer to 1), if annotations are put in the
>> >> interface, the endpointInterface attribute would logically always be
>> >> the same name as that interface. Is this accurate?
>> >> 3. Should the implementor attribute in the beans.xml jaxws:endpoint
>> >> element reference the interface, or the imlementation?
>> >>
>> >> Thanks a ton for helping out Dan, it is sincerely appreciated. I'll
>> >> throw that endpointInterface attribute on my @WebService annotation
>> >> right now (which presently sits in my interface) and see what
>> happens.
>> >>
>> >> Brad
>> >>
>> >> Dan Diephouse wrote:
>> >>> 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 <br...@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 <br...@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 <br...@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)
>> >>>> >>
>> >>>> >>
>> >>>> >>
>> >>>> >>
>> >>>> >
>> >>>> >
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>
>> >
>>
>>
>>
>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Dan Diephouse <da...@envoisolutions.com>.
OK, I wrote a test case and I see whats happening now. Unfortunately when
using EndpointImpl (which <jaxws:endpoint> does), somehow the HTTP Binding
seems to be looking for the annotations on the impl class instead of the
interface class :-\.
Try this instead:
<jaxws:server id="userService"
serviceClass="com.brad.user.IUserService"
implementor="com.brad.user.UserService"
address="/UserService"
bindingUri="http://apache.org/cxf/binding/http">
<jaxws:serviceFactory>
<ref bean="JaxWsServiceFactoryBean" />
</jaxws:serviceFactory>
</jaxws:server>
Notice that its jaxws:server, not jaxws:endpoint. (This creates a CXF Server
object instead of a JAX-WS Endpoint object and allows more control of how
CXF creates the service). This will tell CXF to look at the IUserService for
annotations.
I'll fix this bug in SVN later today, but in the meantime that should work.
Cheers,
- Dan
On 7/14/07, Brad O'Hearne <br...@neurofire.com> wrote:
>
> Dan,
>
> I just tried the endpointInterface attribute now on my implementation
> class, while leaving just the @WebService and method annotations on my
> interface class, as follows:
>
> @WebService (endpointInterface = "com.brad.user.IUserService")
> public class UserService implements IUserService {...
>
> @WebService
> public interface IUserService {
>
> As stated, I left the annotations on my one method in IUserService. I
> annotated no methods in UserService. The full output / error I get is
> below. The interesting thing is that these methods that the log shows
> are being set up exist only in the implementation class, and are not
> annotated. They do not exist in the interface class. The one method that
> is annotated in my interface class, getUsers(), is never mentioned.
>
> INFO: Creating Service {http://user.brad.com/}UserServiceService from
> class com.brad.user.UserService
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> of singleton bean '
> org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> of singleton bean '
> org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> of singleton bean '
> org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> of singleton bean '
> org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> of singleton bean '
> org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
> of singleton bean '
> org.apache.cxf.transport.servlet.ServletTransportFactory'
> Jul 14, 2007 10:01:59 AM
> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> INFO: Mapping method createUser to resource /eUsers and verb POST
> Jul 14, 2007 10:01:59 AM
> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> INFO: Mapping method modifyUser to resource /modifyUser and verb POST
> Jul 14, 2007 10:01:59 AM
> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> INFO: Mapping method authenticate to resource /authenticate and verb POST
> Jul 14, 2007 10:01:59 AM
> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> INFO: Mapping method deleteUser to resource /users and verb DELETE
> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
> singletons in
>
> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979
> :
> defining beans
> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,
> org.apache.cxf.bus.spring.BusExtensionPostProcessor,
> org.apache.cxf.resource.ResourceManager,
> org.apache.cxf.binding.BindingFactoryManager,
> org.apache.cxf.transport.DestinationFactoryManager,
> org.apache.cxf.transport.ConduitInitiatorManager,
> org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,
> org.apache.cxf.workqueue.WorkQueueManager,
> org.apache.cxf.buslifecycle.BusLifeCycleManager,
> org.apache.cxf.endpoint.ServerRegistry,
> org.apache.cxf.endpoint.ServerLifeCycleManager,
> org.apache.cxf.endpoint.ClientLifeCycleManager,
> org.apache.cxf.transports.http.QueryHandlerRegistry,
> org.apache.cxf.endpoint.EndpointResolverRegistry,
> org.apache.cxf.headers.HeaderManager,
> org.apache.cxf.catalog.OASISCatalogManager,
> org.apache.cxf.binding.http.HttpBindingFactory,
> org.apache.cxf.transport.servlet.ServletTransportFactory
> ,JaxWsServiceFactoryBean,userService];
> root of factory hierarchy
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean 'JaxWsServiceFactoryBean': [userService]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
> [org.apache.cxf.transport.ConduitInitiatorManager]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
> [org.apache.cxf.transport.DestinationFactoryManager]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
> [org.apache.cxf.binding.BindingFactoryManager]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
> [org.apache.cxf.resource.ResourceManager]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
> [org.apache.cxf.resource.ResourceManager]
> 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)
> Jul 14, 2007 10:01:59 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': 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)
> Jul 14, 2007 10:01:59 AM org.apache.catalina.core.StandardContext start
> SEVERE: Error listenerStart
> Jul 14, 2007 10:01:59 AM org.a
>
>
> Brad O'Hearne wrote:
> > Dan,
> >
> > I just tried the endpointInterface attribute on my interface class, as
> > follows:
> >
> > @WebService (endpointInterface = "com.brad.user.IUserService")
> > public interface IUserService {
> >
> > and here is the error I receive:
> >
> > 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 javax.xml.ws.WebServiceException:
> > Attributes portName, serviceName and endpointInterface are not allowed
> > in the @WebService annotation of an SEI.
> > Caused by:
> > javax.xml.ws.WebServiceException: Attributes portName, serviceName and
> > endpointInterface are not allowed in the @WebService annotation of an
> > SEI.
> > at
> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(
> JaxWsImplementorInfo.java:279)
> >
> > at
> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(
> JaxWsImplementorInfo.java:57)
> >
> >
> > I think this probably goes back to the design pattern mentioned in my
> > previous post (annotations on the interface, none of the
> > implementation class). I'm guessing we are on the cusp of having this
> > solved.
> >
> > Thanks,
> >
> > Brad
> >
> > Brad O'Hearne wrote:
> >> Dan,
> >>
> >> I think you may have hit on the mystery here. I do not have an
> >> endpoint interface defined on my @WebService. But the rest of your
> >> answer below suggests that I may have done something else wrong in
> >> general. My annotations occur entirely in my interface, i.e.
> >>
> >> @WebService
> >> public interface IUserService ...
> >>
> >> and my implementing class has no annotations whatsoever, i.e.:
> >>
> >> public class UserService extends IUserService ...
> >>
> >> and from the past posts I have, you'll see that my beans.xml file
> >> references the implementation class, i.e.
> >>
> >> <jaxws:endpoint id="userService"
> >> serviceClass="com.brad.user.IUserService"
> >> implementor="com.brad.user.UserService"
> >> address="/UserService"
> >> bindingUri="http://apache.org/cxf/binding/http"
> >> >
> >> <jaxws:serviceFactory>
> >> <ref bean="JaxWsServiceFactoryBean" />
> >> </jaxws:serviceFactory>
> >> </jaxws:endpoint>
> >>
> >> This was the pattern used in XFire which worked, and the pattern set
> >> forth in the CXF user's guide, as in:
> >> http://cwiki.apache.org/CXF20DOC/http-binding.html
> >>
> >> But perhaps I've read it wrong. So I'll ask...
> >>
> >> 1. Should my annotations be on my implementation class or my
> >> interface class?
> >> 2. Depending on the answer to 1), if annotations are put in the
> >> interface, the endpointInterface attribute would logically always be
> >> the same name as that interface. Is this accurate?
> >> 3. Should the implementor attribute in the beans.xml jaxws:endpoint
> >> element reference the interface, or the imlementation?
> >>
> >> Thanks a ton for helping out Dan, it is sincerely appreciated. I'll
> >> throw that endpointInterface attribute on my @WebService annotation
> >> right now (which presently sits in my interface) and see what happens.
> >>
> >> Brad
> >>
> >> Dan Diephouse wrote:
> >>> 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 <br...@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 <br...@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 <br...@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
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan,
I have found where the problem lies, but I do not know the solution. The
problem is on this method declared in my interface:
@Get
@HttpResource(location = "/users")
ServiceResponse getUsers(ServiceRequest request);
If I comment this out, everything loads cleanly. I cannot see what the
problem with it is though. However, I have noticed one other weird
thing, and that is that the mappings CXF is assigning to my methods
don't match the locations I specified in my annotations. Here are the
other methods I now have in my IUserService interface:
@Put
@HttpResource(location="/createUser") ServiceResponse
createUser(ServiceRequest request);
@Put @HttpResource(location="/authenticate") ServiceResponse
authenticate(ServiceRequest request);
@Put @HttpResource(location="/modifyUser") ServiceResponse
modifyUser(ServiceRequest request);
@Put @HttpResource(location="/deleteUser") ServiceResponse
deleteUser(ServiceRequest request);
These all load without error, but look at the mappings assigned.
Jul 14, 2007 10:25:14 AM
org.apache.cxf.binding.http.strategy.ConventionStrategy map
INFO: Mapping method createUser to resource /eUsers and verb POST
Jul 14, 2007 10:25:14 AM
org.apache.cxf.binding.http.strategy.ConventionStrategy map
INFO: Mapping method modifyUser to resource /modifyUser and verb POST
Jul 14, 2007 10:25:14 AM
org.apache.cxf.binding.http.strategy.ConventionStrategy map
INFO: Mapping method authenticate to resource /authenticate and verb POST
Jul 14, 2007 10:25:14 AM
org.apache.cxf.binding.http.strategy.ConventionStrategy map
INFO: Mapping method deleteUser to resource /users and verb DELETE
I understand the mappings that it attempts, according to the
documentation, and this is what I would have expected according to
RESTful naming conventions had I not had annotations. But I was under
the impression that if you use annotations, those annotations are used
-- otherwise, what would be the purpose of the @HttpResource annotation?
My implementation class does now reference the endpointInterface
properly, but it doesn't appear to be using those annotation locations
specified.
Hope this sheds a little more light on the problem.
Brad
Brad O'Hearne wrote:
> Dan,
>
> I just tried the endpointInterface attribute now on my implementation
> class, while leaving just the @WebService and method annotations on my
> interface class, as follows:
>
> @WebService (endpointInterface = "com.brad.user.IUserService")
> public class UserService implements IUserService {...
>
> @WebService
> public interface IUserService {
>
> As stated, I left the annotations on my one method in IUserService. I
> annotated no methods in UserService. The full output / error I get is
> below. The interesting thing is that these methods that the log shows
> are being set up exist only in the implementation class, and are not
> annotated. They do not exist in the interface class. The one method
> that is annotated in my interface class, getUsers(), is never mentioned.
>
> INFO: Creating Service {http://user.brad.com/}UserServiceService from
> class com.brad.user.UserService
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> instance of singleton bean
> 'org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> instance of singleton bean
> 'org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> instance of singleton bean
> 'org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> instance of singleton bean
> 'org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> instance of singleton bean
> 'org.apache.cxf.transport.servlet.ServletTransportFactory'
> DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached
> instance of singleton bean
> 'org.apache.cxf.transport.servlet.ServletTransportFactory'
> Jul 14, 2007 10:01:59 AM
> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> INFO: Mapping method createUser to resource /eUsers and verb POST
> Jul 14, 2007 10:01:59 AM
> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> INFO: Mapping method modifyUser to resource /modifyUser and verb POST
> Jul 14, 2007 10:01:59 AM
> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> INFO: Mapping method authenticate to resource /authenticate and verb POST
> Jul 14, 2007 10:01:59 AM
> org.apache.cxf.binding.http.strategy.ConventionStrategy map
> INFO: Mapping method deleteUser to resource /users and verb DELETE
> INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
> singletons in
> org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979:
> defining beans
> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.binding.http.HttpBindingFactory,org.apache.cxf.transport.servlet.ServletTransportFactory,JaxWsServiceFactoryBean,userService];
> root of factory hierarchy
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean 'JaxWsServiceFactoryBean': [userService]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
> [org.apache.cxf.transport.ConduitInitiatorManager]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
> [org.apache.cxf.transport.DestinationFactoryManager]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
> [org.apache.cxf.binding.BindingFactoryManager]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
> [org.apache.cxf.resource.ResourceManager]
> DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
> dependent beans for bean
> 'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
> [org.apache.cxf.resource.ResourceManager]
> 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)
> Jul 14, 2007 10:01:59 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': 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)
> Jul 14, 2007 10:01:59 AM org.apache.catalina.core.StandardContext start
> SEVERE: Error listenerStart
> Jul 14, 2007 10:01:59 AM org.a
>
>
> Brad O'Hearne wrote:
>> Dan,
>>
>> I just tried the endpointInterface attribute on my interface class,
>> as follows:
>>
>> @WebService (endpointInterface = "com.brad.user.IUserService")
>> public interface IUserService {
>>
>> and here is the error I receive:
>>
>> 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 javax.xml.ws.WebServiceException:
>> Attributes portName, serviceName and endpointInterface are not
>> allowed in the @WebService annotation of an SEI.
>> Caused by:
>> javax.xml.ws.WebServiceException: Attributes portName, serviceName
>> and endpointInterface are not allowed in the @WebService annotation
>> of an SEI.
>> at
>> org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(JaxWsImplementorInfo.java:279)
>>
>> at
>> org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(JaxWsImplementorInfo.java:57)
>>
>>
>> I think this probably goes back to the design pattern mentioned in my
>> previous post (annotations on the interface, none of the
>> implementation class). I'm guessing we are on the cusp of having this
>> solved.
>>
>> Thanks,
>>
>> Brad
>>
>> Brad O'Hearne wrote:
>>> Dan,
>>>
>>> I think you may have hit on the mystery here. I do not have an
>>> endpoint interface defined on my @WebService. But the rest of your
>>> answer below suggests that I may have done something else wrong in
>>> general. My annotations occur entirely in my interface, i.e.
>>>
>>> @WebService
>>> public interface IUserService ...
>>>
>>> and my implementing class has no annotations whatsoever, i.e.:
>>>
>>> public class UserService extends IUserService ...
>>>
>>> and from the past posts I have, you'll see that my beans.xml file
>>> references the implementation class, i.e.
>>>
>>> <jaxws:endpoint id="userService"
>>> serviceClass="com.brad.user.IUserService"
>>> implementor="com.brad.user.UserService"
>>> address="/UserService"
>>> bindingUri="http://apache.org/cxf/binding/http"
>>> >
>>> <jaxws:serviceFactory>
>>> <ref bean="JaxWsServiceFactoryBean" />
>>> </jaxws:serviceFactory>
>>> </jaxws:endpoint>
>>>
>>> This was the pattern used in XFire which worked, and the pattern set
>>> forth in the CXF user's guide, as in:
>>> http://cwiki.apache.org/CXF20DOC/http-binding.html
>>>
>>> But perhaps I've read it wrong. So I'll ask...
>>>
>>> 1. Should my annotations be on my implementation class or my
>>> interface class?
>>> 2. Depending on the answer to 1), if annotations are put in the
>>> interface, the endpointInterface attribute would logically always be
>>> the same name as that interface. Is this accurate?
>>> 3. Should the implementor attribute in the beans.xml jaxws:endpoint
>>> element reference the interface, or the imlementation?
>>>
>>> Thanks a ton for helping out Dan, it is sincerely appreciated. I'll
>>> throw that endpointInterface attribute on my @WebService annotation
>>> right now (which presently sits in my interface) and see what happens.
>>>
>>> Brad
>>>
>>> Dan Diephouse wrote:
>>>> 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 <br...@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 <br...@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 <br...@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)
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >
>>>>> >
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan,
I just tried the endpointInterface attribute now on my implementation
class, while leaving just the @WebService and method annotations on my
interface class, as follows:
@WebService (endpointInterface = "com.brad.user.IUserService")
public class UserService implements IUserService {...
@WebService
public interface IUserService {
As stated, I left the annotations on my one method in IUserService. I
annotated no methods in UserService. The full output / error I get is
below. The interesting thing is that these methods that the log shows
are being set up exist only in the implementation class, and are not
annotated. They do not exist in the interface class. The one method that
is annotated in my interface class, getUsers(), is never mentioned.
INFO: Creating Service {http://user.brad.com/}UserServiceService from
class com.brad.user.UserService
DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
of singleton bean 'org.apache.cxf.transport.servlet.ServletTransportFactory'
DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
of singleton bean 'org.apache.cxf.transport.servlet.ServletTransportFactory'
DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
of singleton bean 'org.apache.cxf.transport.servlet.ServletTransportFactory'
DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
of singleton bean 'org.apache.cxf.transport.servlet.ServletTransportFactory'
DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
of singleton bean 'org.apache.cxf.transport.servlet.ServletTransportFactory'
DEBUG [main] (AbstractBeanFactory.java:203) - Returning cached instance
of singleton bean 'org.apache.cxf.transport.servlet.ServletTransportFactory'
Jul 14, 2007 10:01:59 AM
org.apache.cxf.binding.http.strategy.ConventionStrategy map
INFO: Mapping method createUser to resource /eUsers and verb POST
Jul 14, 2007 10:01:59 AM
org.apache.cxf.binding.http.strategy.ConventionStrategy map
INFO: Mapping method modifyUser to resource /modifyUser and verb POST
Jul 14, 2007 10:01:59 AM
org.apache.cxf.binding.http.strategy.ConventionStrategy map
INFO: Mapping method authenticate to resource /authenticate and verb POST
Jul 14, 2007 10:01:59 AM
org.apache.cxf.binding.http.strategy.ConventionStrategy map
INFO: Mapping method deleteUser to resource /users and verb DELETE
INFO [main] (DefaultSingletonBeanRegistry.java:285) - Destroying
singletons in
org.springframework.beans.factory.support.DefaultListableBeanFactory@1248979:
defining beans
[cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.binding.http.HttpBindingFactory,org.apache.cxf.transport.servlet.ServletTransportFactory,JaxWsServiceFactoryBean,userService];
root of factory hierarchy
DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
dependent beans for bean 'JaxWsServiceFactoryBean': [userService]
DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
dependent beans for bean
'org.apache.cxf.configuration.spring.SpringBeanMap#1c2a1ed':
[org.apache.cxf.transport.ConduitInitiatorManager]
DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
dependent beans for bean
'org.apache.cxf.configuration.spring.SpringBeanMap#7ab40c':
[org.apache.cxf.transport.DestinationFactoryManager]
DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
dependent beans for bean
'org.apache.cxf.configuration.spring.SpringBeanMap#117c0eb':
[org.apache.cxf.binding.BindingFactoryManager]
DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
dependent beans for bean
'org.apache.cxf.resource.ClassLoaderResolver#19c5048':
[org.apache.cxf.resource.ResourceManager]
DEBUG [main] (DefaultSingletonBeanRegistry.java:337) - Retrieved
dependent beans for bean
'org.apache.cxf.resource.ClasspathResolver#17d2f0e':
[org.apache.cxf.resource.ResourceManager]
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)
Jul 14, 2007 10:01:59 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': 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)
Jul 14, 2007 10:01:59 AM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
Jul 14, 2007 10:01:59 AM org.a
Brad O'Hearne wrote:
> Dan,
>
> I just tried the endpointInterface attribute on my interface class, as
> follows:
>
> @WebService (endpointInterface = "com.brad.user.IUserService")
> public interface IUserService {
>
> and here is the error I receive:
>
> 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 javax.xml.ws.WebServiceException:
> Attributes portName, serviceName and endpointInterface are not allowed
> in the @WebService annotation of an SEI.
> Caused by:
> javax.xml.ws.WebServiceException: Attributes portName, serviceName and
> endpointInterface are not allowed in the @WebService annotation of an
> SEI.
> at
> org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(JaxWsImplementorInfo.java:279)
>
> at
> org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(JaxWsImplementorInfo.java:57)
>
>
> I think this probably goes back to the design pattern mentioned in my
> previous post (annotations on the interface, none of the
> implementation class). I'm guessing we are on the cusp of having this
> solved.
>
> Thanks,
>
> Brad
>
> Brad O'Hearne wrote:
>> Dan,
>>
>> I think you may have hit on the mystery here. I do not have an
>> endpoint interface defined on my @WebService. But the rest of your
>> answer below suggests that I may have done something else wrong in
>> general. My annotations occur entirely in my interface, i.e.
>>
>> @WebService
>> public interface IUserService ...
>>
>> and my implementing class has no annotations whatsoever, i.e.:
>>
>> public class UserService extends IUserService ...
>>
>> and from the past posts I have, you'll see that my beans.xml file
>> references the implementation class, i.e.
>>
>> <jaxws:endpoint id="userService"
>> serviceClass="com.brad.user.IUserService"
>> implementor="com.brad.user.UserService"
>> address="/UserService"
>> bindingUri="http://apache.org/cxf/binding/http"
>> >
>> <jaxws:serviceFactory>
>> <ref bean="JaxWsServiceFactoryBean" />
>> </jaxws:serviceFactory>
>> </jaxws:endpoint>
>>
>> This was the pattern used in XFire which worked, and the pattern set
>> forth in the CXF user's guide, as in:
>> http://cwiki.apache.org/CXF20DOC/http-binding.html
>>
>> But perhaps I've read it wrong. So I'll ask...
>>
>> 1. Should my annotations be on my implementation class or my
>> interface class?
>> 2. Depending on the answer to 1), if annotations are put in the
>> interface, the endpointInterface attribute would logically always be
>> the same name as that interface. Is this accurate?
>> 3. Should the implementor attribute in the beans.xml jaxws:endpoint
>> element reference the interface, or the imlementation?
>>
>> Thanks a ton for helping out Dan, it is sincerely appreciated. I'll
>> throw that endpointInterface attribute on my @WebService annotation
>> right now (which presently sits in my interface) and see what happens.
>>
>> Brad
>>
>> Dan Diephouse wrote:
>>> 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 <br...@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 <br...@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 <br...@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)
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>>
>>>>
>>>
>>>
>>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan,
I just tried the endpointInterface attribute on my interface class, as
follows:
@WebService (endpointInterface = "com.brad.user.IUserService")
public interface IUserService {
and here is the error I receive:
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 javax.xml.ws.WebServiceException: Attributes portName,
serviceName and endpointInterface are not allowed in the @WebService
annotation of an SEI.
Caused by:
javax.xml.ws.WebServiceException: Attributes portName, serviceName and
endpointInterface are not allowed in the @WebService annotation of an SEI.
at
org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialise(JaxWsImplementorInfo.java:279)
at
org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(JaxWsImplementorInfo.java:57)
I think this probably goes back to the design pattern mentioned in my
previous post (annotations on the interface, none of the implementation
class). I'm guessing we are on the cusp of having this solved.
Thanks,
Brad
Brad O'Hearne wrote:
> Dan,
>
> I think you may have hit on the mystery here. I do not have an
> endpoint interface defined on my @WebService. But the rest of your
> answer below suggests that I may have done something else wrong in
> general. My annotations occur entirely in my interface, i.e.
>
> @WebService
> public interface IUserService ...
>
> and my implementing class has no annotations whatsoever, i.e.:
>
> public class UserService extends IUserService ...
>
> and from the past posts I have, you'll see that my beans.xml file
> references the implementation class, i.e.
>
> <jaxws:endpoint id="userService"
> serviceClass="com.brad.user.IUserService"
> implementor="com.brad.user.UserService"
> address="/UserService"
> bindingUri="http://apache.org/cxf/binding/http"
> >
> <jaxws:serviceFactory>
> <ref bean="JaxWsServiceFactoryBean" />
> </jaxws:serviceFactory>
> </jaxws:endpoint>
>
> This was the pattern used in XFire which worked, and the pattern set
> forth in the CXF user's guide, as in:
> http://cwiki.apache.org/CXF20DOC/http-binding.html
>
> But perhaps I've read it wrong. So I'll ask...
>
> 1. Should my annotations be on my implementation class or my interface
> class?
> 2. Depending on the answer to 1), if annotations are put in the
> interface, the endpointInterface attribute would logically always be
> the same name as that interface. Is this accurate?
> 3. Should the implementor attribute in the beans.xml jaxws:endpoint
> element reference the interface, or the imlementation?
>
> Thanks a ton for helping out Dan, it is sincerely appreciated. I'll
> throw that endpointInterface attribute on my @WebService annotation
> right now (which presently sits in my interface) and see what happens.
>
> Brad
>
> Dan Diephouse wrote:
>> 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 <br...@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 <br...@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 <br...@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)
>>> >>
>>> >>
>>> >>
>>> >>
>>> >
>>> >
>>>
>>>
>>
>>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan,
I think you may have hit on the mystery here. I do not have an endpoint
interface defined on my @WebService. But the rest of your answer below
suggests that I may have done something else wrong in general. My
annotations occur entirely in my interface, i.e.
@WebService
public interface IUserService ...
and my implementing class has no annotations whatsoever, i.e.:
public class UserService extends IUserService ...
and from the past posts I have, you'll see that my beans.xml file
references the implementation class, i.e.
<jaxws:endpoint id="userService"
serviceClass="com.brad.user.IUserService"
implementor="com.brad.user.UserService"
address="/UserService"
bindingUri="http://apache.org/cxf/binding/http"
>
<jaxws:serviceFactory>
<ref bean="JaxWsServiceFactoryBean" />
</jaxws:serviceFactory>
</jaxws:endpoint>
This was the pattern used in XFire which worked, and the pattern set
forth in the CXF user's guide, as in:
http://cwiki.apache.org/CXF20DOC/http-binding.html
But perhaps I've read it wrong. So I'll ask...
1. Should my annotations be on my implementation class or my interface
class?
2. Depending on the answer to 1), if annotations are put in the
interface, the endpointInterface attribute would logically always be the
same name as that interface. Is this accurate?
3. Should the implementor attribute in the beans.xml jaxws:endpoint
element reference the interface, or the imlementation?
Thanks a ton for helping out Dan, it is sincerely appreciated. I'll
throw that endpointInterface attribute on my @WebService annotation
right now (which presently sits in my interface) and see what happens.
Brad
Dan Diephouse wrote:
> 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 <br...@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 <br...@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 <br...@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)
>> >>
>> >>
>> >>
>> >>
>> >
>> >
>>
>>
>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Dan Diephouse <da...@envoisolutions.com>.
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 <br...@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 <br...@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 <br...@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
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
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 <br...@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 <br...@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)
>>
>>
>>
>>
>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan,
Regarding your advice:
<snip>
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"/>
</snip>
Apparently, adding a serviceClass attribute isn't legal. I added this as
such to my beans.xml file:
<jaxws:endpoint id="userService"
serviceClass="com.brad.user.IUserService"
implementor="com.brad.user.UserService"
address="/UserService"
bindingUri="http://apache.org/cxf/binding/http"
>
<jaxws:serviceFactory>
<ref bean="JaxWsServiceFactoryBean" />
</jaxws:serviceFactory>
</jaxws:endpoint>
And here's the error that I received when the server tried to load the
webapp:
ERROR [main] (ContextLoader.java:203) - Context initialization failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
Line 26 in XML document from ServletContext resource
[/WEB-INF/beans.xml] is invalid; nested exception is
org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute
'serviceClass' is not allowed to appear in element 'jaxws:endpoint'.
Caused by:
org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute
'serviceClass' is not allowed to appear in element 'jaxws:endpoint'.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:172)
Brad
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 <br...@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 <br...@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)
>>
>>
>>
>>
>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Brad O'Hearne <br...@neurofire.com>.
Dan,
I appreciate the reply, but I think you may have the wrong idea. I'm
very patient, but this isn't a function of me, or something personal. It
is the function of a deadline which doesn't really consider my own
personal feelings in the matter, another API which presented an issue
which necessitated the need to get out of WSDL-bound soap web services
immediately, the fact that very little in this regard is documented in
CXF, and the exception thrown gives no useful information to a user.
With regards to the timing of my post and your read on my patience --
I've basically burned the better part of 2 days on trying to configure
CXF / debug / scour Google / read API source / read the User's guide for
direction on what is a standard advertised feature of the API, which I
cannot find. The reason I'm asking the question with urgency is so that
I *can* invest our project in CXF long term, not so I can get away from
it. And I passed this urgency onto the list so that anyone with an
answer would understand this urgency, realize its the difference between
having another product built on the API, or not using it at all, and
reply soon, since as you pointed out, it was the end of the working
week, and might otherwise wait until Monday. If it were up to me, I'd be
fine to wait a week for an answer. But it isn't up to me. It isn't some
kind of personal affront. Please don't take it that way.
I have tried three different forms of the @WebService attribute. I have
tried just:
@WebService
public interface ....
then I've tried adding a namespace:
@WebService (targetNamespace = "service/brad/com")
public interface ....
and then I've tried adding a service name
@WebService (serviceName = "UserService",
targetNamespace = "service/brad/com")
public interface ....
All three fail identically.
Thanks for your help. It is greatly appreciated. And again, my purpose
was not to be impatient. I was faced with a choice of putting out an
urgent call for help, and if things went well, getting to be a daily
user of the API, or basically punting immediately. I opted for the
former, as I want to use CXF, as it appears you guys have put together a
great product.
Cheers,
Brad
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 <br...@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 <br...@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)
>>
>>
>>
>>
>
>
Re: [Fwd: Re: Exception loading CXF service in Spring with HTTP Binding]
Posted by Dan Diephouse <da...@envoisolutions.com>.
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 <br...@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 <br...@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