私は1つのメッセージ(109 kb)を送信するために書いた小さなテストプログラムです。私はJava側で例外を取得していないし、また、メッセージがサービスバスのキューに表示されていません。
import org.apache.qpid.amqp_1_0.jms.impl.*;
import javax.jms.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.net.URLEncoder;
import java.util.Hashtable;
import java.io.*;
public class ServiceBusPublisher {
public static void main(String[] args) throws Exception {
String userName = "test";
String password = "test";
String fqdn = "[email protected]";
String connectionString = "amqps://" + encode(userName) + ":" + encode(password) + "@" + fqdn;
File file = new File("D:\\temp\\test.xml");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
stringBuffer.append("\n");
}
bufferedReader.close();
fileReader.close();
String messageText = stringBuffer.toString();
System.out.print("Initial setup\n");
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.qpid.amqp_1_0.jms.jndi.PropertiesFileInitialContextFactory");
env.put(Context.PROVIDER_URL, "blah.txt");
env.put("connectionfactory.ServiceBusConnectionFactory", connectionString);
Context context = null;
ConnectionFactory connectionFactory = null;
Connection connection = null;
try
{
System.out.print("Creating context\n");
context = new InitialContext(env);
System.out.print("Creating connection factory\n");
connectionFactory = (ConnectionFactory)context.lookup("ServiceBusConnectionFactory");
System.out.print("Creating connection\n");
connection = connectionFactory.createConnection();
}
catch (Exception e)
{
System.out.print("Exception creating context/connection factory/connection\n");
System.out.print(e.toString());
return;
}
Session session = null;
MessageProducer producer = null;
try
{
System.out.print("Creating session\n");
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
System.out.print("Creating producer\n");
producer = session.createProducer(QueueImpl.createQueue("MessageProcessingService-PRE/testqueue"));
}
catch (Exception e)
{
System.out.print("Exception creating session/producer\n");
System.out.print(e.toString());
return;
}
try
{
System.out.print("Creating message\n");
BytesMessage message = session.createBytesMessage();
message.writeBytes(messageText.getBytes("UTF-8"));
message.setStringProperty("JMSXGroupID", "MessageProcessingService-PRE/testqueue");
System.out.print("Sending\n");
producer.send(message);
}
catch (Exception e)
{
System.out.print("Exception creating message and sending\n");
System.out.print(e.toString());
return;
}
try
{
System.out.print("Cleaning up\n");
producer.close();
session.close();
connection.stop();
connection.close();
}
catch (Exception e)
{
System.out.print("Exception closing producer and session\n");
System.out.print(e.toString());
}
}
public static String encode(String encodee)
{
String retval = "";
try { retval = URLEncoder.encode(encodee, "UTF-8"); } catch (Exception e) { System.out.print("Encoding failed\n"); }
return retval;
}
}
Iは、上記のコードで問題なく小さなサイズのメッセージを送信することができます。 – garim
私は0.32瓶にテストの上にしようと、今、例外の下 javax.jms.JMSExceptionを取得:リンクorg.apache.qpid.amqp_1_0.jms.impl.MessageProducerImpl $ DispositionActionで \tを剥離した:リンクはdetachedjavax.jms.JMSExceptionでしたorg.apache.qpid.amqp_1_0.jms.impl.MessageProducerImplで.wasAccepted(MessageProducerImpl.java:524) org.apache.qpid.amqp_1_0.jms.impl.MessageProducerImpl.sendで\t(MessageProducerImpl.java:336) \t .send(MessageProducerImpl.java:240) \t(ServiceBusPublisher.java:92)で、ServiceBusPublisher.mainにあります。 – garim