这篇文章是applicationcontext.xml中bean声明的连续性
我有一个使用Spring3和Hibernate4以及JSF2的小应用程序,当我运行我得到的应用程序时。
java.lang.NullPointerException at
net.test.managed.bean.EmployeesManagedBean.getEmpList(EmployeesManagedBean.java:53)
ManagedBean:
@ManagedBean(name="empMB")
@Named
@Scope("request")
public class EmployeesManagedBean implements Serializable {
public List<Employees> getEmpList() {
try {
empList = new ArrayList<Employees>();
empList.addAll(getEmployeesService().getEmployees());
} catch (Exception e) {
e.printStackTrace();
}
return empList;
}
}
并且我有注入注释:
@Inject
EmployeesService employeesService;
在EmployeeService中,我有如下注释:
@Named
public class EmployeesService implements IEmployeesService {
@Inject
EmployeesDAO employeesDAO;
@Override
public List<Employees> getEmployees() {
return getEmployeesDAO().getEmployees();
}
@Named
public class EmployeesDAO implements IEmployeesDAO {
@Override
public List<Employees> getEmployees() {
List query = this.getSessionFactory().getCurrentSession().getNamedQuery("getEmp").list();
return query;
}
@Entity
@javax.persistence.NamedNativeQuery(name = "getEmp", query = "{ ? = call getemployees }", resultClass = Employees.class, hints = { @javax.persistence.QueryHint(name = "org.hibernate.callable", value = "true") })
@Table(name = "EMPLOYEES")
public class Employees {
<context:component-scan base-package="net.test" />
Error creating bean with name 'empMB': Injection of autowired
dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException:
Could not autowire field: net.test.employees.service.EmployeesService
net.test.managed.bean.EmployeesManagedBean.employeesService;
nested exception is org.springframework.beans.factory.
NoSuchBeanDefinitionException: No matching bean of type
[net.test.employees.service.EmployeesService] found for
dependency: expected at least 1 bean which qualifies as autowire
candidate for this dependency. Dependency annotations: {@javax.inject.Inject()}
更新2
ApplicationContext.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="net.test" />
<!-- Data Source Declaration -->
<bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="oracle.jdbc" />
<property name="jdbcUrl" value="jdbc:oracle:thin:@server:1521:DEV" />
<property name="user" value="scott" />
<property name="password" value="tiger" />
<property name="maxPoolSize" value="10" />
<property name="maxStatements" value="0" />
<property name="minPoolSize" value="5" />
</bean>
<!-- Session Factory Declaration -->
<bean id="SessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="DataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!-- Enable the configuration of transactional behavior based on annotations -->
<tx:annotation-driven transaction-manager="txManager" />
<!-- Transaction Manager is defined -->
<bean id="txManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="SessionFactory" />
</bean>
</beans>
尝试org.springframework.stereotype.component注释,而不是ManagedBean,如
@Component("test")
class Test
我正在尝试使用spring Boot运行一个web应用程序。 将密码映射为硬编码值。 我的问题是:当应用程序运行并且在主类上使用注释时,只要它命中URL就会发生以下异常: javax.servlet.ServletException:在org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:13
问题内容: 当我尝试运行项目时,Tomcat返回异常。 有人可以帮助解决这个问题吗?配置类:https : //github.com/intrade/inventory/blob/master/src/main/java/com/springapp/mvc/InitApp/SecurityConfig.java 堆栈跟踪: 安全过滤器出现问题。项目链接:GitHub 问题答案: 该问题与SEC-2
考虑到JAXB注释的对象,是否有办法确定类/字段/方法在封送过程中是否会导致xsi: type? 是XmlElement注释, 我唯一需要担心的情况? 我正在编写一个Lua解组器,在这里我们删除了很多常见的xml类型信息,我正在尝试找出如何将传入的Lua与JAXB匹配。 谢谢 --更新-- 下面是一个简单的示例,说明了问题: 当我收到一个动物对象时,我可以查询动物的注释来检测它应该是狗或猫而不是动
Context.xml 堆栈跟踪:
我在使用@mockbean注释时遇到了麻烦。文档说MockBean可以替换上下文中的bean,但我在单元测试中得到了一个NoUniqueBeanDefinitionException。我看不出如何使用注释。如果我可以模拟回购,那么显然会有不止一个bean定义。 错误消息:
问题内容: 我收到以下异常,试图从方法中调用带注释的标签。我也看到过类似的问题,但之所以对那个人不起作用,是因为他的标签没有注释,而我的标签却没有注释。 这是我的主要课程: 我的build.fxml开始是这样的: 那我在这里想念什么? 问题答案: 您不是在控制器上调用applyBuild(),而是在应用程序实例上调用它。该-annotated字段只初始化控制器。最好使控制器和应用程序分开的类,以避