所以我有了这个spring集成项目。将网关用作触发批处理作业的触发器。我为网关制作了这个接口:
public interface TestGateway {
void trigger(String pass);
}
public class Trigger implements Runnable {
@Autowired
TestGateway testGateWay;
public void triggerMethod() {
testGateWay.trigger("pass");
}
@Override
public void run() {
try {
triggerMethod();
} catch (Exception e) {
e.printStackTrace();
}
}
}
java.lang.NullPointerException
at com.irsis.integration.endpoint.Trigger.triggerMethod(Trigger.java:12)
at com.irsis.integration.endpoint.Trigger.run(Trigger.java:18)
at org.springframework.scheduling.support.DelegatingErrorHandling
<context:component-scan base-package="com.irsis.integration.endpoint" />
<int:logging-channel-adapter id="logger"
log-full-message="true" level="INFO" />
<!-- gateway -->
<int:channel id="testInput" />
<int:gateway id="testGateway"
service-interface="com.irsis.integration.endpoint.TestGateway">
<int:method name="trigger" request-channel="testInput" />
</int:gateway>
<int:channel id="activate" />
<import resource="classpath*:/spring/batch/jobs/testJob.xml" />
<int:transformer input-channel="testInput"
output-channel="activate">
<bean class="com.irsis.integration.util.TriggerToJobRequest">
<property name="job" ref="testJob" />
</bean>
</int:transformer>
<int:service-activator method="launch"
input-channel="activate">
<bean id="messageHandler"
class="org.springframework.batch.integration.launch.JobLaunchingMessageHandler">
<constructor-arg ref="jobLauncher" />
</bean>
</int:service-activator>
<context:annotation-config />
<context:spring-configured />
<import resource="classpath*:/spring/integration/si-batch-config.xml" />
<import resource="classpath*:/spring/integration/si-test2.xml" />
<context:component-scan base-package="com.irsis" />
谢谢,
喷气机
既然您说您使用Spring集成,那么您的网关接口应该具有“实现”-
类似于这样:
<gateway id="testGateway" service-interface="com.my.proj.TestGateway"
default-request-channel="gatewayChannel"/>
问题内容: 我有这个春天的配置: 该类实现。然后,我有以下(假设的)Java代码: 自动布线工作,但自动布线失败。春天给我上课了。 为什么可以连接接口而不是类? 问题答案: 通常,两者都可以使用,你可以自动装配接口或类。 你的上下文中某处可能有一个自动代理生成器,它将你的bean 包装在一个生成的代理对象中。此代理对象将实现,但不是。使用自动代理时,你需要对接口进行编程,而不是对实现进行编程。 可
我有一个服务类,它使用一个,这两个接口都位于文件中,我在中使用该文件作为依赖项。 客户端微服务的使用服务从数据库获取数据。 当我访问该控制器的某个endpoint时,AttachmentApi服务成功地被AttachmentApi成功地被AttachmentApi成功地被AttachmentApi成功地被 空值是由于没有得到autowired的假界面! 知道我在springboot类中使用了以下注
我很难协调以下文件中的内容: 当我尝试编译它时,我得到以下错误消息: 这很好,所以这意味着我应该能够通过明确指定财产权的对象类型来绕过这个问题? 除了现在的问题之外,当我使用编译时,我会收到以下错误消息: 似乎不管我做什么,我都会输,因为如果我小心界面上的类型规格并拼出所有内容,那么我就不能将实现专门化为只有1种类型。问题是有文件正是这样做的,如果我想让编译器找到所有的类型,因为我想尽可能显式,我
问题内容: 假设我有此接口A: 因此,我希望某些抽象类实现doThis()方法,而不是doThat()一个方法: 当您最终决定在常规类中实现de doThat方法时,就会出现错误: 此类导致我前面提到的错误: “类型B不能是C的超级接口;超级接口必须是接口” 现在任何人都可以,如果这种类层次结构有效,还是应该以其他方式进行处理? 问题答案: 您必须使用 了解和关键字之间的区别很重要。因此,我建议您
假设我有这个接口A: “类型B不能是C的超级接口;超级接口必须是接口” 如果这个类的层次结构是有效的,那么任何人现在都可以了,还是我应该反过来做?
问题内容: 在Spring 3.1中,有没有一种简单的方法可以将exclude a package / sub-package 排除在自动装配之外? 例如,如果我想在的基本软件包中包括组件扫描,是否有一种简单的方法可以排除? (为什么?我想从集成测试中排除一些组件) 问题答案: 我不确定你是否可以使用明确排除软件包,但是我敢打赌,使用正则表达式过滤器可以有效地带你到达那里: 为了使其基于注释,你可