Java WebServices InvocationTargetException

时间:2019-05-13 10:33:33

标签: java java-ee

当我尝试向Web Service AddEmployee输入任何参数时,出现此异常

基本上,我想做的只是将一些数据插入MS Access数据库中,我认为最好的方法是创建一个包含函数和Web服务的Java类,并使用适当的参数调用这些函数,我有一个单独的Web服务用于建立与数据库的连接 我试过不带参数,带有伪参数,没有参数和空参数的情况,问题出在Web服务本身中,该函数运行正常,并且函数与数据库之间没有数据类型不匹配

网络服务代码

@WebMethod(operationName="AddEmployee")
public String NouveauEmployee(@WebParam (name="Prenom Nom")String Nom,@WebParam(name="Matricule")Float Mat,@WebParam(name="Code Service")Float CodeSrv,@WebParam(name="Service")String Service,@WebParam(name="Code Emploi")String CodeEmp,@WebParam(name="Groupe Professionnelle")String GrpPro) {
    return EM.functions.NvEmploye("Marouane Mhaiti",1254,110,"OIS/C/M","W7845","OE/GC");
}

功能代码

public static String NvEmploye (String Nom,Integer Matricule,Integer CodeSrv,String Service,String CodeEmp,String GrpPro) {
    Connection con=conout;
    Statement sqlStatement;
    try {
        sqlStatement = con.createStatement();
    } catch (SQLException e) {
        return "Error when creating statement";
    }

    String commandString="insert into Personel ([Nom Prenom],[Matricule],[Code Service],[Service],[Code emploi],[Groupe professionnelle]) values";
    commandString+="('"+Nom+"',"+Matricule+","+CodeSrv+",'"+Service+"','"+CodeEmp+"','"+GrpPro+"')";
    try {
        sqlStatement.execute(commandString);
        return "Employee added";
    } catch (SQLException e) {
        return "error when executing statement";
    }
  }

这有效

@WebMethod(operationName="AddEmployee") public String NouveauEmployee() { return EM.functions.NvEmploye("Marouane Mhaiti",1254,110,"OIS/C/M","W7845","OE/GC"); }


我在这里期望的是它从功能中弹出“已添加员工”消息,而是显示该消息

WS00041:服务调用引发了异常,消息为:null;请参阅服务器日志以获取更多详细信息 异常详细信息:java.lang.reflect.InvocationTargetException

基本上提供任何参数都会导致此异常,并且我确定该错误在Web服务上,因为它不会显示throw子句中的“ XXX时出现错误”

PS:无需审查此处显示的所有数据

1 个答案:

答案 0 :(得分:-1)

没关系的人,我发现它,基本上只是在NetBeans上进行了设计,我认为问题是这样的事实,即我有一些参数声明为Integer而不是int,不知道这是否是问题的根源,但是已经解决了当我使用NetBeans提供的功能时。