title: java.lang.IllegalArgumentException: can't parse argument number: Phone
body: <p>Since i used the @phone annotation as validator it rising 
  some exception as illegal argument.Any clues? How to have our own annotation in this im using @Ajay for phone validating but its not working.Please help me to resolve this problem and send me code for having customize validation. or please share some links to understand about custom validation.</p>
  
  <p>This is my model class:</p>
  
  <pre><code>            package com.dineshonjava.bean;
  
  
              import com.dineshonjava.validator.Ajay;
             @Entity
              @Table(name="employees")
              @SecondaryTable(name="employeedetails")
              public class EmployeeBean {
              @Ajay
              private String phone;
  
  
              public String getPhone() {
                  return phone;
              }
              public void setPhone(String phone) {
                  this.phone = phone;
              }
  
              }
  </code></pre>
  
  <p>This is my customized annotation class.This code i got it from internet but its showing error when implementing in my project.i dono how to have customize validation in my project.
  Ajay Annotation:</p>
  
  <pre><code>            package com.dineshonjava.validator;
               import java.lang.annotation.Documented;
              import java.lang.annotation.Retention;
              import java.lang.annotation.Target;
              import java.lang.annotation.ElementType;
              import java.lang.annotation.RetentionPolicy;
             import javax.validation.Constraint;
              import javax.validation.Payload;
              @Documented
              @Constraint(validatedBy = AjayValidator.class)
              @Target( { ElementType.METHOD, ElementType.FIELD })
              @Retention(RetentionPolicy.RUNTIME)
              public @interface Ajay {
                   String message() default "{Phone}";
  
                  Class&lt;?&gt;[] groups() default {};
  
                  Class&lt;? extends Payload&gt;[] payload() default {};
  
              }
  </code></pre>
  
  <p>This is my Validator class here i did coding for validating my phone number here i did customized validation for that @Ajay annotation i did validation in this validator class.
  Ajay Validator:</p>
  
  <pre><code>            package com.dineshonjava.validator;
  
              import javax.validation.ConstraintValidator;
              import javax.validation.ConstraintValidatorContext;
  
              public class AjayValidator implements ConstraintValidator&lt;Ajay, String&gt; {
  
                      @Override
                      public void initialize(Ajay ajay) { 
  
                      }
                    @Override
              public boolean isValid(String phone, ConstraintValidatorContext cxt) {
                  if(phone == null) {
                      return false;
                  }
                  return phone.matches("[0-9()-/.]*");
              }
  
              }
  </code></pre>
  
  <p>error while running my coding:</p>
  
  <pre><code>Nov 20, 2017 12:37:57 PM org.apache.catalina.core.AprLifecycleListener init
  INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_151\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_151/bin/server;C:/Program Files/Java/jre1.8.0_151/bin;C:/Program Files/Java/jre1.8.0_151/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ecllipse\eclipse;;.
  Nov 20, 2017 12:37:58 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
  WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Spring3HibernateApp' did not find a matching property.
  Nov 20, 2017 12:37:58 PM org.apache.coyote.AbstractProtocol init
  INFO: Initializing ProtocolHandler ["http-bio-8080"]
  Nov 20, 2017 12:37:58 PM org.apache.coyote.AbstractProtocol init
  INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
  Nov 20, 2017 12:37:58 PM org.apache.catalina.startup.Catalina load
  INFO: Initialization processed in 438 ms
  Nov 20, 2017 12:37:58 PM org.apache.catalina.core.StandardService startInternal
  INFO: Starting service Catalina
  Nov 20, 2017 12:37:58 PM org.apache.catalina.core.StandardEngine startInternal
  INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
  log4j:WARN No appenders could be found for logger (org.springframework.web.servlet.DispatcherServlet).
  log4j:WARN Please initialize the log4j system properly.
  Nov 20, 2017 12:38:00 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring FrameworkServlet 'sdnext'
  Nov 20, 2017 12:38:02 PM org.apache.coyote.AbstractProtocol start
  INFO: Starting ProtocolHandler ["http-bio-8080"]
  Nov 20, 2017 12:38:02 PM org.apache.coyote.AbstractProtocol start
  INFO: Starting ProtocolHandler ["ajp-bio-8009"]
  Nov 20, 2017 12:38:02 PM org.apache.catalina.startup.Catalina start
  INFO: Server startup in 3897 ms
  Nov 20, 2017 12:38:04 PM org.apache.catalina.core.ApplicationDispatcher invoke
  SEVERE: Servlet.service() for servlet jsp threw exception
  java.lang.NumberFormatException: For input string: "Phone"
      at java.lang.NumberFormatException.forInputString(Unknown Source)
      at java.lang.Integer.parseInt(Unknown Source)
      at java.lang.Integer.parseInt(Unknown Source)
      at java.text.MessageFormat.makeFormat(Unknown Source)
      at java.text.MessageFormat.applyPattern(Unknown Source)
      at java.text.MessageFormat.&lt;init&gt;(Unknown Source)
      at org.springframework.context.support.MessageSourceSupport.createMessageFormat(MessageSourceSupport.java:115)
      at org.springframework.context.support.MessageSourceSupport.formatMessage(MessageSourceSupport.java:99)
      at org.springframework.context.support.AbstractMessageSource.renderDefaultMessage(AbstractMessageSource.java:275)
      at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:152)
      at org.springframework.context.support.AbstractApplicationContext.getMessage(AbstractApplicationContext.java:1165)
      at org.springframework.web.servlet.support.RequestContext.getMessage(RequestContext.java:559)
      at org.springframework.web.servlet.support.BindStatus.initErrorMessages(BindStatus.java:177)
      at org.springframework.web.servlet.support.BindStatus.getErrorMessages(BindStatus.java:273)
      at org.springframework.web.servlet.tags.form.ErrorsTag.exposeAttributes(ErrorsTag.java:172)
      at org.springframework.web.servlet.tags.form.AbstractHtmlElementBodyTag.writeTagContent(AbstractHtmlElementBodyTag.java:48)
      at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
      at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
      at org.apache.jsp.WEB_002dINF.views.addEmployee_jsp._jspService(addEmployee_jsp.java:393)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
      at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
      at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
      at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  
  Nov 20, 2017 12:38:04 PM org.apache.catalina.core.StandardWrapperValve invoke
  SEVERE: Servlet.service() for servlet [sdnext] in context with path [/sdnext] threw exception [java.lang.IllegalArgumentException: can't parse argument number: Phone] with root cause
  java.lang.NumberFormatException: For input string: "Phone"
      at java.lang.NumberFormatException.forInputString(Unknown Source)
      at java.lang.Integer.parseInt(Unknown Source)
      at java.lang.Integer.parseInt(Unknown Source)
      at java.text.MessageFormat.makeFormat(Unknown Source)
      at java.text.MessageFormat.applyPattern(Unknown Source)
      at java.text.MessageFormat.&lt;init&gt;(Unknown Source)
      at org.springframework.context.support.MessageSourceSupport.createMessageFormat(MessageSourceSupport.java:115)
      at org.springframework.context.support.MessageSourceSupport.formatMessage(MessageSourceSupport.java:99)
      at org.springframework.context.support.AbstractMessageSource.renderDefaultMessage(AbstractMessageSource.java:275)
      at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:152)
      at org.springframework.context.support.AbstractApplicationContext.getMessage(AbstractApplicationContext.java:1165)
      at org.springframework.web.servlet.support.RequestContext.getMessage(RequestContext.java:559)
      at org.springframework.web.servlet.support.BindStatus.initErrorMessages(BindStatus.java:177)
      at org.springframework.web.servlet.support.BindStatus.getErrorMessages(BindStatus.java:273)
      at org.springframework.web.servlet.tags.form.ErrorsTag.exposeAttributes(ErrorsTag.java:172)
      at org.springframework.web.servlet.tags.form.AbstractHtmlElementBodyTag.writeTagContent(AbstractHtmlElementBodyTag.java:48)
      at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
      at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
      at org.apache.jsp.WEB_002dINF.views.addEmployee_jsp._jspService(addEmployee_jsp.java:393)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
      at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
      at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
      at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  </code></pre>