JIRA

  • Log In Access more options
    • Online Help
    • GreenHopper Help
    • Agile Answers
    • Use Agile By Default
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What’s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • Agile Access more options (Alt+g)
  • Create Issue
  • Mule
  • MULE-4109

Problem with concurrent CXF requests

  • Agile Board
  • More Actions
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Cannot Reproduce
  • Affects Version/s: 2.0.1
  • Fix Version/s: 2.1.2
  • Component/s: Modules: CXF, Transport: File
  • Labels:
    None
  • Environment:

    OS: Windows XP Home Edition. JDK Version: 1.6.0_06.
    Servlet Container (hosting the web services): Tomcat 6.0_16

  • User impact:
    High
  • Configuration:
    Hide

    <?xml version="1.0" encoding="UTF-8"?>
    <mule xmlns="http://www.mulesource.org/schema/mule/core/2.1"
    xmlns:file="http://www.mulesource.org/schema/mule/file/2.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.1"
    xmlns:xm="http://www.mulesource.org/schema/mule/xml/2.1"
    xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.1"
    xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.1"
    xsi:schemaLocation="
    http://www.mulesource.org/schema/mule/core/2.1 http://www.mulesource.org/schema/mule/core/2.1/mule.xsd
    http://www.mulesource.org/schema/mule/file/2.1 http://www.mulesource.org/schema/mule/file/2.1/mule-file.xsd
    http://www.mulesource.org/schema/mule/cxf/2.1 http://www.mulesource.org/schema/mule/cxf/2.1/mule-cxf.xsd
    http://www.mulesource.org/schema/mule/xml/2.1 http://www.mulesource.org/schema/mule/xml/2.1/mule-xml.xsd
    http://www.mulesource.org/schema/mule/stdio/2.1 http://www.mulesource.org/schema/mule/stdio/2.1/mule-stdio.xsd
    http://www.mulesource.org/schema/mule/vm/2.1 http://www.mulesource.org/schema/mule/vm/2.1/mule-vm.xsd">

    <file:connector name="MediaFileConnector" autoDelete="true" streaming="false" fileAge="40000" pollingFrequency="4000" outputPattern="#[ORIGINALNAME]" moveToDirectory="outbox">
    <service-overrides messageAdapter="org.mule.transport.file.FileMessageAdapter" />
    </file:connector>
    <stdio:connector name="NormalStdioConnector" />
    <custom-transformer class="mediaworkflow.transformers.importer.FileStreamToFileNameString" name="myTrans"/>

    <model name="FileExample">
    <service name="FileReceiver">
    <inbound>
    <file:inbound-endpoint path="inbox" fileAge="40000" connector-ref="MediaFileConnector"/>
    </inbound>
    <outbound>
    <chaining-router>
    <vm:outbound-endpoint path="media.pipeline.importer">
    <transformer ref="myTrans"/>
    </vm:outbound-endpoint>
    </chaining-router>
    </outbound>
    </service>
    <service name="MediaImportAndRepo">
    <inbound>
    <vm:inbound-endpoint synchronous="true" path="media.pipeline.importer"/>
    </inbound>
    <outbound>
    <chaining-router>
    <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.importer.engine/engine/importer"
    clientClass="mediaworkflow.engine.importer.stub.CImporterService"
    wsdlLocation="http://localhost:8080/mediaworkflow.importer.engine/engine/importer?wsdl"
    operation="doImport" wsdlPort="ImporterPort" />
    <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.repository-asset.engine/engine/repository/asset"
    clientClass="mediaworkflow.engine.repository.asset.stub.CAssetRepository"
    wsdlLocation="http://localhost:8080/mediaworkflow.repository-asset.engine/engine/repository/asset?wsdl"
    operation="putAssetsData" wsdlPort="AssetRepositoryPort" />
    <vm:outbound-endpoint path="media.pipeline.splitter"/>
    </chaining-router>
    </outbound>
    </service>
    <service name="Splitter">
    <inbound>
    <vm:inbound-endpoint path="media.pipeline.splitter"/>
    </inbound>
    <outbound>
    <list-message-splitter-router>
    <vm:outbound-endpoint path="media.pipeline.analyzer"/>
    <payload-type-filter expectedType="java.util.List"/>
    </list-message-splitter-router>
    </outbound>
    </service>
    <service name="AnalyzerAndIndexer">
    <inbound>
    <vm:inbound-endpoint path="media.pipeline.analyzer"/>
    </inbound>
    <outbound>
    <chaining-router>
    <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.analyzer.engine/engine/analyzer"
    clientClass="mediaworkflow.engine.analyzer.stub.CArticleAnalyzerService"
    wsdlLocation="http://localhost:8080/mediaworkflow.analyzer.engine/engine/analyzer?wsdl"
    operation="doAnalyze" wsdlPort="AnalyzerPort" />
    <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.repository-metadata/engine/repository/metadata"
    clientClass="mediaworkflow.engine.repository.metadata.stub.CMetaDataRepository"
    wsdlLocation="http://localhost:8080/mediaworkflow.repository-metadata/engine/repository/metadata?wsdl"
    operation="addMetaDataSet" wsdlPort="MetaDataRepositoryPort" />
    <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.indexer.engine/engine/indexer"
    clientClass="mediaworkflow.engine.indexer.stub.CIndexerService"
    wsdlLocation="http://localhost:8080/mediaworkflow.indexer.engine/engine/indexer?wsdl"
    operation="indexDocument" wsdlPort="IndexerPort" />
    <stdio:outbound-endpoint system="OUT" connector-ref="NormalStdioConnector"/>
    </chaining-router>
    </outbound>
    </service>
    </model>
    </mule>

    Show
    <?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesource.org/schema/mule/core/2.1" xmlns:file="http://www.mulesource.org/schema/mule/file/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.1" xmlns:xm="http://www.mulesource.org/schema/mule/xml/2.1" xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.1" xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.1" xsi:schemaLocation=" http://www.mulesource.org/schema/mule/core/2.1 http://www.mulesource.org/schema/mule/core/2.1/mule.xsd http://www.mulesource.org/schema/mule/file/2.1 http://www.mulesource.org/schema/mule/file/2.1/mule-file.xsd http://www.mulesource.org/schema/mule/cxf/2.1 http://www.mulesource.org/schema/mule/cxf/2.1/mule-cxf.xsd http://www.mulesource.org/schema/mule/xml/2.1 http://www.mulesource.org/schema/mule/xml/2.1/mule-xml.xsd http://www.mulesource.org/schema/mule/stdio/2.1 http://www.mulesource.org/schema/mule/stdio/2.1/mule-stdio.xsd http://www.mulesource.org/schema/mule/vm/2.1 http://www.mulesource.org/schema/mule/vm/2.1/mule-vm.xsd"> <file:connector name="MediaFileConnector" autoDelete="true" streaming="false" fileAge="40000" pollingFrequency="4000" outputPattern="#[ORIGINALNAME]" moveToDirectory="outbox"> <service-overrides messageAdapter="org.mule.transport.file.FileMessageAdapter" /> </file:connector> <stdio:connector name="NormalStdioConnector" /> <custom-transformer class="mediaworkflow.transformers.importer.FileStreamToFileNameString" name="myTrans"/> <model name="FileExample"> <service name="FileReceiver"> <inbound> <file:inbound-endpoint path="inbox" fileAge="40000" connector-ref="MediaFileConnector"/> </inbound> <outbound> <chaining-router> <vm:outbound-endpoint path="media.pipeline.importer"> <transformer ref="myTrans"/> </vm:outbound-endpoint> </chaining-router> </outbound> </service> <service name="MediaImportAndRepo"> <inbound> <vm:inbound-endpoint synchronous="true" path="media.pipeline.importer"/> </inbound> <outbound> <chaining-router> <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.importer.engine/engine/importer" clientClass="mediaworkflow.engine.importer.stub.CImporterService" wsdlLocation="http://localhost:8080/mediaworkflow.importer.engine/engine/importer?wsdl" operation="doImport" wsdlPort="ImporterPort" /> <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.repository-asset.engine/engine/repository/asset" clientClass="mediaworkflow.engine.repository.asset.stub.CAssetRepository" wsdlLocation="http://localhost:8080/mediaworkflow.repository-asset.engine/engine/repository/asset?wsdl" operation="putAssetsData" wsdlPort="AssetRepositoryPort" /> <vm:outbound-endpoint path="media.pipeline.splitter"/> </chaining-router> </outbound> </service> <service name="Splitter"> <inbound> <vm:inbound-endpoint path="media.pipeline.splitter"/> </inbound> <outbound> <list-message-splitter-router> <vm:outbound-endpoint path="media.pipeline.analyzer"/> <payload-type-filter expectedType="java.util.List"/> </list-message-splitter-router> </outbound> </service> <service name="AnalyzerAndIndexer"> <inbound> <vm:inbound-endpoint path="media.pipeline.analyzer"/> </inbound> <outbound> <chaining-router> <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.analyzer.engine/engine/analyzer" clientClass="mediaworkflow.engine.analyzer.stub.CArticleAnalyzerService" wsdlLocation="http://localhost:8080/mediaworkflow.analyzer.engine/engine/analyzer?wsdl" operation="doAnalyze" wsdlPort="AnalyzerPort" /> <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.repository-metadata/engine/repository/metadata" clientClass="mediaworkflow.engine.repository.metadata.stub.CMetaDataRepository" wsdlLocation="http://localhost:8080/mediaworkflow.repository-metadata/engine/repository/metadata?wsdl" operation="addMetaDataSet" wsdlPort="MetaDataRepositoryPort" /> <cxf:outbound-endpoint synchronous="true" remoteSync="true" address="http://localhost:8080/mediaworkflow.indexer.engine/engine/indexer" clientClass="mediaworkflow.engine.indexer.stub.CIndexerService" wsdlLocation="http://localhost:8080/mediaworkflow.indexer.engine/engine/indexer?wsdl" operation="indexDocument" wsdlPort="IndexerPort" /> <stdio:outbound-endpoint system="OUT" connector-ref="NormalStdioConnector"/> </chaining-router> </outbound> </service> </model> </mule>
  • Log Output:
    Hide
    INFO: Interceptor has thrown exception, unwinding now
    org.apache.cxf.interceptor.Fault: Could not send message to Mule.
    at org.mule.transport.cxf.transport.MuleUniversalConduit$1.handleMessage(MuleUniversalConduit.java:146)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178)
    at $Proxy43.putAssetsData(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.mule.transport.cxf.CxfMessageDispatcher.doSendWithProxy(CxfMessageDispatcher.java:154)
    at org.mule.transport.cxf.CxfMessageDispatcher.doSend(CxfMessageDispatcher.java:132)
    at org.mule.transport.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:168)
    at org.mule.transport.AbstractConnector.send(AbstractConnector.java:1929)
    at org.mule.endpoint.DefaultOutboundEndpoint.send(DefaultOutboundEndpoint.java:77)
    at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:327)
    at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:213)
    at org.mule.routing.outbound.AbstractOutboundRouter$2.doInTransaction(AbstractOutboundRouter.java:152)
    at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99)
    at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:159)
    at org.mule.routing.outbound.ChainingRouter.route(ChainingRouter.java:71)
    at org.mule.routing.outbound.DefaultOutboundRouterCollection$1.doInTransaction(DefaultOutboundRouterCollection.java:64)
    at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:45)
    at org.mule.routing.outbound.DefaultOutboundRouterCollection.route(DefaultOutboundRouterCollection.java:69)
    at org.mule.service.AbstractService.sendToOutboundRouter(AbstractService.java:903)
    at org.mule.model.seda.SedaService.doSend(SedaService.java:235)
    at org.mule.service.AbstractService.sendEvent(AbstractService.java:506)
    at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:354)
    at org.mule.routing.inbound.DefaultInboundRouterCollection.send(DefaultInboundRouterCollection.java:220)
    at org.mule.routing.inbound.DefaultInboundRouterCollection.route(DefaultInboundRouterCollection.java:180)
    at org.mule.transport.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:365)
    at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:253)
    at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:176)
    at org.mule.transport.vm.VMMessageReceiver.onCall(VMMessageReceiver.java:107)
    at org.mule.transport.vm.VMMessageDispatcher$2.doInTransaction(VMMessageDispatcher.java:125)
    at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99)
    at org.mule.transport.vm.VMMessageDispatcher.doSend(VMMessageDispatcher.java:128)
    at org.mule.transport.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:168)
    at org.mule.transport.AbstractConnector.send(AbstractConnector.java:1929)
    at org.mule.endpoint.DefaultOutboundEndpoint.send(DefaultOutboundEndpoint.java:77)
    at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:327)
    at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:213)
    at org.mule.routing.outbound.AbstractOutboundRouter$2.doInTransaction(AbstractOutboundRouter.java:152)
    at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99)
    at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:159)
    at org.mule.routing.outbound.ChainingRouter.route(ChainingRouter.java:106)
    at org.mule.routing.outbound.DefaultOutboundRouterCollection$1.doInTransaction(DefaultOutboundRouterCollection.java:64)
    at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:45)
    at org.mule.routing.outbound.DefaultOutboundRouterCollection.route(DefaultOutboundRouterCollection.java:69)
    at org.mule.service.AbstractService.dispatchToOutboundRouter(AbstractService.java:878)
    at org.mule.model.seda.SedaService.dispatchToOutboundRouter(SedaService.java:513)
    at org.mule.model.seda.SedaService$ComponentStageWorker.run(SedaService.java:536)
    at org.mule.work.WorkerContext.run(WorkerContext.java:310)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.io.IOException: Could not send message to Mule.
    at org.mule.transport.cxf.transport.MuleUniversalConduit.dispatchMuleMessage(MuleUniversalConduit.java:204)
    at org.mule.transport.cxf.transport.MuleUniversalConduit$1.handleMessage(MuleUniversalConduit.java:142)
    ... 56 more
    Caused by: org.mule.transport.service.TransportFactoryException: There are at least 2 connectors matching protocol "http", so the connector to use must be specified on the endpoint using the 'connector' property/attribute (java.lang.IllegalStateException)
    at org.mule.endpoint.AbstractEndpointBuilder.getConnector(AbstractEndpointBuilder.java:557)
    at org.mule.endpoint.AbstractEndpointBuilder.getDefaultConnector(AbstractEndpointBuilder.java:270)
    at org.mule.endpoint.AbstractEndpointBuilder.getConnector(AbstractEndpointBuilder.java:265)
    at org.mule.endpoint.AbstractEndpointBuilder.doBuildOutboundEndpoint(AbstractEndpointBuilder.java:188)
    at org.mule.endpoint.AbstractEndpointBuilder.buildOutboundEndpoint(AbstractEndpointBuilder.java:95)
    at org.mule.endpoint.DefaultEndpointFactory.getOutboundEndpoint(DefaultEndpointFactory.java:86)
    at org.mule.endpoint.DefaultEndpointFactory.getOutboundEndpoint(DefaultEndpointFactory.java:62)
    at org.mule.transport.cxf.transport.MuleUniversalConduit.dispatchMuleMessage(MuleUniversalConduit.java:178)
    ... 57 more
    Caused by: java.lang.IllegalStateException: There are at least 2 connectors matching protocol "http", so the connector to use must be specified on the endpoint using the 'connector' property/attribute
    at org.mule.transport.service.TransportFactory.getConnectorByProtocol(TransportFactory.java:168)
    at org.mule.endpoint.AbstractEndpointBuilder.getConnector(AbstractEndpointBuilder.java:547)
    ... 64 more
    Show
    INFO: Interceptor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Could not send message to Mule. at org.mule.transport.cxf.transport.MuleUniversalConduit$1.handleMessage(MuleUniversalConduit.java:146) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178) at $Proxy43.putAssetsData(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.mule.transport.cxf.CxfMessageDispatcher.doSendWithProxy(CxfMessageDispatcher.java:154) at org.mule.transport.cxf.CxfMessageDispatcher.doSend(CxfMessageDispatcher.java:132) at org.mule.transport.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:168) at org.mule.transport.AbstractConnector.send(AbstractConnector.java:1929) at org.mule.endpoint.DefaultOutboundEndpoint.send(DefaultOutboundEndpoint.java:77) at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:327) at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:213) at org.mule.routing.outbound.AbstractOutboundRouter$2.doInTransaction(AbstractOutboundRouter.java:152) at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99) at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:159) at org.mule.routing.outbound.ChainingRouter.route(ChainingRouter.java:71) at org.mule.routing.outbound.DefaultOutboundRouterCollection$1.doInTransaction(DefaultOutboundRouterCollection.java:64) at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:45) at org.mule.routing.outbound.DefaultOutboundRouterCollection.route(DefaultOutboundRouterCollection.java:69) at org.mule.service.AbstractService.sendToOutboundRouter(AbstractService.java:903) at org.mule.model.seda.SedaService.doSend(SedaService.java:235) at org.mule.service.AbstractService.sendEvent(AbstractService.java:506) at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:354) at org.mule.routing.inbound.DefaultInboundRouterCollection.send(DefaultInboundRouterCollection.java:220) at org.mule.routing.inbound.DefaultInboundRouterCollection.route(DefaultInboundRouterCollection.java:180) at org.mule.transport.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:365) at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:253) at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:176) at org.mule.transport.vm.VMMessageReceiver.onCall(VMMessageReceiver.java:107) at org.mule.transport.vm.VMMessageDispatcher$2.doInTransaction(VMMessageDispatcher.java:125) at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99) at org.mule.transport.vm.VMMessageDispatcher.doSend(VMMessageDispatcher.java:128) at org.mule.transport.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:168) at org.mule.transport.AbstractConnector.send(AbstractConnector.java:1929) at org.mule.endpoint.DefaultOutboundEndpoint.send(DefaultOutboundEndpoint.java:77) at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:327) at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:213) at org.mule.routing.outbound.AbstractOutboundRouter$2.doInTransaction(AbstractOutboundRouter.java:152) at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99) at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:159) at org.mule.routing.outbound.ChainingRouter.route(ChainingRouter.java:106) at org.mule.routing.outbound.DefaultOutboundRouterCollection$1.doInTransaction(DefaultOutboundRouterCollection.java:64) at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:45) at org.mule.routing.outbound.DefaultOutboundRouterCollection.route(DefaultOutboundRouterCollection.java:69) at org.mule.service.AbstractService.dispatchToOutboundRouter(AbstractService.java:878) at org.mule.model.seda.SedaService.dispatchToOutboundRouter(SedaService.java:513) at org.mule.model.seda.SedaService$ComponentStageWorker.run(SedaService.java:536) at org.mule.work.WorkerContext.run(WorkerContext.java:310) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) at java.lang.Thread.run(Thread.java:619) Caused by: java.io.IOException: Could not send message to Mule. at org.mule.transport.cxf.transport.MuleUniversalConduit.dispatchMuleMessage(MuleUniversalConduit.java:204) at org.mule.transport.cxf.transport.MuleUniversalConduit$1.handleMessage(MuleUniversalConduit.java:142) ... 56 more Caused by: org.mule.transport.service.TransportFactoryException: There are at least 2 connectors matching protocol "http", so the connector to use must be specified on the endpoint using the 'connector' property/attribute (java.lang.IllegalStateException) at org.mule.endpoint.AbstractEndpointBuilder.getConnector(AbstractEndpointBuilder.java:557) at org.mule.endpoint.AbstractEndpointBuilder.getDefaultConnector(AbstractEndpointBuilder.java:270) at org.mule.endpoint.AbstractEndpointBuilder.getConnector(AbstractEndpointBuilder.java:265) at org.mule.endpoint.AbstractEndpointBuilder.doBuildOutboundEndpoint(AbstractEndpointBuilder.java:188) at org.mule.endpoint.AbstractEndpointBuilder.buildOutboundEndpoint(AbstractEndpointBuilder.java:95) at org.mule.endpoint.DefaultEndpointFactory.getOutboundEndpoint(DefaultEndpointFactory.java:86) at org.mule.endpoint.DefaultEndpointFactory.getOutboundEndpoint(DefaultEndpointFactory.java:62) at org.mule.transport.cxf.transport.MuleUniversalConduit.dispatchMuleMessage(MuleUniversalConduit.java:178) ... 57 more Caused by: java.lang.IllegalStateException: There are at least 2 connectors matching protocol "http", so the connector to use must be specified on the endpoint using the 'connector' property/attribute at org.mule.transport.service.TransportFactory.getConnectorByProtocol(TransportFactory.java:168) at org.mule.endpoint.AbstractEndpointBuilder.getConnector(AbstractEndpointBuilder.java:547) ... 64 more
  • Similar Issues:
    None

