Allright, I was able to resolve the issue - looks like setChunkedStreamingMode in JDK 1.6 is either broken, or Jetty can't understand it well.
I had created the custom uploading strategy, which is using Commons HttpClient
3.1, and things are working fine. Just in case if somebody will find this
useful - I've attached a class I had created.
Thank you all for your patience :)
================================================================================
package org.apache.activemq.blob;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import javax.jms.JMSException;
import org.apache.activemq.blob.BlobTransferPolicy;
import org.apache.activemq.blob.BlobUploadStrategy;
import org.apache.activemq.blob.DefaultBlobUploadStrategy;
import org.apache.activemq.command.ActiveMQBlobMessage;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PutMethod;
/**
* Handles the uploading strategy using HttpClient
*/
public class HCBlobUploadStrategy extends DefaultBlobUploadStrategy implements
BlobUploadStrategy {
private final HttpClient client;
public HCBlobUploadStrategy(BlobTransferPolicy transferPolicy) {
super(transferPolicy);
client = new HttpClient();
}
/**
* @see
org.apache.activemq.blob.BlobUploadStrategy#uploadFile(org.apache.activemq.command.ActiveMQBlobMessage,
java.io.File)
*/
public URL uploadFile(ActiveMQBlobMessage msg, File file)
throws JMSException, IOException {
InputStream stream = new FileInputStream(file);
URL url = null;
try {
url = uploadStream(msg, stream);
} finally {
stream.close();
}
return url;
}
/**
* @see
org.apache.activemq.blob.BlobUploadStrategy#uploadStream(org.apache.activemq.command.ActiveMQBlobMessage,
java.io.InputStream)
*/
public URL uploadStream(ActiveMQBlobMessage msg, InputStream stream)
throws JMSException, IOException {
final URL fileURL = createUploadURL(msg);
PutMethod put = null;
try {
put = new PutMethod(fileURL.toString());
put.setContentChunked(true);
put.setRequestEntity(new InputStreamRequestEntity(stream));
client.executeMethod(put);
} finally {
if (put != null)
put.releaseConnection();
}
return fileURL;
}
}
================================================================================
--
Eugene N Dzhurinsky
pgpj5Z6ItVCdZ.pgp
Description: PGP signature
