Note that there are some explanatory texts on larger screens.

plurals
  1. POUnable to load validation xml file in struts2 framework
    primarykey
    data
    text
    <p>I am trying to do validation on my action class Employee1. I used the file Employee1-validation.xml . I am getting an exception like this :</p> <pre><code>18:19:56,795 ERROR AnnotationActionValidatorManager:38 - Caught exception while loading file com/struts2examples/Employee1-validation.xml Connection refused: connect - [unknown location] at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:119) at com.opensymphony.xwork2.validator.DefaultValidatorFileParser.parseActionValidatorConfigs(DefaultValidatorFileParser.java:82) at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.loadFile(AnnotationActionValidatorManager.java:394) at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.buildClassValidatorConfigs(AnnotationActionValidatorManager.java:279) at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.buildValidatorConfigs(AnnotationActionValidatorManager.java:371) at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.getValidators(AnnotationActionValidatorManager.java:99) at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:141) at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:133) at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:128) at com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:222) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:161) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434) 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:225) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:378) at sun.net.www.http.HttpClient.openServer(HttpClient.java:473) at sun.net.www.http.HttpClient.&lt;init&gt;(HttpClient.java:203) at sun.net.www.http.HttpClient.New(HttpClient.java:290) at sun.net.www.http.HttpClient.New(HttpClient.java:306) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:995) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:931) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:849) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:632) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1270) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1237) at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:260) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1153) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1049) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:962) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302) at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:117) ... 65 more </code></pre> <p>This is my empinfo1.jsp page : </p> <pre><code>&lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%&gt; &lt;%@ taglib prefix="s" uri="/struts-tags"%&gt; &lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Employee Form&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;s:form action="empinfo1" method="post"&gt; &lt;s:textfield name="name" label="Name" size="20" /&gt; &lt;s:textfield name="age" label="Age" size="20" /&gt; &lt;s:submit name="submit" label="Submit" align="center" /&gt; &lt;/s:form&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>The struts.xml file I am using is : </p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"&gt; &lt;struts&gt; &lt;constant name="struts.devMode" value="true" /&gt; &lt;constant name="struts.multipart.maxSize" value="1000000" /&gt; &lt;package name="helloworld" extends="struts-default"&gt; &lt;interceptors&gt; &lt;interceptor name="myinterceptor" class="com.struts2examples.MyInterceptor" /&gt; &lt;interceptor name="myinterceptor1" class="com.struts2examples.MyInterceptor1" /&gt; &lt;/interceptors&gt; &lt;action name="hello" class="com.struts2examples.HelloWorldAction" method="execute"&gt; &lt;interceptor-ref name="defaultStack" /&gt; &lt;interceptor-ref name="params"/&gt; &lt;interceptor-ref name="myinterceptor"/&gt; &lt;interceptor-ref name="myinterceptor1"/&gt; &lt;result name="success"&gt;/HelloWorld.jsp&lt;/result&gt; &lt;result name="error"&gt;/AccessDenied.jsp&lt;/result&gt; &lt;/action&gt; &lt;action name="hello1" class="com.struts2examples.HelloWorldAction1" method="execute"&gt; &lt;interceptor-ref name="defaultStack" /&gt; &lt;interceptor-ref name="timer"/&gt; &lt;result name="success" type="freemarker"&gt; &lt;param name="location"&gt;/hello.fm&lt;/param&gt; &lt;/result&gt; &lt;result name="nopassnofail" type="redirect"&gt; &lt;param name="location"&gt;/NewWorld.jsp&lt;/param &gt; &lt;/result&gt; &lt;result name="error"&gt;/AccessDenied.jsp&lt;/result&gt; &lt;/action&gt; &lt;action name="upload" class="com.struts2examples.UploadFile" method="execute"&gt; &lt;interceptor-ref name="defaultStack" /&gt; &lt;interceptor-ref name="fileUpload"&gt; &lt;param name="allowedTypes"&gt;image/jpeg,image/gif&lt;/param&gt; &lt;/interceptor-ref&gt; &lt;result name="success"&gt;/success.jsp&lt;/result&gt; &lt;result name="error"&gt;/error.jsp&lt;/result&gt; &lt;/action&gt; &lt;action name="loginaction" class="com.struts2examples.LoginAction" method="execute"&gt; &lt;result name="success"&gt;/successLogin.jsp&lt;/result&gt; &lt;result name="error"&gt;/errorLogin.jsp&lt;/result&gt; &lt;/action&gt; &lt;action name="emailer" class="com.struts2examples.Emailer" method="execute"&gt; &lt;result name="success"&gt;/successMail.jsp&lt;/result&gt; &lt;result name="error"&gt;/errorMail.jsp&lt;/result&gt; &lt;/action&gt; &lt;action name="empinfo" class="com.struts2examples.Employee" method="execute"&gt; &lt;result name="input"&gt;/empinfo.jsp&lt;/result&gt; &lt;result name="success"&gt;/successEmpInfo.jsp&lt;/result&gt; &lt;/action&gt; &lt;action name="empinfo1" class="com.struts2examples.Employee1" method="execute"&gt; &lt;result name="input"&gt;/empinfo1.jsp&lt;/result&gt; &lt;result name="success"&gt;/successEmpInfo.jsp&lt;/result&gt; &lt;/action&gt; &lt;/package&gt; &lt;/struts&gt; </code></pre> <p>The project workspace looks like : </p> <p><img src="https://i.stack.imgur.com/lizGg.jpg" alt="Project workspace"></p> <p>The Employee1.java looks like :</p> <pre><code>package com.struts2examples; import com.opensymphony.xwork2.ActionSupport; public class Employee1 extends ActionSupport{ private String name; private int age; public String execute() { return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } </code></pre> <p>The Employee1-validation.xml file is in the same package.It is described below : </p> <pre><code>&lt;!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"&gt; &lt;validators&gt; &lt;field name="name"&gt; &lt;field-validator type="required"&gt; &lt;message&gt; The name is required. &lt;/message&gt; &lt;/field-validator&gt; &lt;/field&gt; &lt;field name="age"&gt; &lt;field-validator type="int"&gt; &lt;param name="min"&gt;29&lt;/param&gt; &lt;param name="max"&gt;64&lt;/param&gt; &lt;message&gt; Age must be in between 28 and 65 &lt;/message&gt; &lt;/field-validator&gt; &lt;/field&gt; &lt;/validators&gt; </code></pre> <p>I am getting a warning on this line :</p> <pre><code>"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"&gt; </code></pre> <p>The file cannot be validated as the XML definition "<a href="http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd" rel="nofollow noreferrer">http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd</a>" that is specified as describing the syntax of the file cannot be located.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload