在以前的webservice中添加新的接口 项目是使用spring注解来实现依赖注入的, 写好方法后 在main方法中测试报错,
其他类都很正常, new的类调用时总是报空指针。。 注入哪里有问题 谢谢 大神们
类代码。
@Component("muB2CDSG")
public class MUB2CDSGClientImpl implements MUB2CDSGClient {
@Autowired
private ParameterService parameterService;
@Autowired
private CustomerService customerService;
@Autowired
private TmsContextInfo tmsContextInfo;public void init()
{
if(userId == 0){
userId = customerService.getUserId();
}
if(salesChannel == null || salesChannel.equals("")){
salesChannel = customerService.getSalesChannel();
}
if(usm == null){
try {
String uniHost = tmsContextInfo.getUniHost();
wsUrl = uniHost + SALE_WS_NAME;
URL url = new URL(wsUrl);
usm = new UniDsgManagerImplServiceLocator().getUniDsgManagerImplPort(url);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
}
}
@Override
public UniDsgResult queryDsgInfo(String flightNo, String cabCode,
String date) throws TMSFirstException {
init(); UniDsgReq req=new UniDsgReq();
req.setSaleChannel(salesChannel);
req.setUserId(String.valueOf(userId));
req.setFlightNo(flightNo);
req.setCityPair(null);
req.setCabCode(cabCode); try {
UniDsgResult result=usm.displaySegment(req);
logger.info("MsgCode : " + result.getMsgCode());
logger.info("MsgDesc : " + result.getMsgDesc());
return result;
} catch (RemoteException e) {
e.printStackTrace();
}
return null;
}
main方法
public static void main(String[] args) {
try {
UniDsgResult result=new UniDsgResult();
result=dsgService.queryDsgInfo("MU5710", "y", "20110729");
System.out.println(result.getMsgCode());
System.out.println(result.getMsgDesc());
UniDsgSegment segment=result.getSegments(0);
System.out.println(segment.getCabin());
System.out.println(segment.getFlight());
System.out.println(segment.getStops());
for(int i=0;i<segment.getDstcity().length;i++){
System.out.println(segment.getDstcity(i));
}
System.out.println("***************");
for(int i=0;i<segment.getOrgcity().length;i++){
System.out.println(segment.getOrgcity(i));
}
// System.out.println(result.g());
System.out.println("***************");
} catch (TMSFirstException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
其他类都很正常, new的类调用时总是报空指针。。 注入哪里有问题 谢谢 大神们
类代码。
@Component("muB2CDSG")
public class MUB2CDSGClientImpl implements MUB2CDSGClient {
@Autowired
private ParameterService parameterService;
@Autowired
private CustomerService customerService;
@Autowired
private TmsContextInfo tmsContextInfo;public void init()
{
if(userId == 0){
userId = customerService.getUserId();
}
if(salesChannel == null || salesChannel.equals("")){
salesChannel = customerService.getSalesChannel();
}
if(usm == null){
try {
String uniHost = tmsContextInfo.getUniHost();
wsUrl = uniHost + SALE_WS_NAME;
URL url = new URL(wsUrl);
usm = new UniDsgManagerImplServiceLocator().getUniDsgManagerImplPort(url);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
}
}
@Override
public UniDsgResult queryDsgInfo(String flightNo, String cabCode,
String date) throws TMSFirstException {
init(); UniDsgReq req=new UniDsgReq();
req.setSaleChannel(salesChannel);
req.setUserId(String.valueOf(userId));
req.setFlightNo(flightNo);
req.setCityPair(null);
req.setCabCode(cabCode); try {
UniDsgResult result=usm.displaySegment(req);
logger.info("MsgCode : " + result.getMsgCode());
logger.info("MsgDesc : " + result.getMsgDesc());
return result;
} catch (RemoteException e) {
e.printStackTrace();
}
return null;
}
main方法
public static void main(String[] args) {
try {
UniDsgResult result=new UniDsgResult();
result=dsgService.queryDsgInfo("MU5710", "y", "20110729");
System.out.println(result.getMsgCode());
System.out.println(result.getMsgDesc());
UniDsgSegment segment=result.getSegments(0);
System.out.println(segment.getCabin());
System.out.println(segment.getFlight());
System.out.println(segment.getStops());
for(int i=0;i<segment.getDstcity().length;i++){
System.out.println(segment.getDstcity(i));
}
System.out.println("***************");
for(int i=0;i<segment.getOrgcity().length;i++){
System.out.println(segment.getOrgcity(i));
}
// System.out.println(result.g());
System.out.println("***************");
} catch (TMSFirstException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
service代码@Component("dsgService")
public class DSGServiceImpl implements DSGService {
@Autowired
private MUB2CDSGClient muB2CDSG; @Override
public UniDsgResult queryDsgInfo(String flightNo, String cabCode,
String date) throws TMSFirstException {
return muB2CDSG.queryDsgInfo(flightNo, cabCode, date);
}main方法代码
@Autowired
private static DSGService dsgService;
public static void main(String[] args) {
try {
UniDsgResult result=new UniDsgResult();
result=dsgService.queryDsgInfo("MU5710", "y", "20110729");
System.out.println(result.getMsgCode());
System.out.println(result.getMsgDesc());
UniDsgSegment segment=result.getSegments(0);
System.out.println(segment.getCabin());
System.out.println(segment.getFlight());
System.out.println(segment.getStops());
for(int i=0;i<segment.getDstcity().length;i++){
System.out.println(segment.getDstcity(i));
}
System.out.println("***************");
for(int i=0;i<segment.getOrgcity().length;i++){
System.out.println(segment.getOrgcity(i));
}
// System.out.println(result.g());
System.out.println("***************");
} catch (TMSFirstException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
Exception in thread "main" java.lang.NullPointerException
at net.rytong.tms.dao.ws.impl.Test.main(Test.java:22)
上边main方法的22行是 try{
再写别的代码 还是22行报错 是private static DSGService dsgService;报错了么。。