Прошло много времени с тех пор, как я работал с Spring, и в первый раз настраивал Spring на веб-службу с нуля, поэтому ... Возможно, я задаю здесь несколько глупых вопросов.Autowiring in Spring WS, вызывающий нулевой указатель
Мое обслуживание и все его бобы построены с использованием CXF. Соответствующие части Implementor выглядеть следующим образом:
...
@WebService(
endpointInterface = "mil.army.sddc.ibs.ccr.datamgmt.DataMgmtPortType",
name="DataMgmt_Service",
portName="DataMgmt_Port",
targetNamespace = "http://ccr.ibs.sddc.army.mil/DataMgmt")
@Service("dataMgmtWebService")
public class DataMgmtWebServiceImpl implements DataMgmtPortType {
@Autowired
private RSNCodeDAO rsnCodeDAO;
...
Это DAO, который выглядит следующим образом
@Repository
public class RSNCodeDAO {
...
находится в applicationContext.xml Thusly:
<?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 />
<context:component-scan base-package="mil.army.sddc.ibs.ccr.dbwrapper.dao" />
<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" />
<jaxws:endpoint
id="dataMgmtWebService"
implementor="#impl"
address="/DataMgmt" />
И, наконец, я не уверен, что вам это нужно, но вот web.xml
<?xml version="1.0" encoding="UTF-8"?>
<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"
id="WebApp_ID" version="2.5">
<display-name>CCRDataMgmt</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
Так что если один из вас знает, какую тупую вещь я забываю, я был бы признателен.
Редактировать: трассировка стека была запрошена. У меня пока нет настроек регистрации, поэтому приношу извинения за формат ответа на исключение мыла.
Вы не указали самый важный бит: фактическую трассировку стека исключений. – kryger
Это исключение нулевого указателя, в котором вызывается DAO. Я не могу представить, что вы узнаете от него, но я добавляю его на всякий случай. – user2561604
Почему вы определяете свои beans expicitly (например, '', ''), но * также * включить компонент сканирования и аннотации конфигурации? (т. е. использовать '@ Service',' @ Repository' и т. д.). Не уверен, что это может быть источником ваших проблем, но симптомы согласуются с 'DataMgmtWebServiceImpl', которые не управляются (т. Е. Видимыми) Spring. Вы должны попробовать увеличить внутренний уровень ведения журнала Spring и проверить журнал запуска. –
kryger