On Thursday 17 June 2010 10:07:35 am Sean Patrick Floyd wrote:
> Daniel, thanks for your help.
> 
> I'll try to post a Sample project in an hour or so.
> [
> Re Versions, I think I am current.

Yep.  That's the latest CXF.

Dan


> 
> Here's the output of
> mvn dependency:tree -Dincludes=org.apache.cxf
> 
> Client Project:
> 
>  +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.2.9:compile
> 
>  |  +- org.apache.cxf:cxf-api:jar:2.2.9:compile
>  |  
>  |  |  +- org.apache.cxf:cxf-common-utilities:jar:2.2.9:compile
>  |  |  \- org.apache.cxf:cxf-common-schemas:jar:2.2.9:compile
>  |  
>  |  +- org.apache.cxf:cxf-rt-core:jar:2.2.9:compile
>  |  \- org.apache.cxf:cxf-rt-bindings-soap:jar:2.2.9:compile
>  |  
>  |     +- org.apache.cxf:cxf-tools-common:jar:2.2.9:compile
>  |     \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.2.9:compile
> 
>  +- org.apache.cxf:cxf-rt-transports-http:jar:2.2.9:compile
>  +- org.apache.cxf:cxf-rt-databinding-aegis:jar:2.2.9:compile
>  \- org.apache.cxf:cxf-rt-bindings-http:jar:2.2.9:compile
>     +- org.apache.cxf:cxf-rt-bindings-xml:jar:2.2.9:compile
>     \- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.2.9:compile
>        \- org.apache.cxf:cxf-rt-ws-addr:jar:2.2.9:compile
> 
> Server Project:
> 
> +- org.apache.cxf:cxf-rt-databinding-aegis:jar:2.2.9:compile
> 
> |  +- org.apache.cxf:cxf-api:jar:2.2.9:compile
> |  
> |  |  +- org.apache.cxf:cxf-common-utilities:jar:2.2.9:compile
> |  |  \- org.apache.cxf:cxf-common-schemas:jar:2.2.9:compile
> |  
> |  +- org.apache.cxf:cxf-rt-core:jar:2.2.9:compile
> |  \- org.apache.cxf:cxf-rt-frontend-simple:jar:2.2.9:compile
> |  
> |     \- org.apache.cxf:cxf-rt-bindings-soap:jar:2.2.9:compile
> |     
> |        \- org.apache.cxf:cxf-tools-common:jar:2.2.9:compile
> 
> +- org.apache.cxf:cxf-rt-transports-http:jar:2.2.9:compile
> +- org.apache.cxf:cxf-rt-bindings-http:jar:2.2.9:compile
> 
> |  +- org.apache.cxf:cxf-rt-bindings-xml:jar:2.2.9:compile
> |  
> |  |  \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.2.9:compile
> |  
> |  \- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.2.9:compile
> |  
> |     \- org.apache.cxf:cxf-rt-ws-addr:jar:2.2.9:compile
> 
> \- org.apache.cxf:cxf-rt-transports-http-jetty:jar:2.2.9:provided
> 
> > Hello,
> > 
> > 
> > 
> > I am a somewhat experienced Java / Spring developer but new to CXF. I am
> > trying to hook up a client and server using the simple frontend using
> 
> these
> 
> > spring configs:
> > 
> > 
> > 
> > SERVER:
> > 
> > 
> > 
> > <beans xmlns="http://www.springframework.org/schema/beans";
> > 
> >       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > 
> > xmlns:simple="http://cxf.apache.org/simple";
> > 
> >       xmlns:soap="http://cxf.apache.org/bindings/soap";
> > 
> > xmlns:context="http://www.springframework.org/schema/context";
> > 
> >       xmlns:cs="http://[www.mycompany.com]/coupon/service";
> >       
> >       xsi:schemaLocation="http://www.springframework.org/schema/beans
> > 
> > http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
> > 
> >             http://cxf.apache.org/bindings/soap
> > 
> > http://cxf.apache.org/schemas/configuration/soap.xsd
> > 
> >             http://cxf.apache.org/simple
> > 
> > http://cxf.apache.org/schemas/simple.xsd
> > 
> >             http://www.springframework.org/schema/context
> > 
> > http://www.springframework.org/schema/context/spring-context-3.0.xsd";
> > 
> >             default-autowire="byType"
> >       
> >       <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.xml" />
> >       
> >       <import
> > 
> > resource="classpath:META-INF/cxf/cxf-extension-http-binding.xml" />
> > 
> >       <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> >       
> >       <import resource="classpath*:persistenceContext.xml" /> <!-my
> 
> service
> 
> > implementation -->
> > 
> >       <!--  serviceClass points to an interface -->
> >       
> >       <simple:server id="server" serviceBean="couponService"
> >       
> >             serviceClass="[com.mycompany].MyServiceInterface"
> >             
> >             bindingId="http://apache.org/cxf/binding/http";
> >             
> >             address="/${wsdl.path}"
> >             
> >             serviceName="cs:couponService"
> >             
> >             endpointName="cs:couponServicePort"
> >             
> >             
> >             
> >             <simple:dataBinding>
> >             
> >                   <bean
> > 
> > class="org.apache.cxf.aegis.databinding.AegisDatabinding" />
> > 
> >             </simple:dataBinding>
> >             
> >             <simple:binding>
> >             
> >                   <soap:soapBinding version="1.2" mtomEnabled="true" />
> >             
> >             </simple:binding>
> >       
> >       </simple:server>
> >       
> >       
> >       
> >       <context:property-placeholder
> 
> location="classpath:service.properties"
> 
> > />
> > 
> > </beans>
> > 
> > 
> > 
> > CLIENT:
> > 
> > 
> > 
> > <beans xmlns="http://www.springframework.org/schema/beans";
> > 
> >       xmlns:simple="http://cxf.apache.org/simple";
> > 
> > xmlns:soap="http://cxf.apache.org/bindings/soap";
> > 
> >       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > 
> > xmlns:aop="http://www.springframework.org/schema/aop";
> > 
> >       xmlns:context="http://www.springframework.org/schema/context";
> >       
> >       xmlns:oxm=http://www.springframework.org/schema/oxm
> >       
> >       xmlns:cs="http://[www.mycompany.com]/coupon/service";
> >       
> >       xsi:schemaLocation="http://www.springframework.org/schema/beans
> > 
> > http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
> > 
> >             http://cxf.apache.org/bindings/soap
> > 
> > http://cxf.apache.org/schemas/configuration/soap.xsd
> > 
> >             http://cxf.apache.org/simple
> > 
> > http://cxf.apache.org/schemas/simple.xsd
> > 
> >             http://www.springframework.org/schema/aop
> > 
> > http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
> > 
> >             http://www.springframework.org/schema/context
> > 
> > http://www.springframework.org/schema/context/spring-context-3.0.xsd
> > 
> >             http://www.springframework.org/schema/oxm
> > 
> > http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd";
> > 
> >             default-autowire="byType"
> >       
> >       <import resource="classpath:META-INF/cxf/cxf.xml" />
> >       
> >       <import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
> >       
> >       <import
> > 
> > resource="classpath:META-INF/cxf/cxf-extension-http-binding.xml" />
> > 
> >       <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
> >       
> >       
> >       
> >       
> >       
> >       <simple:client id="couponService" wsdlLocation="${wsdl.url}?wsdl"
> >       
> >             serviceName="cs:couponService"
> >             
> >             endpointName="cs:couponServicePort"
> >             
> >             transportId="http://schemas.xmlsoap.org/soap/http";
> >             
> >             address="${wsdl.url}"
> >             
> >             bindingId="http://apache.org/cxf/binding/http";
> >             
> >             serviceClass="[com.mycompany].MyServiceInterface">
> >             
> >             <simple:dataBinding>
> >             
> >                   <bean
> > 
> > class="org.apache.cxf.aegis.databinding.AegisDatabinding" />
> > 
> >             </simple:dataBinding>
> >             
> >             <simple:binding>
> >             
> >                   <soap:soapBinding mtomEnabled="true" version="1.2" />
> >             
> >             </simple:binding>
> >       
> >       </simple:client>
> >       
> >       
> >       
> >       <context:property-placeholder
> 
> location="classpath:service.properties"
> 
> > />
> > 
> > 
> > 
> > 
> > 
> > </beans>
> > 
> > 
> > 
> > On the client side, I inject the generated service into my web
> > application (I am using wicket but that should be irrelevant) and when I
> > call service methods on it I get an IllegalStateException from
> > java.net.HttpURLConnection saying the connection is already open. Here's
> > the stack trace:
> > 
> > 
> > 
> > java.lang.IllegalStateException: IllegalStateException invoking
> > http://localhost:9999/services/coupon: Already connected
> > 
> >       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > 
> > Method)
> > 
> >       at
> 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcce
> 
> > s sorImpl.java:39)
> > 
> >       at
> 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstru
> 
> > c torAccessorImpl.java:27)
> > 
> >       at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> >       
> >       at
> 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(
> 
> > H TTPConduit.java:2058)
> > 
> >       at
> 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPCon
> 
> > d uit.java:2048)
> > 
> >       at
> > 
> > org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> > 
> >       at
> > 
> > org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)
> > 
> >       at
> 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInte
> 
> > r ceptor.handleMessage(MessageSenderInterceptor.java:62)
> > 
> >       at
> 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
> 
> > n .java:243)
> > 
> >       at
> 
> org.apache.cxf.binding.http.interceptor.DatabindingOutSetupInterceptor.hand
> 
> > l eMessage(DatabindingOutSetupInterceptor.java:91)
> > 
> >       at
> 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
> 
> > n .java:243)
> > 
> >       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:487)
> >       
> >       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
> >       
> >       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
> >       
> >       at
> > 
> > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> > 
> >       at org.apache.cxf.frontend.ClientProxy.invoke(ClientProxy.java:68)
> >       
> >       at $Proxy30.createIndividualUserCouponsJob(Unknown Source)
> >       
> >       at
> 
> [com.mycompany].coupons.web.app.dummycontent.DummyContentInitializer.addSom
> 
> > e IndividualCoupons(DummyContentInitializer.java:84)
> > 
> >       at
> 
> [com.mycompany].coupons.web.app.dummycontent.DummyContentInitializer.addSom
> 
> > e Coupons(DummyContentInitializer.java:68)
> > 
> >       at
> 
> [com.mycompany].coupons.web.app.dummycontent.DummyContentInitializer.init(D
> 
> > u mmyContentInitializer.java:50)
> > 
> >       at
> > 
> > org.apache.wicket.Application.callInitializers(Application.java:843)
> > 
> >       at
> > 
> > org.apache.wicket.Application.initializeComponents(Application.java:678)
> > 
> >       at
> > 
> > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:725)
> > 
> >       at
> > 
> > org.apache.wicket.protocol.http.WicketServlet.init(WicketServlet.java:219
> > )
> > 
> >       at javax.servlet.GenericServlet.init(GenericServlet.java:241)
> >       
> >       at
> 
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> 
> >       at
> > 
> > org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> > 
> >       at
> > 
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > 
> >       at
> 
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:617
> 
> > )
> > 
> >       at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> >       
> >       at
> 
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218
> 
> > )
> > 
> >       at
> > 
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
> > 
> >       at
> > 
> > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
> > 
> >       at
> > 
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > 
> >       at
> > 
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> > 
> >       at org.mortbay.jetty.Server.doStart(Server.java:220)
> >       
> >       at
> > 
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> > 
> >       at [com.mycompany].coupons.web.test.Start.main(Start.java:45)
> > 
> > Caused by: java.lang.IllegalStateException: Already connected
> > 
> >       at
> 
> java.net.HttpURLConnection.setFixedLengthStreamingMode(HttpURLConnection.ja
> 
> > v a:103)
> > 
> >       at
> 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.thresholdNotR
> 
> > e ached(HTTPConduit.java:1889)
> > 
> >       at
> 
> org.apache.cxf.io.AbstractThresholdOutputStream.close(AbstractThresholdOutp
> 
> > u tStream.java:99)
> > 
> >       at
> 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPCon
> 
> > d uit.java:1980)
> > 
> > 
> > 
> > This happens the first time a service call is made, and the only
> > URLConnection that is opened before that is that of the wsdl (I put a
> > breakpoint in the constructor of HttpURLConnection).
> > 
> > 
> > 
> > I have searched the web for similar problems, but all I found was a bug
> > using rest that has already been fixed.
> > 
> > I am trying to use the simple frontend, as my service is not annotated
> 
> with
> 
> > jax-ws annotations and I would like to keep it that way.
> > 
> > 
> > 
> > Can someone help? Thanks in advance.
> > 
> > 
> > 
> > Sean

-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog

Reply via email to