这是我的第一天与Apache质子和Qpid(Java的经纪人版本0.32),我需要一个简单的发送和Java中(无JMS)receive例子。 通过四处寻找,我发现Send.java和Recv.java均未实际工作。
在“mng.send()我得到
java.io.IOException: An established connection was aborted by the software in your host machine
从计算器和半打其他的谷歌搜索似乎是一个必须首先创建一个“匿名”安全提供商。
怎样才能做到这一点? 我无法猜测要么config.json变化也不如何使用Web界面。 散文的Qpid Java的经纪人文档中的两句话不是我的帮助。
与此相关的,我不能只用“AMQP://管理:管理@本地:5672”(或amqps://管理:管理@本地),并采取安全提供商已经存在的优势在哪里?
有没有人有发送的文档的Java例子和recv是已知实际上在Qpid和质子的当前版本上运行,并配有任何先决条件config.json变化?
QPID Java的经纪人与QPID腾库工作没有错误匿名身份验证。
请按照以下步骤来避免连接中断的QPID的Java经纪人0.32。
- 登录到经纪人本地网页如的locahost:8080与您的管理员用户名和密码
- 转到“代理”选项卡,然后向下滚动找到“认证供应商”
并点击“添加提供程序”,输入以下详细信息并保存,名称:匿名类型:匿名
现在再次,进入“代理”选项卡,然后向下滚动找到“端口” - AMQP。 点击AMQP编辑。 选择“认证供应商”到您在上面步骤3中创建从下拉列表并保存一个。
试试你的测试代码
下面是情况下所需的工作示例:
private static final String address = "amqp://guest:guest@localhost:5672/"; // (format : QPIDPortName://user:password@host:port you may use admin:admin as well if not removed from default setting by your administrator)
private static final String exchangeName = "MYTOPIC-EXCHANGE"; // First create this exchange in QPID Broker!
private static final String publishToAddress = new StringBuilder().append(address).append(exchangeName).toString();
public static boolean publishMessage(String msg)
{
boolean isMsgDelivered = false;
ApplicationProperties customAppProperties = null;
try
{
Messenger messenger = Proton.messenger();
messenger.start();
Message message = Proton.message();
message.setAddress(publishToAddress);
message.setContentEncoding("UTF-8");
message.setContentType("text/plain");
message.setSubject(exchangeName);
Section sec = new AmqpValue(msg);
message.setBody(sec);
messenger.put(message);
messenger.send();
messenger.stop();
isMsgDelivered = true;
}
catch (Exception e)
{
logger.log(Level.SEVERE, "Qpid Proton error: "+ e.getMessage(), e);
e.printStackTrace();
}
return isMsgDelivered;
}
要启用ANONYMOUS
身份验证,添加一个空的anonymous-auth-manager
在你的经纪人配置的安全部分标签:
<security>
<anonymous-auth-manager/>
...
</security>
默认位置为${QPID_HOME}/etc/config.xml
Java的经纪人不支持匿名身份验证。 我需要切换到C ++经纪人。
QID和质子仍需要Java教程如果只有这样的团队qpid可以测试它。
文章来源: How do I set up a security provider in Qpid to allow anonymous and also name/password authentication?