users@glassfish.java.net

Re: Unable to locate the DTD to validate your deployment descriptor file [WEB-INF/glassfish-web.xml] in archive

From: Hong Zhang <hong.hz.zhang_at_oracle.com>
Date: Wed, 19 Dec 2012 09:46:42 -0500

I think I know what's going on here. You might have a typo in your
glassfish-web.xml when declaring the DOCTYPE. Please make sure it
matches with the following line:

<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish
Application Server 3.1 Servlet 3.0//EN"
"http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">

The DOCTYPE is used to resolve the declared dtd to the local repository
and validate. When the DOCTYPE is wrong, it will try to go to internet
and fetch the dtd, and in this case with URL
"http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd". Unfortunately,
the machine hosting these DTDs are currently offline so you could not
get to them (the issue is being looked at right now). But if you fix the
DOCTYPE in your glassfish-web.xml, it will work for you (and that's the
expected normal scenario also, resolve to local repository and get dtd
from there, and it will be faster access).

- Hong


On 12/19/2012 8:14 AM, forums_at_java.net wrote:
> I have very bad issue. I have maven project. I could not any way
> deploy my
> project into Glassfish. Yesterday I could deploy it. This morning I could
> deploy it. Since morning I can't deploy the same project again! The
> error is
> in server.log: 2012-12-19T15:05:00.921+0200
> javax.enterprise.system.tools.admin.org.glassfish.deployment.admin
> SEVERE:
> Exception while deploying the app [JavaHelp] : Unable to locate the
> DTD to
> validate your deployment descriptor file [WEB-INF/glassfish-web.xml] in
> archive [JavaHelp]. Please make sure the DOCTYPE is correct (no typo in
> public ID or system ID) and you have proper access to the Internet.
> java.net.ConnectException: Connection refused: connect at
> java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method) 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.(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:630)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1268)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1235)
>
> 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:1151)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1047)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:960)
>
> 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:488)
>
> 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.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:306)
>
> at
> com.sun.enterprise.deployment.archivist.Archivist.readRuntimeDeploymentDescriptor(Archivist.java:711)
>
> at
> com.sun.enterprise.deployment.archivist.Archivist.readRuntimeDeploymentDescriptor(Archivist.java:661)
>
> at
> com.sun.enterprise.deployment.archivist.Archivist.readRestDeploymentDescriptors(Archivist.java:409)
>
> at
> com.sun.enterprise.deployment.archivist.Archivist.openWith(Archivist.java:264)
>
> at
> com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:240)
>
> at
> org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:175)
>
> at
> org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:94)
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:827)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:769)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:368)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
>
> at
> org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
>
> at
> com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
> at
> com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212) at
>
> com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
> at
> com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
> at
> com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
>
> at
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
>
> at
> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
> at
> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) at
> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) at
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
>
> at
> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
> at
> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
> at
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>
> at
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>
> at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at
> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>
> at
> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>
> at java.lang.Thread.run(Thread.java:722) 2012-12-19T15:08:32.328+0200
> javax.enterprise.system.tools.deployment.org.glassfish.deployment.common
> SEVERE: DPL8005: Deployment Descriptor parsing failure :
> [Ljava.lang.Object;@14ca61f 2012-12-19T15:08:32.328+0200
> javax.enterprise.system.core.com.sun.enterprise.v3.server SEVERE:
> Exception
> while deploying the app [JavaHelp] 2012-12-19T15:08:32.328+0200
> javax.enterprise.system.core.com.sun.enterprise.v3.server SEVERE:
> Unable to
> locate the DTD to validate your deployment descriptor file
> [WEB-INF/glassfish-web.xml] in archive [JavaHelp]. Please make sure the
> DOCTYPE is correct (no typo in public ID or system ID) and you have
> proper
> access to the Internet. java.io.IOException: Unable to locate the DTD to
> validate your deployment descriptor file [WEB-INF/glassfish-web.xml] in
> archive [JavaHelp]. Please make sure the DOCTYPE is correct (no typo in
> public ID or system ID) and you have proper access to the Internet. at
> com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:343)
>
> at
> com.sun.enterprise.deployment.archivist.Archivist.readRuntimeDeploymentDescriptor(Archivist.java:711)
>
> at
> com.sun.enterprise.deployment.archivist.Archivist.readRuntimeDeploymentDescriptor(Archivist.java:661)
>
> at
> com.sun.enterprise.deployment.archivist.Archivist.readRestDeploymentDescriptors(Archivist.java:409)
>
> at
> com.sun.enterprise.deployment.archivist.Archivist.openWith(Archivist.java:264)
>
> at
> com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:240)
>
> at
> org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:175)
>
> at
> org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:94)
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:827)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:769)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:368)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
>
> at
> org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
>
> at
> com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
> at
> com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212) at
>
> com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
> at
> com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
> at
> com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
>
> at
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
>
> at
> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
> at
> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) at
> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) at
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
>
> at
> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
> at
> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
> at
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>
> at
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>
> at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at
> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>
> at
> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>
> at java.lang.Thread.run(Thread.java:722) Caused by:
> java.net.ConnectException: Connection refused: connect at
> java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method) 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.(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:630)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1268)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1235)
>
> 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:1151)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1047)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:960)
>
> 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:488)
>
> 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.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:306)
>
> ... 38 more My glassfish-web.xml is simple and almost all copied from
> javaee-tutorial: <?xml version="1.0" encoding="UTF-8"?> /JavaHelp
> ADMINISTRATOR ADMINISTRATOR USER USER Keep a copy of the generated
> servlet
> class' java code. value="from=/lib/*
> dir=C:/glassfish3/glassfish/domains/domain1/" /> I am sure there is no
> typo
> in DOCTYPE. Anyway I checked that it is correct Thank you!
>
> --
>
> [Message sent by forum member 'volodiaL']
>
> View Post: http://forums.java.net/node/893340
>
>