Мое пружинное автоустройство, похоже, терпит неудачу, поэтому я сделал метод postconstruct, чтобы распечатать, что происходит. Оказывается, мой класс обслуживания impl создается дважды, и во второй раз аутсорсинг терпит неудачу.Весенний автопогрузчик работает, а не
Который порождается этой части моего класса осущ
@Service
public class DataMgmtWebServiceImpl implements DataMgmtPortType {
@Autowired
private CCRQueueDAO ccrQueueDAO;
@Autowired
private RSNCodeDAO rsnCodeDAO;
private FileManagement fileManagement;
private boolean testing = false;
public DataMgmtWebServiceImpl() {
System.out.println("default " + ccrQueueDAO);
}
@PostConstruct
public void init() {
System.out.println("init: " + ccrQueueDAO);
SOAPToDatabase.rsnCodeDAO = rsnCodeDAO;
}
...
}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<context:component-scan base-package="https"/>
<context:annotation-config />
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<bean id="impl"
class=
"mil.army.sddc.ibs.ccr.datamgmt.webservice.DataMgmtWebServiceImpl"/>
<bean id="reasonCodeDAO"
class="mil.army.sddc.ibs.ccr.dbwrapper.dao.RSNCodeDAO"
autowire="byName" >
<constructor-arg
value="jdbc:oracle:thin:@eipdzddevibs1:1526:CSSDEV"/>
<constructor-arg value="CSS" />
<constructor-arg value="s*awk:a_xa2wpt#a7jiv" />
<constructor-arg value="oracle.jdbc.driver.OracleDriver" />
</bean>
<bean id="ccrQueueDAO"
class="mil.army.sddc.ibs.ccr.dbwrapper.dao.CCRQueueDAO"
autowire="byName" >
<constructor-arg
value="jdbc:oracle:thin:@eipdzddevibs1:1526:CSSDEV"/>
<constructor-arg value="CSS" />
<constructor-arg value="s*awk:a_xa2wpt#a7jiv" />
<constructor-arg value="oracle.jdbc.driver.OracleDriver" />
</bean>
<jaxws:endpoint
id="dataMgmtWebService"
implementor="#impl"
address="/DataMgmt" />
</beans>
web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>CCRDataMgmt</display-name>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<!-- Session Timeout -->
<session-config>
<session-timeout>120</session-timeout>
</session-config>
</web-app>
Это довольно странно, и я уверен, что есть что-то действительно тупое и очевидное, что я пропал без вести, что вызывает его.
Я установил имя (не могу поверить, что я пропустил это), но поведение не изменилось. – user2561604
Но вы понимаете, что внутри конструктора «default» должен быть равен нулю, и это ожидается? потому что вам нужно создать объект, прежде чем устанавливать вложенную зависимость? – jonasnas
Да, я ожидаю этого. Я просто бросил множество отладочных заявлений и хотел объяснить их присутствие на выходе. Я просто не знаю, почему он инициализируется дважды, и, что еще хуже, во второй раз ни один из моих бобах не получает автообучение. – user2561604