我写了一个简单的spring集成应用程序,它将文件从一个目录移动到另一个目录,它看起来像这样:
@Bean
@InboundChannelAdapter(value="requestChannel", poller = @Poller(fixedDelay="100"))
public FileReadingMessageSource adapter(){
FileReadingMessageSource source = new FileReadingMessageSource();
source.setDirectory(new File("D:/TestIn"));
return source;
}
@Bean
MessageChannel requestChannel(){
return new DirectChannel();
}
@Bean
@ServiceActivator(inputChannel="requestChannel")
public FileWritingMessageHandler handle(){
FileWritingMessageHandler handler = new FileWritingMessageHandler(new File("D:/TestOut"));
handler.setDeleteSourceFiles(true);
return handler;
}
Run Code Online (Sandbox Code Playgroud)
它工作得非常好,但每次复制操作都会给我这个例外
2015-03-26 09:56:39.222 INFO 4772 --- [ask-scheduler-5] o.s.i.file.FileReadingMessageSource : Created message: [GenericMessage [payload=D:\TestIn\9.txt, headers={id=d8b27257-0a90-b7ad-65cb-85e93668fb5a, timestamp=1427360199222}]]
2015-03-26 09:56:39.223 ERROR 4772 --- [ask-scheduler-5] o.s.integration.handler.LoggingHandler : org.springframework.messaging.MessagingException: ; nested exception is org.springframework.messaging.core.DestinationResolutionException: no output-channel or replyChannel header available
at org.springframework.integration.dispatcher.AbstractDispatcher.wrapExceptionIfNecessary(AbstractDispatcher.java:133)
Run Code Online (Sandbox Code Playgroud)
我在另一个主题中读到,当您在代码中的某处过滤掉标题时会发生这种情况,但此跟踪的第一行告诉我,生成的唯一标头是id和timestamp.
我在Docker VM中运行Spring Cloud Eureka.我有注册的服务,但是他们在Docker VM中使用他们的IP地址,但为了能够正确使用它们,我需要他们使用我可以从VM外部访问的IP地址.
例如在我的VM中使用172.xxx的寄存器和我可以使用192.168.xxx从我的浏览器访问REST接口我需要它们注册为192.168.xxx
如何告诉我的服务注册特定的IP地址?
我正在使用Jasper Reports来构建一个简单的报告pdf.我有一个看起来像这样的JSON文件:
{"employees": [
{"firstName" : "John", "lastName" : "Doe"},
{"firstName" : "Anna", "lastName" : "Smith"},
{"firstName" : "Peter", "lastName" : "Jones"}
]}
Run Code Online (Sandbox Code Playgroud)
而我正试着这样读:
File file = new File("E:/Workspaces/jasperPDFreport/src/main/resources/emp.json");
JsonDataSource datasource = new JsonDataSource(file);
JasperDesign jasperDesign = JRXmlLoader.load("E:/Workspaces/jasperPDFreport/src/main/resources/jsonTemplate.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
Map parameters = new HashMap();
JasperPrint jasperPrint;
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, datasource);
JasperExportManager.exportReportToPdfFile(jasperPrint, "BasicReport.pdf");
JasperViewer.viewReport(jasperPrint);
Run Code Online (Sandbox Code Playgroud)
但是我的JSON文件中的值不会传递给我的pdf.
这是我的模板:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.1.1.final using JasperReports Library version 6.1.1 -->
<!-- 2015-10-22T13:45:32 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" …Run Code Online (Sandbox Code Playgroud) 我有一个针对自动机的许多状态的泛型类.它声明如下:
#ifndef STATE_H_
#define STATE_H_
#include "Automat.h"
class State {
public:
virtual void readChar(char c, Automat* automat) = 0;
virtual ~State(){};
};
#endif /* STATE_H_ */
Run Code Online (Sandbox Code Playgroud)
我在eclipse中遇到这个错误:
此行有多个标记
我的自动贩卖机如下:
#ifndef Automat_H_
#define Automat_H_
#include "../../Scanner/src/IScanner.h"
#include "./States/State.h"
class Automat {
public:
int count;
State* current;
IScanner* scanner;
Automat(IScanner *s);
void readChar(char c);
void setState(State *s);
void error();
~Automat();
};
#endif /* Automat_H_ */
Run Code Online (Sandbox Code Playgroud)
最后实现了Automat,我将省略一些方法.
#include "Automat.h"
#include "./States/StartState.h"
Automat::Automat(IScanner *s) {
current = …Run Code Online (Sandbox Code Playgroud)