SpringMVCspring service空指针() doget()报空指针 求助

匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。SpringMVC中使用@autowired自动注解出现空指针异常_百度知道
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
SpringMVC中使用@autowired自动注解出现空指针异常
所用的Controller和service引用dao时候都使用了@Autowired,但是在执行的时候出现空指针异常
其他地方使用都正常
您的回答被采纳后将获得:
系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
我有更好的答案
是不是扫描的时候dao所在的包没包含住
兄台是不是在@Autowired之后又new了个对象阿?
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包相关文章推荐
如何通过spring 向quartz动态注入service或者,传入动态参数?
这里主要用到了org.springframework.scheduling.quartz.JobDetailBean...
项目过程中有这样一个场景:调用w
一般情况下,quartz的job中使用autowired注解注入的对象为空,这时候我们就要使用spring-quartz提供的AdaptableJobFactory类。
自定义一个类:
转载地址:/dupang/p/6063734.html今天想单元测试一下spring中的quartz定时任务,job类的大致结构和下面的SpringQtz1...
如何通过spring 向quartz动态注入service或者,传入动态参数?
这里主要用到了org.springframework.scheduling.quartz.JobDetailBean...
这几天需要用到定时任务调度,开始准备用timer,后来经过别人介绍与spring集成的quartz,看了下更适合开发,因此转向quartz的学习,特此记录下来。
quartz使用起来及其方便,与s...
一般情况下,quartz的job中使用autowired注解注入的对象为空,这时候我们就要使用spring-quartz提供的AdaptableJobFactory类。
自定义一个类:public ...
1、研究了quartz几天,问题发现不少,在全部配置好spring、quartz和mysql集群后,最后卡在一个空指针问题上
[java] view
项目中要用定时任务,采用的是Quartz,配置好了可以跑定时了,但是在读数据库的时候报空指针,注入的mapper接口类没有获取到,费了点时间找到了原因,在这里记录下。
我的Quartz是这么配置的
...
许久没有写博文了,今天来写写,毕业设计中遇到的某个小问题,及解决方法。
毕业设计中涉及到spring的定时器quartzy的使用,
遇到的问题是:quartzy中不能使用spring注入的方式注入da...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Jax-ws 开发webService ,并使用spring注入service类中遇到 空指针
一般情况下,使用eclipse自带的 jax-ws 生成webservice 会自动生成2个类:
ContractConnector Java
一般情况下,使用eclipse自带的 jax-ws 生成webservice 会自动生成2个类:
ContractConnector.
packagecom.wonders.webservice.
importjava.text.DecimalFimportjava.text.ParseE
importjava.text.SimpleDateFimportjava.util.D
importorg.dom4j.D
importorg.dom4j.DocumentEimportorg.dom4j.DocumentH
importorg.dom4j.E
importcom.wonders.webservice.contract.entity.bo.ContractWs;importcom.wonders.webservice.contract.service.ContractWsS
publicclassContractConnector{
publicContractConnector(){
System.out.println("初始化connecter");}
privatestaticContractWsServicecontractWsS
publicvoidsetContractWsService(ContractWsServicecontractWsService){
this.contractWsService=contractWsS}
publicStringsaveContract(StringcontractXML,Stringsecret){
if(secret==null||!"abcd".equals(secret)){return"验证码错误!";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");ContractWscontractWs=newContractWs();//存到临时表中去
Documentdocument=DocumentHelper.parseText(contractXML);
Elementroot=document.getRootElement();
/**必填区域**///1.合同名称
StringcontractName=root.elementText("contractName");if(!isEmpty(contractName)){
contractWs.setContractName(contractName);}else{
return"contractName(合同名称)不能为空";}
//2.合同编号StringcontractNo=root.elementText("contractNo");
if(!isEmpty(contractNo)){contractWs.setContractNo(contractNo);
}else{return"contractNo(合同编号)不能为空";
}//3.合同价
StringcontractPrice=root.elementText("contractPrice");if(!isEmpty(contractPrice)){
try{contractWs.setContractPrice(getFormattedMoney(contractPrice));
}catch(Exceptione){return"contractPrice(合同价)只能输入数字";
return"contractPrice(合同价)不能为空";}
/**项目要插id,是否根据projectName和projectNo查询后插入//4.项目名称
StringprojectName=root.elementText("projectName");if(!isEmpty(projectName)){
contract.setProjectName(projectName);}else{
return"projectName(项目名称)不能为空";}
//5.项目编号StringprojectNo=root.elementText("projectNo");
if(!isEmpty(projectNo)){contract.setProjectNo(projectNo);
}else{return"projectNo(项目编号)不能为空";
}**//**非必填**/
//6.审定价(投资监理)(万元)StringinvestSupervisorPrice=root.elementText("investSupervisorPrice");
if(!isEmpty(investSupervisorPrice)){try{
contractWs.setFinalPrice(getFormattedMoney(investSupervisorPrice));}catch(Exceptione){
return"investSupervisorPrice(审定价(投资监理)只能输入数字)";}
}//7.审定价(审价单位)
StringverifyPrice=root.elementText("verifyPrice");if(!isEmpty(verifyPrice)){
try{contractWs.setVerifyPrice(getFormattedMoney(verifyPrice));
}catch(Exceptione){return"verifyPrice(审定价(审价单位)只能输入数字)";
//7.审定价(国家审计)StringnationVerifyPrice=root.elementText("nationVerifyPrice");
if(!isEmpty(verifyPrice)){try{
contractWs.setNationVerifyPrice(getFormattedMoney(nationVerifyPrice));}catch(Exceptione){
return"nationVerifyPrice(审定价(国家审计)只能输入数字)";}
//8.甲方出资//9.甲方执行
//10.对方单位
//11.支付方式StringpayType=root.elementText("payType");
if(!isEmpty(payType)){contractWs.setPayType(payType);
}//12.合同签约时间
StringcontractSignedDate=root.elementText("contractSignedDate");if(!isEmpty(contractSignedDate)){
try{sdf.parse(contractSignedDate);
contractWs.setContractSignedDate(contractSignedDate);}catch(ParseExceptione){
return"contractSignedDate(合同签约时间)数据错误";}
}//13.合同审批通过时间
StringcontractPassedDate=root.elementText("contractPassedDate");if(!isEmpty(contractPassedDate)){
try{sdf.parse(contractPassedDate);
contractWs.setContractPassedDate(contractPassedDate);}catch(ParseExceptione){
return"contractPassedDate(合同审批通过时间)数据错误";}
//14.合同开始时间StringcontractStartDate=root.elementText("contractStartDate");
if(!isEmpty(contractStartDate)){try{
sdf.parse(contractStartDate);contractWs.setContractStartDate(contractStartDate);
}catch(ParseExceptione){return"contractStartDate(合同开始时间)数据错误";
//15.合同结束时间StringcontractEndDate=root.elementText("contractStartDate");
if(!isEmpty(contractEndDate)){try{
sdf.parse(contractEndDate);contractWs.setContractEndDate(contractEndDate);
}catch(ParseExceptione){return"contractEndDate(合同结束时间)数据错误";
//16.合同状态StringcontractStatus=root.elementText("contractStatus");
if(!isEmpty(contractStatus)){if(contractStatus.equals("1")||contractStatus.equals("2")||contractStatus.equals("3")){
contractWs.setContractStatus(contractStatus);}else{
return"contractStatus(合同状态)数据错误";}
}//17.合同类型
StringcontractType=root.elementText("contractType");if(!isEmpty(contractType)){
try{Stringtypes[]=contractType.split("-");
if(types.length==2){inttype1=Integer.valueOf(types[0]);
inttype2=Integer.valueOf(types[1]);if(type1==1){
if(type2&=1&&type2&=8){contractWs.setContractType(contractType);
}else{return"contractType(合同类型)数据错误";
}}elseif(type1==2){
if(type2&=1&&type2&=3){contractWs.setContractType(contractType);
}else{return"contractType(合同类型)数据错误";
}}elseif(type1==3){
if(type2==1){contractWs.setContractType(contractType);
}else{return"contractType(合同类型)数据错误";
}else{return"contractType(合同类型)数据错误";
}}catch(Exceptione){
return"contractType(合同类型)数据错误";}
//18.采购方式StringprocurementType=root.elementText("procurementType");
if(!isEmpty(procurementType)){try{
intinviteBidType=Integer.valueOf(procurementType);if(inviteBidType&=1&&inviteBidType&=3){
contractWs.setInviteBidType(procurementType);}else{
return"procurementType(采购方式)数据错误";}
}catch(NumberFormatExceptione){return"procurementType(采购方式)数据错误";
//19.合同附件//20.合同内容
StringcontractContent=root.elementText("contractContent");if(!isEmpty(contractContent)){
contractWs.setContractContent(contractContent);}
//21.备注信息Stringremark=root.elementText("remark");
if(!isEmpty(remark)){contractWs.setRemark("remark");
}contractWs.setRemoved("0");
contractWs.setCreateDate(sdf.format(newDate()));contractWsService.saveContractWs(contractWs);
}catch(DocumentExceptione){
return"解析错误!";}
return"保存成功";}
publicbooleanisEmpty(Stringstr){
if(str==null||"".equals(str))
//得到保留6位小数后的字符串publicStringgetFormattedMoney(Stringmoney){
if(money==null||"".equals(money)){money="0";
}money=money.trim();
Doubleresult=0d;try{
result=Double.valueOf(money);}catch(NumberFormatExceptione){
result=0d;}
DecimalFormatdf=newDecimalFormat("#0.000000");returndf.format(result);
package com.wonders.webservice.
import java.text.DecimalF
import java.text.ParseE
import java.text.SimpleDateF
import java.util.D
import org.dom4j.D
import org.dom4j.DocumentE
import org.dom4j.DocumentH
import org.dom4j.E
import com.wonders.webservice.contract.entity.bo.ContractWs;
import com.wonders.webservice.contract.service.ContractWsS
public class ContractConnector {
public ContractConnector() {
System.out.println("初始化connecter");
private static ContractWsService contractWsS
public void setContractWsService(ContractWsService contractWsService) {
this.contractWsService = contractWsS
public String saveContract(String contractXML,String secret){
if(secret==null || !"abcd".equals(secret)){
return "验证码错误!";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
ContractWs contractWs = new ContractWs();
//存到临时表中去
Document document = DocumentHelper.parseText(contractXML);
Element root = document.getRootElement();
/**必填区域**/
//1.合同名称
String contractName = root.elementText("contractName");
if(!isEmpty(contractName)){
contractWs.setContractName(contractName);
return "contractName(合同名称)不能为空";
//2.合同编号
String contractNo = root.elementText("contractNo");
if(!isEmpty(contractNo)){
contractWs.setContractNo(contractNo);
return "contractNo(合同编号)不能为空";
//3.合同价
String contractPrice = root.elementText("contractPrice");
if(!isEmpty(contractPrice)){
contractWs.setContractPrice(getFormattedMoney(contractPrice));
} catch (Exception e) {
return "contractPrice(合同价)只能输入数字";
return "contractPrice(合同价)不能为空";
/** 项目要插id,是否根据projectName和projectNo查询后插入
//4.项目名称
String projectName = root.elementText("projectName");
if(!isEmpty(projectName)){
contract.setProjectName(projectName);
return "projectName(项目名称)不能为空";
//5.项目编号
String projectNo = root.elementText("projectNo");
if(!isEmpty(projectNo)){
contract.setProjectNo(projectNo);
return "projectNo(项目编号)不能为空";
/**非必填**/
//6.审定价(投资监理)(万元)
String investSupervisorPrice = root.elementText("investSupervisorPrice");
if(!isEmpty(investSupervisorPrice)){
contractWs.setFinalPrice(getFormattedMoney(investSupervisorPrice));
} catch (Exception e) {
return "investSupervisorPrice(审定价(投资监理)只能输入数字)";
//7.审定价(审价单位)
String verifyPrice = root.elementText("verifyPrice");
if(!isEmpty(verifyPrice)){
contractWs.setVerifyPrice(getFormattedMoney(verifyPrice));
} catch (Exception e) {
return "verifyPrice(审定价(审价单位)只能输入数字)";
//7.审定价(国家审计)
String nationVerifyPrice = root.elementText("nationVerifyPrice");
if(!isEmpty(verifyPrice)){
contractWs.setNationVerifyPrice(getFormattedMoney(nationVerifyPrice));
} catch (Exception e) {
return "nationVerifyPrice(审定价(国家审计)只能输入数字)";
//8.甲方出资
//9.甲方执行
//10.对方单位
//11.支付方式
String payType = root.elementText("payType");
if(!isEmpty(payType)){
contractWs.setPayType(payType);
//12.合同签约时间
String contractSignedDate = root.elementText("contractSignedDate");
if(!isEmpty(contractSignedDate)){
sdf.parse(contractSignedDate);
contractWs.setContractSignedDate(contractSignedDate);
} catch (ParseException e) {
return "contractSignedDate(合同签约时间)数据错误";
//13.合同审批通过时间
String contractPassedDate = root.elementText("contractPassedDate");
if(!isEmpty(contractPassedDate)){
sdf.parse(contractPassedDate);
contractWs.setContractPassedDate(contractPassedDate);
} catch (ParseException e) {
return "contractPassedDate(合同审批通过时间)数据错误";
//14.合同开始时间
String contractStartDate = root.elementText("contractStartDate");
if(!isEmpty(contractStartDate)){
sdf.parse(contractStartDate);
contractWs.setContractStartDate(contractStartDate);
} catch (ParseException e) {
return "contractStartDate(合同开始时间)数据错误";
//15.合同结束时间
String contractEndDate = root.elementText("contractStartDate");
if(!isEmpty(contractEndDate)){
sdf.parse(contractEndDate);
contractWs.setContractEndDate(contractEndDate);
} catch (ParseException e) {
return "contractEndDate(合同结束时间)数据错误";
//16.合同状态
String contractStatus = root.elementText("contractStatus");
if(!isEmpty(contractStatus)){
if(contractStatus.equals("1") || contractStatus.equals("2") || contractStatus.equals("3")){
contractWs.setContractStatus(contractStatus);
return "contractStatus(合同状态)数据错误";
//17.合同类型
String contractType = root.elementText("contractType");
if(!isEmpty(contractType)){
String types[] = contractType.split("-");
if(types.length==2){
int type1 = Integer.valueOf(types[0]);
int type2 = Integer.valueOf(types[1]);
if(type1 == 1){
if(type2&=1 && type2&=8){
contractWs.setContractType(contractType);
return "contractType(合同类型)数据错误";
}else if(type1==2){
if(type2&=1 && type2&=3){
contractWs.setContractType(contractType);
return "contractType(合同类型)数据错误";
}else if(type1==3){
if(type2==1){
contractWs.setContractType(contractType);
return "contractType(合同类型)数据错误";
return "contractType(合同类型)数据错误";
} catch (Exception e) {
return "contractType(合同类型)数据错误";
//18.采购方式
String procurementType = root.elementText("procurementType");
if(!isEmpty(procurementType)){
int inviteBidType = Integer.valueOf(procurementType);
if(inviteBidType&=1 && inviteBidType&=3){
contractWs.setInviteBidType(procurementType);
return "procurementType(采购方式)数据错误";
} catch (NumberFormatException e) {
return "procurementType(采购方式)数据错误";
//19.合同附件
//20.合同内容
String contractContent = root.elementText("contractContent");
if(!isEmpty(contractContent)){
contractWs.setContractContent(contractContent);
//21.备注信息
String remark = root.elementText("remark");
if(!isEmpty(remark)){
contractWs.setRemark("remark");
contractWs.setRemoved("0");
contractWs.setCreateDate(sdf.format(new Date()));
contractWsService.saveContractWs(contractWs);
} catch (DocumentException e) {
return "解析错误!";
return "保存成功";
public boolean isEmpty(String str){
if(str ==null || "".equals(str))
//得到保留6位小数后的字符串
public String getFormattedMoney(String money){
if(money==null || "".equals(money)){
money = "0";
money = money.trim();
Double result = 0d;
result = Double.valueOf(money);
} catch (NumberFormatException e) {
result = 0d;
DecimalFormat df = new DecimalFormat("#0.000000");
return df.format(result);
ContractConnectorDelegate.java
packagecom.wonders.webservice.
@javax.jws.WebService(targetNamespace="https://contract./",serviceName="ContractConnectorService",portName="ContractConnectorPort",wsdlLocation="WEB-INF/wsdl/ContractConnectorService.wsdl")publicclassContractConnectorDelegate{
com.wonders.webservice.contract.ContractConnectorcontractConnector=newcom.wonders.webservice.contract.ContractConnector();
publicStringsaveContract(StringcontractXML,Stringsecret){
returncontractConnector.saveContract(contractXML,secret);}
package com.wonders.webservice.
@javax.jws.WebService(targetNamespace = "https://contract./", serviceName = "ContractConnectorService", portName = "ContractConnectorPort", wsdlLocation = "WEB-INF/wsdl/ContractConnectorService.wsdl")
public class ContractConnectorDelegate {
com.wonders.webservice.contract.ContractConnector contractConnector = new com.wonders.webservice.contract.ContractConnector();
public String saveContract(String contractXML, String secret) {
return contractConnector.saveContract(contractXML, secret);
ContractConnector中
ContractWsService该类中包含了存取数据及对hibernate 的使用,所以使用spring注入,但webservice调用时,一直抱空指针。
由于ContractConnectorDelegate类中 需要newContractConnector类 ,所以无法注入service
故最后将service修改为static 后,程序启动就注入,这样new 了之后,该service 存在。问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
service层调dao层
dao层如下:
springmvc.xml配置文件如下:
hibernate.xml配置文件如下:
本以为一切正常,一运行起来居然报了空指针错误!运行工程后控制台信息如下:
查了几次还是没结果。。哪位少侠看出了端倪,烦请告知一二,感激不尽。
这个问题已被关闭,原因:问题已解决 - 问题已解决,且对他人无借鉴意义
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这个问题已经被关闭无法回答
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?

我要回帖

更多关于 ssm service 空指针 的文章

 

随机推荐