I find soapUI waited for the http reply after it sent the request until the
program ended. The solution is let the camel reply.
Just add the code "e.getOut().setBody("I received HTTP request");" into the
process block. Then soapUI can get the reply after it sends the request.
Do I walk a right way to solve the problem?
Claus Ibsen-2 wrote:
>
> On Wed, Jan 13, 2010 at 8:07 AM, ztesoft <[email protected]> wrote:
>>
>> This method "seems" like solve the problem.
>> But, I find soapUI waited for the http reply after it sent the request
>> until
>> the program ended.
>> Maybe this is another topic about how to handle the request and reply.
>> Does
>> anyone know it?
>> Also I want to ask how can I save many requests into one file not one
>> request into one file.
>>
>
> You should append to the file and specify a filename to use.
> http://camel.apache.org/file2.html
>
> For example adding these options to the URI
> fileExist=Append&fileName=foo.txt
>
> The fileName can also be specified from Java by setting the
> Exchange.FILE_NAME header.
>
>
>
>
>
>
>>
>>
>>
>> willem.jiang wrote:
>>>
>>> It's a stream caching issue, Camel 2.x disable it by default for better
>>> performance.
>>> You can more information here[1]
>>>
>>> [1] http://camel.apache.org/stream-caching.html
>>>
>>> Willem
>>>
>>> ext2 wrote:
>>>>>> Use .convertBodyTo(String.class) after the from. This will store the
>>>>>> HTTP
>>>> data
>>>>>> as a String which can be safely duplicated when you do a multicast.
>>>> Is the problem is really caused by duplicating message?
>>>>
>>>> If it does, does the multi-cast support a strategy for end-user who can
>>>> control how to duplicate the data saved in message?
>>>>
>>>>
>>>> -----Original-----
>>>> Sender: Claus Ibsen [mailto:[email protected]]
>>>> Date: 2010-1-11 14:18
>>>> Receiver: [email protected]
>>>> Subject: Re: Question about multicasting.
>>>>
>>>> On Mon, Jan 11, 2010 at 7:00 AM, ztesoft <[email protected]> wrote:
>>>>> Dears, I try to use multicast to save the received message into two
>>>>> files
>>>>> using
>>>>>
>>>> "from("jetty:http://0.0.0.0:8080/").multicast().to("file://output","file://o
>>>> utput1");"
>>>>> It works correctly. Two files will be saved in /output/.camel/ and
>>>>> /output1/.camel/ folders separately.
>>>>>
>>>>> But if I use activemq for a endpoint, there may be something wrong.
>>>>> 1st. I use activemy queue instead of the second endpoint.
>>>>>
>>>>>
>>>> from("jetty:http://0.0.0.0:8080/").multicast().to("file://output","test-jms:
>>>> queue:test.queue");
>>>>> from("test-jms:queue:test.queue").process(new Processor() {
>>>>> public void process(Exchange e) throws IOException
>>>>> {
>>>>> System.out.println("Received exchange: " +
>>>>> e.getIn());
>>>>>
>>>>> System.out.println(e.getIn().getBody(String.class));
>>>>> }
>>>>> });
>>>>> }
>>>>> });
>>>>> In this case, when I send a HTTP request, the result is one file saved
>>>>> in
>>>>> /output/ folder and a message displayed in console. The content of
>>>>> this
>>>>> message is:
>>>>> "Received exchange: JmsMessage: ActiveMQBytesMessage {commandId = 5,
>>>>> responseRequired = true, messageId =
>>>> ID:chenyi-4710-1263188603156-2:2:1:1:1,
>>>>> originalDestination = null, originalTransactionId = null, producerId =
>>>>> ID:chenyi-4710-1263188603156-2:2:1:1, destination =
>>>>> queue://test.queue,
>>>>> transactionId = null, expiration = 1263188625859, timestamp =
>>>> 1263188605859,
>>>>> arrival = 0, brokerInTime = 1263188605859, brokerOutTime =
>>>>> 1263188605859,
>>>>> correlationId = 5a1b6157-a4cb-4f8a-aa78-82519a776bf0, replyTo =
>>>>> temp-queue://ID:chenyi-4710-1263188603156-2:1:1, persistent = true,
>>>>> type
>>>>> =
>>>>> null, priority = 4, groupID = null, groupSequence = 0,
>>>>> targetConsumerId
>>>>> =
>>>>> null, compressed = false, userID = null, content =
>>>>> org.apache.activemq.util.byteseque...@6a63d3, marshalledProperties =
>>>>> null,
>>>>> dataStructure = null, redeliveryCounter = 0, size = 1024, properties =
>>>>> {CamelHttpUrl=http://127.0.0.1:8080/,
>>>>> Content_HYPHEN_Type=text/xml;charset=UTF-8, Host=127.0.0.1:8080,
>>>>> CamelHttpMethod=POST, Content_HYPHEN_Length=681,
>>>>> SOAPAction="http://www.ctcc.com/service/sendSms",
>>>>> CamelHttpCharacterEncoding=UTF-8, User_HYPHEN_Agent=Jakarta
>>>>> Commons-HttpClient/3.0.1, CamelHttpPath=/, CamelHttpUri=/},
>>>>> readOnlyProperties = true, readOnlyBody = true, droppable = false}
>>>>> ActiveMQBytesMessage{ bytesOut = null, dataOut = null, dataIn =
>>>>> java.io.datainputstr...@bfed5a }"
>>>>>
>>>>> 2nd.
>>>>> I change the order for the multicast endpoint.
>>>>>
>>>>>
>>>> from("jetty:http://0.0.0.0:8080/").multicast().to("test-jms:queue:test.queue
>>>> ","file://output");
>>>>> from("test-jms:queue:test.queue").process(new Processor() {
>>>>> public void process(Exchange e) throws IOException
>>>>> {
>>>>> System.out.println("Received exchange: " +
>>>>> e.getIn());
>>>>>
>>>>> System.out.println(e.getIn().getBody(String.class));
>>>>> }
>>>>> });
>>>>> }
>>>>> });
>>>>> In this case, when I send a HTTP request, the message displayed
>>>>> correctly
>>>> in
>>>>> th console(the http request body displayed). But there is not any file
>>>> saved
>>>>> in any folder.
>>>>>
>>>>> Does anyone know the reasons and how to solve this problem?
>>>>> --
>>>>
>>>> Use .convertBodyTo(String.class) after the from. This will store the
>>>> HTTP data as a String which can be safely duplicated when you do a
>>>> multicast.
>>>>
>>>>
>>>>
>>>>> View this message in context:
>>>> http://old.nabble.com/Question-about-multicasting.-tp27106219p27106219.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Question-about-multicasting.-tp27106219p27140410.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>
>
--
View this message in context:
http://old.nabble.com/Question-about-multicasting.-tp27106219p27141244.html
Sent from the Camel - Users mailing list archive at Nabble.com.