java.lang.NumberFormatException:对于输入字符串:“add”

时间:2013-04-27 15:46:06

标签: java web-services netbeans

您好,我使用奇数或偶数邮寄了一个Web服务,当我在netbeans中为该Web服务生成客户端时,我遇到了这个错误。 这里的网络服务:

@WebService(serviceName = "Par_Impar")
public class Par_Impar {

/**
 * Web service operation
 */
@WebMethod(operationName = "operation")
public String operation(@WebParam(name = "val") int val) {
   if(val%2!=0){
       //daca reminder-ul nu este 0 este impar
       return("IMPAR");
   }
   else {
       //daca reminder-ul este 0 atunci este par
       return("PAR");
   }
}

}

index.jsp:

<html>
<head>
    <title>PAGINA JSP</title>   
</head>
<body>
    <form action="action.jsp" method="post"<br/>
          Introdu numarul :<input type="text" name="nr"/><br/>
        <input type="submit" value="Testeaza"/>
</form>

</body>

action.jsp:

<%-- 
Document   : action
Created on : Apr 27, 2013, 5:28:45 PM
Author     : ARB
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <h1>Hello World!</h1>
<%-- start web service invocation --%><hr/>
<%
String add=request.getParameter("numar");
int aa=Integer.parseInt("add");
try {
mypack.ParImpar_Service service = new mypack.ParImpar_Service();
mypack.ParImpar port = service.getParImparPort();
 // TODO initialize WS operation arguments here
int val=aa;
    // TODO process result here
java.lang.String result = port.operation(aa);
out.println("Result = "+result);
} catch (Exception ex) {
// TODO handle custom exceptions here
}
%>
<%-- end web service invocation --%><hr/>
</body>
</html>

请帮帮我。谢谢!

2 个答案:

答案 0 :(得分:4)

int aa=Integer.parseInt("add");

上面的行应该是:

int aa=Integer.parseInt(add);

parseInt

  

将字符串参数解析为指定基数中的有符号整数   通过第二个论点。字符串中的字符必须全部   指定基数的数字(由是否确定   Character.digit(char,int)返回一个非负值),除了   第一个字符可以是ASCII减号' - '('\ u002D')   表示负值或ASCII加号'+'('\ u002B')   表示正值。返回结果整数值。

     

如果有任何异常,则抛出NumberFormatException类型的异常   发生以下情况:

     
      
  1. 第一个参数为null或是一个长度为零的字符串。
  2.   
  3. 基数小于Character.MIN_RADIX或大于   Character.MAX_RADIX。
  4.   
  5. 字符串的任何字符都不是指定基数的数字,   除了第一个字符可能是减号' - '('\ u002D')   或加号'+'('\ u002B'),前提是字符串长于   长度1.

  6.   
  7. 字符串表示的值不是int类型的值。

  8.   

答案 1 :(得分:0)

从index.jsp发送名为nr的参数,但在action.jsp上,您正在检索名为numar的参数。由于请求中没有此类参数,因此最终解析为null。 @Achintya所说的也适用。