2012-02-17 18 views
6

के साथ संदेश कॉपी नहीं कर सकता है मेरे पास एक म्यूएल एप्लिकेशन है जहां मैं एकाधिक वेब सर्विसेज के लिए अनुरोध भेजता हूं और मुझे मिलने वाली प्रतिक्रियाओं की सूची को जोड़ता हूं, विचार है कि इसे वापस लौटने से सूची की पहली प्रतिक्रिया प्राप्त करें CustomJavaClass जहां सूची नियंत्रित किया जाता है:म्यूएल ईएसबी: स्ट्रीम पेलोड

return responses.get(0); 

मैं डबल्यूएसडीएल तक पहुंचने के लिए कर रहा हूँ अगर मैं एक ब्राउज़र के साथ यह तक पहुँचने की कोशिश, लौटे डबल्यूएसडीएल अपने देखने के लिए माना जाता तरह दिखता है।

Exception stack is: 
1. Cannot copy message with a stream payload. Payload type is "org.apache.commons.httpclient.ContentLengthInputStream". Message payload is of type: ContentLengthInputStream (org.mule.api.MessagingException) 
    org.mule.routing.outbound.AbstractSequenceRouter:73 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html) 
-------------------------------------------------------------------------------- 
Root Exception stack trace: 
org.mule.api.MessagingException: Cannot copy message with a stream payload. Payload type is "org.apache.commons.httpclient.ContentLengthInputStream". Message payload is of type: ContentLengthInputStream 
    at org.mule.routing.outbound.AbstractSequenceRouter.route(AbstractSequenceRouter.java:73) 
    at org.mule.routing.outbound.AbstractOutboundRouter$1.doInTransaction(AbstractOutboundRouter.java:102) 
    at org.mule.routing.outbound.AbstractOutboundRouter$1.doInTransaction(AbstractOutboundRouter.java:99) 
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) 

SOAPUi अपवाद::

Failed to route event via endpoint: org.mule.api.p[email protected]ceb6dd. Message payload is of type: ContentLengthInputStream 

मेरे वर्तमान विन्यास:

<?xml version="1.0" encoding="UTF-8"?> 

<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core" xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf" xmlns:tcp="http://www.mulesoft.org/schema/mule/tcp" xmlns:jms="http://www.mulesoft.org/schema/mule/jms" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="CE-3.2.1" xsi:schemaLocation=" 
http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/schema/mule/cxf/current/mule-cxf.xsd 
http://www.mulesoft.org/schema/mule/tcp http://www.mulesoft.org/schema/mule/tcp/current/mule-tcp.xsd 
http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd "> 
    <flow name="flows1Flow1" doc:name="flows1Flow1"> 
     <http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:4433/miniwebservice" encoding="UTF-8" mimeType="text/xml" doc:name="HTTP"/> 
     <logger level="INFO" category="ddo" doc:name="Logger"/> 
     <all doc:name="All"> 
      <processor-chain> 
       <message-properties-transformer encoding="UTF-8" mimeType="text/xml" doc:name="Message Properties"> 
        <add-message-property key="http.method" value="#[header:INBOUND:http.method]"/> 
       </message-properties-transformer> 
       <http:outbound-endpoint exchange-pattern="request-response" address="http://localhost:4435/miniwebservice#[header:INBOUND:http.request]" encoding="UTF-8" mimeType="text/xml" doc:name="HTTP"/> 
       <mulexml:xslt-transformer mimeType="text/xml" maxIdleTransformers="2" maxActiveTransformers="5" xsl-file="C:\Users\kiesa\Desktop\XSLReplace.xsl" doc:name="XSLT"/> 
      </processor-chain> 
      <processor-chain> 
       <message-properties-transformer encoding="UTF-8" mimeType="text/xml" doc:name="Message Properties"> 
        <add-message-property key="http.method" value="#[header:INBOUND:http.method]"/> 
       </message-properties-transformer> 
       <http:outbound-endpoint exchange-pattern="request-response" address="http://localhost:4434/miniwebservice#[header:INBOUND:http.request]" encoding="UTF-8" mimeType="text/xml" doc:name="HTTP"/> 
       <mulexml:xslt-transformer mimeType="text/xml" maxIdleTransformers="2" maxActiveTransformers="5" xsl-file="C:\Users\kiesa\Desktop\XSLReplace2.xsl" doc:name="XSLT"/> 
      </processor-chain> 
     </all> 
     <mulexml:xml-to-object-transformer doc:name="XML to Object"/> 
     <component class="CustomJavaClass" doc:name="Java"/> 
     <byte-array-to-string-transformer ignoreBadInput="true" encoding="UTF-8" mimeType="text/xml" doc:name="Byte Array to String"/> 
    </flow> 
</mule> 

उत्तर

8

हो रही डबल्यूएसडीएल क्योंकि काम करता है लेकिन मैं मैं SoapUi के माध्यम से संदेश मैं निम्न अपवाद प्राप्त भेजने का प्रयास अनुरोध प्राप्त करें कोई पेलोड नहीं है। लेकिन जब आप एक एसओएपी विधि का आह्वान करने का प्रयास करते हैं, तो POST पेलोड एक इनपुटस्ट्रीम होता है, जिसे निश्चित रूप से कई बार प्रेषित नहीं किया जा सकता है।

इस प्रकार है: एक साथ HTTP इनपुट धारा को क्रमानुसार: भीतर का-अंत बिंदु:

<object-to-byte-array-transformer /> 

सही http के बाद।