报错信息:
信息: exception while executing command org.jbpm.pvm.internal.cmd.SetTaskVariablesCmd@14b2263
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:424)
at java.lang.Long.parseLong(Long.java:461)
at org.jbpm.pvm.internal.cmd.SetTaskVariablesCmd.execute(SetTaskVariablesCmd.java:48)
at org.jbpm.pvm.internal.cmd.SetTaskVariablesCmd.execute(SetTaskVariablesCmd.java:33)
at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:56)
at org.jbpm.pvm.internal.svc.TaskServiceImpl.setVariables(TaskServiceImpl.java:200)
at com.jbpm.managerimpl.JbpmManagerImpl.complate(JbpmManagerImpl.java:64)
at com.jbpm.action.JbpmAction.submit(JbpmAction.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
根据提示报错的两个地方如下:
public void complate(String taskId, Map<String, Object> map) {
taskService.setVariables(taskId, map);
taskService.completeTask(taskId);
}
public String submit() { String day = processDto.getDay();
map = new HashMap<String, Object>(); if ("" != day || null != day) {
map.put("day", Integer.parseInt(day)); } else {
map.put("day", Integer.parseInt("0"));
}
map.put("day", processDto.getDay()); map.put("owner", processDto.getOwner());
map.put("reason", processDto.getReason());
map.put("name", processDto.getOwner());
jbpmManager.complate(processDto.getTaskId(), map); return SUCCESS;
}Java异常String对象

解决方案 »

  1.   

    map.put("day", processDto.getDay());
     这一句就是多余的,你又绕回去了。
      

  2.   

    回复fangmingshijie
    map.put("day", processDto.getDay());
    这句拿掉了还是报一样的错。
    信息: exception while executing command org.jbpm.pvm.internal.cmd.SetTaskVariablesCmd@1584be7
    java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Long.parseLong(Long.java:424)
    at java.lang.Long.parseLong(Long.java:461)
    at org.jbpm.pvm.internal.cmd.SetTaskVariablesCmd.execute(SetTaskVariablesCmd.java:48)
    at org.jbpm.pvm.internal.cmd.SetTaskVariablesCmd.execute(SetTaskVariablesCmd.java:33)
    at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
    at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
    at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)
    at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
    at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
    at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:56)
    at org.jbpm.pvm.internal.svc.TaskServiceImpl.setVariables(TaskServiceImpl.java:200)
    at com.jbpm.managerimpl.JbpmManagerImpl.complate(JbpmManagerImpl.java:64)
    at com.jbpm.action.JbpmAction.submit(JbpmAction.java:122)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      

  3.   

    报错的是这两行
    taskService.setVariables(taskId, map); 
    jbpmManager.complate(processDto.getTaskId(), map); 
      

  4.   

    自己看下有没有parseInt或者parseLong的语句,都判断下。
      

  5.   

    既然day是字符串,那应该用equals去判断它是否为空吧? !day.trim().equals("")
      

  6.   


    没有了,整个项目就day这里写了
      

  7.   

    if ("" != day || null != day)这句逻辑有问题吧,应该是这样吧
    if (day!=null && !day.equals(""))
      

  8.   

    !day.trim().equals("") 
    这个也不行,还是一样的报错
      

  9.   

    if (day!=null && !day.equals("")) 
    这个试了下,也不行不知道什么稀奇古怪的错误
      

  10.   

    if ("" != day || null != day) {
                map.put("day", Integer.parseInt(day));
     
            } else {
                map.put("day", Integer.parseInt("0"));
            }

            map.put("day", processDto.getDay());
    红色部分和黄色部分重复,而且建议判断字符串为空或"",使用StringUtil.isEmpty(String)或者StringUtil.isBlank(String)
      

  11.   

    还有在java中对象比较使用equals,但还是建议使用StringUtil