所以我有一个ActiveMQ代理和一些生产者,它们在代理中放置了一些自制对象.我也有一些消费者接收这些消息(序列化对象)没有问题.但我想创建一个连接到代理并显示所有消息(序列化对象)的工具.
我尝试使用和ActiveMQConnection这样做:
Set<ActiveMQQueue> currentMessageQueues = activeMQConnection.getDestinationSource().getQueues();
Iterator<ActiveMQQueue> messageQueueIterator = currentMessageQueues.iterator();
while (messageQueueIterator.hasNext()) {
ActiveMQQueue currentQueue = messageQueueIterator.next();
QueueSession queueSession = activeMQConnection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
QueueBrowser browser = queueSession.createBrowser(currentQueue);
Enumeration<?> messagesInQueue = browser.getEnumeration();
while (messagesInQueue.hasMoreElements()) {
Message queueMessage = (Message) messagesInQueue.nextElement();
if (queueMessage instanceof ActiveMQObjectMessage) {
ActiveMQObjectMessage objectMessage = (ActiveMQObjectMessage) queueMessage;
objectMessage.getObject();
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,我在objectMessage.getObject()上得到一个异常:
javax.jms.JMSException: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: MyMessage
Run Code Online (Sandbox Code Playgroud)
我使用了调试模式,ActiveMQObjectMessage将对象设置为null.
这种方法是否良好,如果是,我做错了什么?我怎样才能从经纪人那里收到这个对象?
我有一个用于使用imap存档电子邮件的应用程序.此应用程序中还有许多需要存档的imap帐户.
在这个时刻,应用程序不时连接到imap帐户并只下载新的电子邮件.我的问题是,每次连接到imap帐户时,它都会验证来自所有文件夹的所有电子邮件,并仅下载尚未下载的电子邮件(我存储所有电子邮件的Message-ID,并仅下载具有Message-ID的电子邮件)没有存储).所以我想知道是否有替代方案,因为验证所有电子邮件需要一些时间(10-20K需要2-5分钟).
我使用JavaMail API连接到imap帐户.
org.apache.wicket.protocol.http.request.InvalidUrlException:
org.apache.wicket.WicketRuntimeException:
After 1 minute the Pagemap null is still locked by:
Thread[http-8443-3,5,main], giving up trying to get the page for path: 3:timer
Run Code Online (Sandbox Code Playgroud)
这1分钟在哪里?是一个检票口设置,还是一个tomcat?要么 ...?我怎么修改这个?
Math.Round(doubleValue, 2)默认情况下使用// ToEven时
// 2.135 - > 2.13为什么不2.14?
// 3.135 - > 3.14
当在2.13使用AwayFromZero 2.135轮时为什么不是2.14?
我有2个Java项目(例如p1和p2),我想创建包含项目及其库的jar(使用buildr).
p2取决于p1.
compile.with(projects('p1'), removeDups(project('p1').compile.dependencies), removeDups(P2_LIBS))
package(:jar).with( :manifest => {'Main-Class' => 'com.p2.Main'} )
compile.dependencies.each do |x|
if x
package(:jar).merge(x).exclude('META-INF/MANIFEST.MF')
end
end
Run Code Online (Sandbox Code Playgroud)
我试过这个,但是这给了我一个错误,我认为因为p2取决于p1,因为如果我只有p1和libs这就行了.
那么我应该如何使用p1创建jar文件,p2是一个库?
我有一个配置文件:
-dontshrink
-dontoptimize
-keep class mypackage.** { *; }
-keepclassmembers mypackage.** {
*;
}
Run Code Online (Sandbox Code Playgroud)
但是在混淆的 jar 中,我看到 mypackage 中的所有类都发生了变化(大小减小了)。
如果我将它配置为不混淆它们,我的类有什么变化?
如何配置 ProGuard 以让类保持不变?
我有 4 个测试,每个测试都有自己的方法源,但它们之间的唯一区别是一个参数,在每种方法中我以不同的方式初始化模拟。有没有办法可以传递多个方法源?
例子:
@ParameterizedTest
@MethodSource("mSource1")
public void testM1(MyMock m1, MyMock m2) {
callMut(m1, m2, ENUM.VAL1);
//same assertion
}
@ParameterizedTest
@MethodSource("mSource2")
public void testM2(MyMock m1, MyMock m2) {
callMut(m1, m2, ENUM.VAL2);
//same assertion
}
private static Stream<Arguments> mSource1() {
when(myMock1.getX()).thenReturn("1");
//...
}
private static Stream<Arguments> mSource2() {
when(myMock1.getY()).thenReturn("1");
//...
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似的东西:
@ParameterizedTest
@MethodSource("mSource1", "mSource2")
public void testM1(MyMock m1, MyMock m2, MyEnum myEnumValue) {
callMut(m1, m2, myEnumValue);
//same assertion
}
Run Code Online (Sandbox Code Playgroud) MyStreamClass mock = mock(MyStreamClass.class);
when(mock.streamMethod()).thenReturn(Stream.of("A", "B"));
System.out.println(""+mock.streamMethod().findFirst());
System.out.println(""+mock.streamMethod().findFirst());
Run Code Online (Sandbox Code Playgroud)
findFirst的第二次调用将抛出java.lang.IllegalStateException:流已被操作或关闭
anyMatch 是否具有确定性(对于有序流),例如 filter + findFirst?除了返回值之外还有其他区别吗?
如果我有一个有序流 asList("a","b","c").filter(predicate).findFirst() 则保证将按给定顺序为流的每个元素评估谓词(“ a”比“b”比“c”)直到匹配(findFirst)。我想知道 asList("a","b","c").anyMatch(predicate) 是否也会按照给定的顺序评估谓词(“a”比“b”比“c”)?
java ×6
junit ×2
unit-testing ×2
.net ×1
buildr ×1
c# ×1
genymotion ×1
imap ×1
jakarta-mail ×1
java-stream ×1
jms ×1
junit5 ×1
mocking ×1
mockito ×1
proguard ×1
rounding ×1
testing ×1
wicket ×1