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
