我在RMI服务中的@autowired对象上收到一个空指针异常。我创建了一个简单的(我认为)服务,可以通过RMI从客户端调用。代码如下
package com.edvs.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.edvs.dao.HostStatusDao;
@Controller
public class HeartbeatImpl implements Heartbeat {
private static final long serialVersionUID = 7502560843009449650L;
@Autowired
private HostStatusDao hs;
@Override
public int update(String hostSequenceNumber) {
int cnt = hs.update(hostSequenceNumber);
return cnt;
}
}//End of file HeartbeatImpl.java.
heartbeat-servlet.xml代码如下:
<bean id="heartbeatBean" class="com.edvs.service.HeartbeatImpl">
<!-- Nothing here for now. -->
</bean>
<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
<!-- does not necessarily have to be the same name as the bean to be exported -->
<property name="serviceName" value="Heartbeat"/>
<property name="service" ref="heartbeatBean"/>
<property name="serviceInterface" value="com.edvs.service.Heartbeat"/>
<!-- defaults to 1099 -->
<property name="registryPort" value="1199"/>
</bean>
我的指定组件扫描的WebConfiguration文件如下:
@Configuration
@EnableWebMvc
@EnableTransactionManagement
@ComponentScan({ "com.edvs.controller","com.edvs.service" })
public class WebConfiguration extends WebMvcConfigurerAdapter {
My HeartbeatImpl.java在包中com.edvs.service所以应该扫描它,并且应该实例化@autowyah HostStatus道,但事实并非如此。属性hs为NULL,这会产生NULL异常。
我在这个系统中有许多控制器使用完全相同的@自动连线技术,它们工作正常。对象被实例化。我怀疑这个类之所以失败是因为心跳servlet中的Bean定义。xml文件。在这里解决这个问题,我真是不知所措。我一定是错过了什么东西,阻止了扫描仪捕捉自动连线的工作。任何帮助都将不胜感激。
如果我浪费了任何人的时间,我很抱歉,但我想我在云端找到了答案。我像这样添加了界面ApplicationContextAware。
public class HeartbeatImpl implements Heartbeat, ApplicationContextAware {
这需要方法setApplicationContext。在该方法中,我实例化了我的属性hs。
@Override
public void setApplicationContext(ApplicationContext ctx)
throws BeansException {
hs = (HostStatusDao) ctx.getBean("HostStatusDao");
}
我希望这对其他人有帮助,因为我花了一整天才弄明白。
环顾四周后,我找不到解决这个问题的好办法。 我的自动连线没有按预期工作,返回null。我已经在其他类中自动连接了这个特定的类,它可以工作,所以它只在constraintvalidator类中不工作。 UserService类 注释接口类 注释逻辑类。这里的自动连线返回null 主要的 编辑:尝试@Componenet
我正在运行一个使用logback的Spring Boot应用程序。其思想是将日志消息发送到RabbitMQ服务器。为了实现这一点,我创建了一个扩展ch.qos的appender。向后退。果心附录基。 这是我的回程Spring。xml文件: 一切都好。但是,在MessagingAppenderLogback中,我希望用来发送消息的RabbitTemboard为空。 根据留档,我知道"日志系统在应用程
我正在努力学习一本书名为《SpringMVC初学者指南》的书,我一直在努力创建存储库对象。我不断地得到一个BeanCreationException。不知道我还错过了什么。我想知道是否有人能帮我解决这个问题。 请在下面找到我的代码。谢谢 BeanCreationException XML文件: ProductCrontroller: 产品存储库: InMemoryProductRepository
我有一个类。并且我已经编写了一个类的单元测试方法的类。我的代码如下:- 在我的单元测试课上,我编写了以下方法。 当我执行测试类,我得到错误。这是因为在类中,在方法的第8行中,学生机构映射字段为null。这只发生在模拟对象上。如何获得模拟对象的自动生成字段?
问题内容: 我在将环境连接到Spring项目时遇到问题。在这个班上 环境始终为null。 问题答案: 自动装配发生的时间比所谓的晚(由于某种原因)。 一种解决方法是实现并依赖Spring调用方法:
问题内容: 能否请您告诉我,我如何才能很好地为Hibernate实体启用Spring自动装配? 假设我有一个实体,并希望在那里有邮件发送者: 有没有比做的更好的方法 在我的DAO中? 谢谢! 问题答案: 有可能的!(这是Spring Roo中的默认样式!) 您所需要做的就是将@Configurable批注添加到您的实体。在配置中并使用AspectJ编织激活注释。 Spring参考中有一章:7.8.