Ich baue ein neues Projekt für SOAP-Web-Services. Früher habe ich den JDBC-Layer zum Öffnen und Schließen von Verbindungen verwendet. Jetzt wandle ich es in Spring mit JDBC-Vorlage um. Ich habe alle Schichten konfiguriert und die Komponenten kommentiert. Wenn ich versuche, in meinem Dienst impl Klasse die dao Bohne zu verwenden, wirft es mich Null-Zeiger-AusnahmenNull-Zeiger-Ausnahme für Autowired-Objekt im Frühjahr
@Service
@WebService
public interface Transaction { // Web methods here for SOAP Web service
}
Impl Klasse
@Component
@WebService
public class TransactionImpl implements Transaction{
@Autowired
BBDao dao; --> This is coming as null when I use it in the method
}
BBDao Schnittstelle als
public interface BBDao { /* Methods in it */ }
Die Umsetzung folgt ist Die Klasse, die die BBDao-Schnittstelle implementiert, ist
public class BBDaoImpl extends JdbcDaoSupport implements BBDao {
@Autowired
ServletContext ctx;
@Autowired
DataSource dataSource;
// Methods overriding here
}
Servlets
<servlet>
<servlet-name>spring-web</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-web</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Und schließlich die Feder-web-servlet.xml ist
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<context:component-scan base-package="com.bb.controller,com.bb.dao,com.bb.service" />
<context:property-placeholder location="classpath:datasource-cfg.properties" />
<bean id="bbDAO" class="net.bb.dao.BBDaoImpl">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- AS400 Data source Bean -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.ibm.as400.access.AS400JDBCDriver" />
<property name="url" value="${as400.url}" />
<property name="username" value="${as400.username}" />
<property name="password" value="${as400.password}" />
</bean>
<mvc:annotation-driven />
</beans>
Die BBDao Bean-Objekt kommt, wird als null in web.xml definiert.
Gibt es einen Fehler in meiner Konfiguration? Jeder Rat würde sehr geschätzt werden.
P. S: Ich habe andere Beiträge als auch gefolgt, da die meisten der Beiträge über den Komponenten-Scan reden nur und die Pakete sind korrekt
ist BBDaoImpl eine Feder Bohne verweisen? Ich meine, haben Sie "@ Component" oder "@ Service" in dieser Klasse? – pvpkiran
Kein Kiran ist nicht da. Ich habe jetzt @Component hinzugefügt und getestet. Immer noch das gleiche – Yakhoob
Kiran, ich habe gerade gefunden, wenn ich es mit ein paar Test-Controller testen, dao ist nicht null. aber wenn ich versuche, das SOAPUI-Tool zu verwenden, gibt es null. – Yakhoob