Description

Hello,

I've come across a problem with Mule which I have not managed to solved for quite some time and seems to be a bug. I monitor a local folder for arrival of new files and then trigger a workflow of several web service calls via the CXF transport. This works perfectly fine when only one file arrives in the folder at a time, with more than one I get the exception below. This seems to be a bug to me because the thrown exception mentions that there are at least two connectors defined matching the http protocol; but in my Mule configuration there's no http connector defined. I have tried this with Mule 2.1.1 and with Mule 2.1.2 and the same problem. The exceptions and config file are bellow.

Diana.

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
  • Transitions
  • Commits
  • Source
  • Builds
Hide
Permalink
Dan Diephouse added a comment - 20/Jan/09 01:00 PM

Diana, this may indeed be a bug. As a possible workaround can you try adding a <http:connector> declaration and then on your cxf endpoints use protocolConnector="yourHttpConnector" to refer to it. Let me know if that works.

Show
Dan Diephouse added a comment - 20/Jan/09 01:00 PM Diana, this may indeed be a bug. As a possible workaround can you try adding a <http:connector> declaration and then on your cxf endpoints use protocolConnector="yourHttpConnector" to refer to it. Let me know if that works.
Hide
Permalink
Diana Cheng added a comment - 21/Jan/09 04:30 AM

