问题可以解决如下。例如,我将README.html文件发送到 alfresco-queue 。然后可以获得文件正文和文件名,以及一些附加信息,如下所示:
alfresco-queue
public class MyRouteBuilder extends RouteBuilder { @Override public void configure() throws Exception { from("activemq:alfresco-queue?username=admin&password=admin") .process(new Processor() { public void process(Exchange exchange) throws Exception { // Get file body byte[] bytes = exchange.getIn().getBody(byte[].class); for(int i = 0; i < bytes.length; i++) { System.out.print((char) bytes[i]); } // Get headers Map<String, Object> headers = exchange.getIn().getHeaders(); Iterator iterator = headers.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry pair = (Map.Entry)iterator.next(); System.out.println(pair.getKey() + " == " + pair.getValue()); } } }) // SKIPPED
它给出了以下输出:
<head> root<> title>README </title> </head> <body> Please refer to <A HREF="http://java.com/licensereadme">http://java.com/licensereadme</A> </body> </html> breadcrumbId == ID:63-DP-TAV-59000-1531813754416-1:1:1:1:1 fileName == README.html JMSCorrelationID == null JMSCorrelationIDAsBytes == null JMSDeliveryMode == 2 JMSDestination == queue://alfresco-queue JMSExpiration == 0 JMSMessageID == ID:63-DP-TAV-59000-1531813754416-1:1:1:1:1 JMSPriority == 4 JMSRedelivered == false JMSReplyTo == null JMSTimestamp == 1531813754610 JMSType == null JMSXGroupID == null JMSXUserID == null