I have a service proxy set up and I am able to view the wsdl, but when I try to test it using soapUI it almost seems to timeout. I’ll post the mule config, and both the soapUI log, and mule studio log. When I hit the wdsl normally without a proxy, it is a quick response.
Google results don’t seem to produce much, so any guidance on the source, soapUI or Mule, and the issue would be helpful.
Mule Flow
<flow name="UPCFlow1" doc:name="UPCFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="4040" path="upc" doc:name="HTTP" contentType="text/xml" mimeType="text/xml"/>
<cxf:proxy-service namespace="http://searchupc.com/" service="UPCSearch" payload="envelope" wsdlLocation="http://www.searchupc.com/service/UPCSearch.asmx?WSDL" doc:name="SOAP" enableMuleSoapHeaders="false"/>
<http:outbound-endpoint address="http://www.searchupc.com/"
exchange-pattern="request-response" doc:name="HTTP" contentType="text/xml" mimeType="text/xml"/>
</flow>
soapUI error log
Fri Oct 12 13:32:08 CDT 2012:ERROR:java.net.SocketException: socket closed
java.net.SocketException: socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:149)
at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:110)
at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:264)
at org.apache.http.impl.conn.LoggingSessionInputBuffer.readLine(LoggingSessionInputBuffer.java:115)
at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:246)
at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:204)
at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:167)
at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:196)
at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:155)
at org.apache.http.util.EntityUtils.toByteArray(EntityUtils.java:100)
at org.apache.http.entity.BufferedHttpEntity.<init>(BufferedHttpEntity.java:60)
at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpMethodSupport.getResponseBody(HttpMethodSupport.java:281)
at com.eviware.soapui.impl.wsdl.submit.transports.http.support.methods.ExtendedPostMethod.getResponseBody(ExtendedPostMethod.java:128)
at com.eviware.soapui.impl.wsdl.submit.transports.http.SinglePartHttpResponse.<init>(SinglePartHttpResponse.java:49)
at com.eviware.soapui.impl.wsdl.submit.transports.http.support.attachments.WsdlSinglePartHttpResponse.<init>(WsdlSinglePartHttpResponse.java:36)
at com.eviware.soapui.impl.wsdl.submit.filters.HttpPackagingResponseFilter.wsdlRequest(HttpPackagingResponseFilter.java:71)
at com.eviware.soapui.impl.wsdl.submit.filters.HttpPackagingResponseFilter.afterAbstractHttpResponse(HttpPackagingResponseFilter.java:48)
at com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.afterRequest(AbstractRequestFilter.java:64)
at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:297)
at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:123)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Eclipse Console
INFO 2012-10-12 13:31:06,229 [[upc].connector.http.mule.default.receiver.02] org.mule.transport.service.DefaultTransportServiceDescriptor: Loading default outbound transformer: org.mule.transport.http.transformers.ObjectToHttpClientMethodRequest
INFO 2012-10-12 13:31:06,234 [[upc].connector.http.mule.default.receiver.02] org.mule.transport.service.DefaultTransportServiceDescriptor: Loading default response transformer: org.mule.transport.http.transformers.MuleMessageToHttpResponse
INFO 2012-10-12 13:31:06,234 [[upc].connector.http.mule.default.receiver.02] org.mule.transport.service.DefaultTransportServiceDescriptor: Loading default outbound transformer: org.mule.transport.http.transformers.ObjectToHttpClientMethodRequest
INFO 2012-10-12 13:31:06,235 [[upc].connector.http.mule.default.receiver.02] org.mule.lifecycle.AbstractLifecycleManager: Initialising: 'connector.http.mule.default.dispatcher.2040380475'. Object is: HttpClientMessageDispatcher
INFO 2012-10-12 13:31:06,239 [[upc].connector.http.mule.default.receiver.02] org.mule.lifecycle.AbstractLifecycleManager: Starting: 'connector.http.mule.default.dispatcher.2040380475'. Object is: HttpClientMessageDispatcher
WARN 2012-10-12 13:33:05,590 [[upc].connector.http.mule.default.receiver.02] org.apache.cxf.phase.PhaseInterceptorChain: Interceptor for {http://searchupc.com/}UPCSearch has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: COULD_NOT_READ_XML_STREAM
at org.apache.cxf.databinding.stax.StaxDataBinding$XMLStreamDataWriter.write(StaxDataBinding.java:133)
at org.apache.cxf.databinding.stax.StaxDataBinding$XMLStreamDataWriter.write(StaxDataBinding.java:117)
at org.apache.cxf.databinding.stax.StaxDataBinding$XMLStreamDataWriter.write(StaxDataBinding.java:113)
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:119)
at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:232)
at org.mule.module.cxf.CxfInboundMessageProcessor$1.write(CxfInboundMessageProcessor.java:373)
at org.mule.transport.http.HttpServerConnection.writeResponse(HttpServerConnection.java:315)
at org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:164)
at org.mule.work.WorkerContext.run(WorkerContext.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.ctc.wstx.exc.WstxParsingException: Duplicate attribute 'name'.
at [row,col {unknown-source}]: [29,468]
at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:612)
at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:485)
at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:470)
at com.ctc.wstx.sr.AttributeCollector.throwDupAttr(AttributeCollector.java:522)
at com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:248)
at com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:351)
at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2923)
at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2783)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1048)
at org.mule.module.xml.stax.DelegateXMLStreamReader.next(DelegateXMLStreamReader.java:237)
at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:551)
at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:513)
at org.apache.cxf.databinding.stax.StaxDataBinding$XMLStreamDataWriter.write(StaxDataBinding.java:124)
... 13 more
ERROR 2012-10-12 13:33:05,595 [[upc].connector.http.mule.default.receiver.02] org.mule.exception.DefaultSystemExceptionStrategy: Caught exception in Exception Strategy: Software caused connection abort: socket write error
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.DataOutputStream.write(Unknown Source)
at org.apache.commons.httpclient.ChunkedOutputStream.writeClosingChunk(ChunkedOutputStream.java:130)
at org.apache.commons.httpclient.ChunkedOutputStream.finish(ChunkedOutputStream.java:144)
at org.mule.transport.http.HttpServerConnection.writeResponse(HttpServerConnection.java:319)
at org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:164)
at org.mule.work.WorkerContext.run(WorkerContext.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
ERROR 2012-10-12 13:33:05,602 [[upc].connector.http.mule.default.receiver.02] org.mule.exception.DefaultSystemExceptionStrategy: Caught exception in Exception Strategy: Software caused connection abort: socket write error
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.DataOutputStream.write(Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
at sun.nio.cs.StreamEncoder.flush(Unknown Source)
at java.io.OutputStreamWriter.flush(Unknown Source)
at java.io.BufferedWriter.flush(Unknown Source)
at java.io.FilterWriter.flush(Unknown Source)
at org.mule.transport.http.ResponseWriter.flush(ResponseWriter.java:69)
at org.mule.transport.http.HttpServerConnection.writeResponse(HttpServerConnection.java:300)
at org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:201)
at org.mule.work.WorkerContext.run(WorkerContext.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
There were several issues:
cxf:proxy-clientelement,Below is the fixed example for SOAP 1.1. Note that I have placed the CXF elements inside the endpoints: this is not a requirement (they could be directly in the flow), but just the usual way of placing them in the configuration.
And for SOAP 1.2: