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.
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
--
MostlyMagic.com - Sean Patrick Floyd
IT-Consultant und Senior Java Developer
Mobile: +49 170 4746496
Mail: [email protected]
Web: www.mostlymagic.com
XING: https://www.xing.com/profile/SeanPatrick_Floyd
GULP: http://www.gulp.de/Profil/mostlymagic.html
-----Original Message-----
From: Daniel Kulp [mailto:[email protected]]
Sent: Donnerstag, 17. Juni 2010 15:56
To: [email protected]
Cc: Sean Patrick Floyd
Subject: Re: CXF problem: IllegalStateException (Already connected)
I've never really seen this error before with CXF. Is there any way you
can
create a small sample that shows it?
Also, what version of CXF and what version of the JDK? If not using the
latest of each, definitely try updating.
Dan
On Thursday 17 June 2010 6:21:33 am Sean Patrick Floyd wrote:
> 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