Java Spring WebMVC WebService数据存储自动连接空
我正在使用WebMVC并按类生成web服务。Web服务响应很好,但在数据存储时会出现null点异常 web服务类,PIDNHEADDAO1获取空点异常Java Spring WebMVC WebService数据存储自动连接空,java,spring,web-services,Java,Spring,Web Services,我正在使用WebMVC并按类生成web服务。Web服务响应很好,但在数据存储时会出现null点异常 web服务类,PIDNHEADDAO1获取空点异常 public class wm011DNinfo { @Autowired private PIDNHeaderDAO piDNHeaderDAO1; public OUTDNResponse[] processGenerate(INDNHeader[] inDNHeaders, INDNItem[] inDNItem
public class wm011DNinfo {
@Autowired
private PIDNHeaderDAO piDNHeaderDAO1;
public OUTDNResponse[] processGenerate(INDNHeader[] inDNHeaders, INDNItem[] inDNItems) {
//for data store
PIDNHeader dnHeader = new PIDNHeader();
dnHeader.setVbeln("test1");
dnHeader.setVstel("test2");
System.out.println("@ "+piDNHeaderDAO1);
//System.out.println("@ "+piDNHeaderDAO2);
piDNHeaderDAO1.saveOrUpdate(dnHeader);
//for response
OUTDNResponse[] outDNarray = new OUTDNResponse[1];
OUTDNResponse outDN = new OUTDNResponse();
outDN.setVbeln("OK");
outDN.setZzint_msg("S");
outDNarray[0] = outDN;
return outDNarray;
}
}
皮德黑德道
package net.viralpatel.spring.dao;
import java.util.List;
import net.viralpatel.spring.model.PIDNHeader;
public interface PIDNHeaderDAO {
public void saveOrUpdate(PIDNHeader dnHeader);
public void delete(String vbeln);
public PIDNHeader get(String vbeln);
public List<PIDNHeader> list();
}
通过eclipse web service explorer调用web service后,获取以下消息:
<soapenv:Fault>
<soapenv:Fault>
<faultcode>soapenv:ServeruserException</faultcode>
<faultstring>java.lang.NullPointerException</faultstring>
<detail>
<nsl:hostname xmlns:ns1="http://xml.apache.org/axis/">home.local</nsl:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
soapenv:ServeruserException
java.lang.NullPointerException
家乡
wm011dinfo
类不是Springbean。因此,您不能通过@Autowired
向它注入其他bean(PIDNHeaderDAO
)。使用类似于@Component
的东西,或者使用@Bean
注释手动创建一个方法(就像您在getPIDNHeaderDAO
方法中所做的那样)。您如何知道它不是Bean。可能代码中只缺少注释snipped@Jens可能是。如果我错了,我会删除我的答案。但我很确定我没有。:)我已经添加了@Component公共类PIDNHeaderDAOImpl实现了PIDNHeaderDAO,但是我的另一个mvc java类在编译时会出错。错误:上下文初始化失败org.springframework.beans.factory.UnsatifiedPendencyException:创建名为“helloController”的bean时出错:通过字段“piDNHeaderDAO”表示的未满足的依赖关系:没有[net.ViralPetel.spring.dao.piDNHeaderDAO]类型的合格bean定义为:预期为单个匹配bean,但找到2:PIDNHeaderDAOImpl,getPIDNHeaderDAO;非常好!进步!您可以通过使用@Qualifier
注释和@Autowired
来明确指定要注入的bean的名称(pIDHeaderDAO
)。在你的getPIDNHeaderDAO
@Bean
注释中,你可以提供该Bean的名称(pIDHeaderDAO
),我不明白你提到了“在你的getPIDNHeaderDAO@Bean注释中,你可以提供该Bean的名称(pIDHeaderDAO)”。如何?请告知,谢谢
package net.viralpatel.spring.config;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
import net.viralpatel.spring.dao.PIDNHeaderDAO;
import net.viralpatel.spring.dao.PIDNHeaderDAOImpl;
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "net.viralpatel.spring")
public class AppConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
System.out.println("appconfig start");
return viewResolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
@Bean
public DataSource getDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
dataSource.setUrl("jdbc:sqlserver://192.168.4.22;DatabaseName=xxxx");
dataSource.setUsername("xxxxx");
dataSource.setPassword("accxxxxxpac");
return dataSource;
}
@Bean
public PIDNHeaderDAO getPIDNHeaderDAO() {
System.out.println("PIDNHeaderDAO start");
return new PIDNHeaderDAOImpl(getDataSource());
}
}
<soapenv:Fault>
<soapenv:Fault>
<faultcode>soapenv:ServeruserException</faultcode>
<faultstring>java.lang.NullPointerException</faultstring>
<detail>
<nsl:hostname xmlns:ns1="http://xml.apache.org/axis/">home.local</nsl:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>