cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dan Diephouse" <...@envoisolutions.com>
Subject Re: Cannot run more than one RESTful service
Date Tue, 17 Jul 2007 17:39:25 GMT
Hi Brad,

The JaxWsServiceFactoryBean is not resusable across various services. Try
embedding it inside your service definition:

<property name="serviceFactory">
  <bean class="....JaxWsServiceFactory">
...
</bean>
</property>

Let me know if that helps!

- Dan

On 7/16/07, Brad O'Hearne <brado@neurofire.com> wrote:
>
> Hello,
>
> I am having problems running more than one RESTful service, loaded via
> Spring. Without going into the nasties of how this was determined, with
> the help of a developer, it was determined that the present means of
> configuring a RESTful service with Spring was as follows (in my
> beans.xml file):
>
>    <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 service, when configured as the only service in my beans.xml file,
> loads and is invoked successfully. But when I add 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 second service produce output in the server logs like
> the first one does. 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. When I
> try to invoke *either* service, CXF crashes. The stack trace is below.
> Does anyone have any idea how to configure and successfully run more
> than one RESTful service using Spring? Thanks in advance for help!!!
>
> Brad
>
> Stack trace, when trying to invoke the authenticate method on
> IUserService, that is known to work, with data known to work, when 2
> services are configured (this does not happen when only one service has
> been configured).
>
> 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
>
>


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

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