抱歉,如果我的问题令人困惑,因为这是我第一次提出问题。 如果我能做些什么来让它更清楚,请告诉我,这样我就可以改进我提问的方式。
目前,我正在尝试从NetBeans制作Web服务,可以检查数据库中的一些数据。因为我是新手,所以我按照教程 http://programmerguru.com/webservice-tutorial/how-to-create-java-webservice-in-netbeans/制作 Web 服务。
但是当我尝试用MyBattis的常规方式检查数据库时,它一直给我java.lang.nulpointerexception。 当我尝试调试它时,它给了我"变量信息不可用,编译的源代码没有 -g 选项"并将我扔到 InvocationTargetException.java
public InvocationTargetException(Throwable target) {
super((Throwable)null); // Disallow initCause
this.target = target;
}
这是 Web 服务
的代码
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bismillah.berkah;
import com.bismillah.berkah.dao.DummyDao;
import com.bismillah.berkah.daoImpl.DummyDaoImpl;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
/**
*
* @author Ari
*/
@WebService(serviceName = "Check4Update")
public class Check4Update {
public DummyDaoImpl ddi;
/**
* This is a sample web service operation
*
* @param InTerminalNumber
* @return
*/
@WebMethod(operationName = "CheckUpdate")
public String hello(@WebParam(name = "InTerminalNumber") String InTerminalNumber) {
String OutError = "";
String OutMessage = "";
if (InTerminalNumber == null) {
return "InTerminalNumber can't be null";
} else {
Map mapdao = new HashMap<String, Object>();
Map map = new HashMap<String, Object>();
map.put("InTerminalNumber", InTerminalNumber);
mapdao = ddi.check4UpdatePatch(map);
OutError = (String) mapdao.get("OutError");
OutMessage = (String) mapdao.get("OutMessage");
return "Error : " + OutError + ", with message : " + OutMessage;
}
}
public void setDdi(DummyDaoImpl ddi) {
this.ddi = ddi;
}
}
这是代码 Mybattis impl
package com.bismillah.berkah.daoImpl;
import com.bismillah.berkah.Check4Update;
import com.bismillah.berkah.config.MyBatisConnectionFactory;
import com.bismillah.berkah.dao.*;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
/**
*
* @author Ari
*/
public class DummyDaoImpl
{
private SqlSessionFactory sqlSessionFactory;
public DummyDaoImpl()
{
sqlSessionFactory = MyBatisConnectionFactory.getSqlSessionFactory();
}
public Map check4UpdatePatch(Map map)
{
Check4Update c4u = new Check4Update();
c4u.setDdi(this);
SqlSession session = sqlSessionFactory.openSession();
try
{
session.selectOne("dummy.check4UpdatePatch", map);
} catch (Exception ex)
{
ex.toString();
} finally
{
session.close();
}
return map;
}
}
你能告诉我如何解决它吗? 这样我就可以获取数据了? 顺便说一下,我总是被扔到我的 Web 服务上,正是
在这里
mapdao = ddi.check4UpdatePatch(map);
再次抱歉,如果我的问题令人困惑,因为这是我第一次提出问题。 如果我能做些什么来让它更清楚,请告诉我,这样我就可以改进我提问的方式。
抱歉已经发现了问题,这是导致Mybatis上的配置错误。
我没有更改我在 MyBatisConnectionFactory 上的字符串资源,也是 XML 文件中的资源。
也许这就是为什么我总是得到Java Lang Nul。
实际上,当我尝试解决此问题时,我也制作了一些接口类,但在找到问题之前仍然无法正常工作。 如果有人像我一样遇到问题,也许您可以通过添加一些接口来修复它,以便 impl 将覆盖该接口。