Hi Dan,

Actually, this seems to have solved the problem! (what exactly is happening here? ) Thanks!!! I also wonder if the invocation of the web services via cxf actually happens concurrently (when 2 or more files arrive as input) and asynchronously, or if it is necessary for me to set some attribute in the cxf endpoints or http connector?

Thanks in advance,
Diana.

Show
Diana Cheng added a comment - 21/Jan/09 04:30 AM Hi Dan, Actually, this seems to have solved the problem! (what exactly is happening here? ) Thanks!!! I also wonder if the invocation of the web services via cxf actually happens concurrently (when 2 or more files arrive as input) and asynchronously, or if it is necessary for me to set some attribute in the cxf endpoints or http connector? Thanks in advance, Diana.
Hide
Permalink
Dan Diephouse added a comment - 21/Jan/09 04:54 AM

Well, it appears to be a bug. That just ensures that Mule doesn't get confused because you're explicitly setting the connector.

I think your config should execute concurrently, but as always you should probably test this. (BTW, please direct future questions/non bug reports to the mailing list, thanks!)

Show
Dan Diephouse added a comment - 21/Jan/09 04:54 AM Well, it appears to be a bug. That just ensures that Mule doesn't get confused because you're explicitly setting the connector. I think your config should execute concurrently, but as always you should probably test this. (BTW, please direct future questions/non bug reports to the mailing list, thanks!)
Hide
Permalink
Dan Diephouse added a comment - 10/Apr/09 02:09 PM

Closing at these issues were resolved a while ago. You can use the protocolConnector attribute on cxf endpoints to specify the right http connector.

Show
Dan Diephouse added a comment - 10/Apr/09 02:09 PM Closing at these issues were resolved a while ago. You can use the protocolConnector attribute on cxf endpoints to specify the right http connector.

People

  • Assignee:
    Dan Diephouse
    Reporter:
    Diana Cheng
Vote (0)
Watch (1)

Dates

  • Created:
    17/Jan/09 09:15 AM
    Updated:
    10/Apr/09 02:09 PM
    Resolved:
    10/Apr/09 02:09 PM

Agile

  • View on Board
  • Atlassian JIRA (v5.0.7#734-sha1:8ad78a6)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for MuleForge. Try JIRA - bug tracking software for your team.