小编use*_*118的帖子

如何修复新的ActiveMQ Artemis安装阻止问题?

我的任务是为JMS客户评估ActiveMQ Artemis.我有RabbmitMQ经验,但没有使用ActiveMA Artemis/JMS.

我在我的本地机器上安装了Artemis,根据说明创建了一个新的代理,并将其设置为Windows服务.Windows服务启动和停止就好了.我没有对broker.xml文件进行任何更改.

对于我的第一次测试,我正在尝试从独立的Java程序执行JMS Queue生成/使用.我正在使用"使用JMS"部分中的Artemis用户手册中的代码(不使用JNDI):

TransportConfiguration transportConfiguration = new TransportConfiguration(NettyConnectorFactory.class.getName());
ConnectionFactory cf = ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF,transportConfiguration);

Queue orderQueue = ActiveMQJMSClient.createQueue("OrderQueue");
Connection connection = cf.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

MessageProducer producer = session.createProducer(orderQueue);
MessageConsumer consumer = session.createConsumer(orderQueue);

connection.start();

TextMessage message = session.createTextMessage("This is an order");
producer.send(message);

TextMessage receivedMessage = (TextMessage)consumer.receive();
System.out.println("Got order: " + receivedMessage.getText());
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我收到以下错误:

警告:AMQ212054:目标地址= jms.queue.OrderQueue被阻止.如果系统配置为阻止,请确保使用此配置上的消息.

如果这是服务器端设置,或者生产者发送没有阻塞,我的研究还没有定论.我一直无法找到一个具有阻塞布尔值的生成器发送方法,只有持久性.关于在哪里集中注意力的想法?

编辑:添加到专用于此队列的broker.xml的新地址设置元素:

<address-setting match="jms.queue.OrderQueue">
    <max-size-bytes>104857600</max-size-bytes>
    <page-size-bytes>10485760</page-size-bytes>
    <address-full-policy>PAGE</address-full-policy>
</address-setting>
Run Code Online (Sandbox Code Playgroud)

jms activemq-artemis

5
推荐指数
1
解决办法
3283
查看次数

为什么 log4j2 不生成日志文件?

我的任务是升级一个大型服务类型的java程序(不是我写的,第一次接触它),它有大量的开源库。我正在升级到 log4j2,它以前有 log4j,但我不知道它是否可以正常工作。

我根本没有收到日志文件。这是在使用 NetBeans 8 的本地开发环境中。我的类路径中有 log4j-api 和 log4j-core 2.9.0 文件。我的项目根目录中的 log4j2.xml 文件是:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
    <File name="FileAppender" fileName="DistEngine.log" immediateFlush="true" append="false" >
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </File>
</Appenders>
<Loggers>
    <Root level="ALL">
        <AppenderRef ref="FileAppender"/>
        <AppenderRef ref="Console"/>
    </Root>
</Loggers>
Run Code Online (Sandbox Code Playgroud)

类日志记录变量是(是的,类名是 Main,它扩展了父类):

private static final Logger MAINLOGGER = LogManager.getLogger(Main.class);
Run Code Online (Sandbox Code Playgroud)

该起始类的 main() 方法中的第一行是:

MAINLOGGER.info("entering listener main");
Run Code Online (Sandbox Code Playgroud)

我没有在项目根目录中获取 DistEngine.log 文件,也没有从 log4j2 到 stdout 的任何日志记录。我没有收到 log4j2 消息,指出它找不到配置文件。

配置文件、类变量和日志调用都是从该集合中的另一个程序复制的,其中日志记录工作正常。 …

logging log4j log4j2

5
推荐指数
1
解决办法
1万
查看次数

如何从 Sharepoint CSOM ListItem 类获取文档的 URL?

我需要查询 Sharepoint 2013 文档库并检索列表中字段值等于特定值的所有文档。我为此使用 Sharepoint 2013 CSOM 客户端 (Microsoft.SharePoint.Client)。

我可以使用以下代码成功检索除文档 URL 之外的所有 ListItem 字段:

ClientContext spContext = new ClientContext(spDocLibSite);
List cjList = spContext.Web.Lists.GetByTitle(spDocLibTitle);

CamlQuery listItemQuery = CamlQuery.CreateAllItemsQuery(100);
listItemQuery.ViewXml = "ViewXml that limits ListItems returned based on a field val";
ListItemCollection docItems = cjList.GetItems(listItemQuery);

spContext.Load(docItems);
spContext.ExecuteQuery();

foreach (ListItem listItem in docItems)
{
  Console.WriteLine(listItem["Title"]);   //  Works correctly with all fields except URL

  listItem.File.Name or Title;  // Does not work, get field not initialized error
}
Run Code Online (Sandbox Code Playgroud)

文件属性似乎没有有关文档的任何数据,当我尝试访问其属性时出现错误。

我没有设置这个文档库,但它似乎是标准的,每个列表项都有一个文档,以及大约十几个包含有关该文档的各种信息的字段。如果我查看库/列表的字段列表,文档/URL 甚至没有被列为字段。我能否以某种方式从我已经检索的 ListItem 类中获取文档的 URL?谢谢。

.net sharepoint csom

1
推荐指数
1
解决办法
9243
查看次数

标签 统计

.net ×1

activemq-artemis ×1

csom ×1

jms ×1

log4j ×1

log4j2 ×1

logging ×1

sharepoint ×1