You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Mohit Anchlia <mo...@gmail.com> on 2011/06/26 08:15:37 UTC

web.xml parse error

I am getting following errors and not able to find what's missing:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

   <servlet servlet-name="DataPlatform"
            servlet-class="com.i.common.DataPlatformServlet"/>

   <servlet-mapping url-pattern="/dataplatform"
            servlet-name="DataPlatform"/>
</web-app>

--
Jun 25, 2011 11:08:35 PM org.apache.catalina.loader.WebappClassLoader
validateJarFile
INFO: validateJarFile(/root/tomcat/webapps/dataplatform/WEB-INF/lib/servlet-api-2.5-20081211.jar)
- jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending
class: javax/servlet/Servlet.class
Jun 25, 2011 11:08:35 PM org.apache.catalina.loader.WebappClassLoader
validateJarFile
INFO: validateJarFile(/root/tomcat/webapps/dataplatform/WEB-INF/lib/servlet-api-2.5.jar)
- jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending
class: javax/servlet/Servlet.class
Jun 25, 2011 11:08:35 PM org.apache.tomcat.util.digester.Digester endElement
SEVERE: End event threw exception
java.lang.IllegalArgumentException: Can't convert argument: null
        at org.apache.tomcat.util.IntrospectionUtils.convert(IntrospectionUtils.java:889)
        at org.apache.catalina.startup.CallMethodMultiRule.end(WebRuleSet.java:928)
        at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1057)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:180)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2755)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)


.....

Jun 25, 2011 11:08:35 PM org.apache.catalina.startup.ContextConfig parseWebXml
SEVERE: Parse error in application web.xml file at
jndi:/localhost/dataplatform/WEB-INF/web.xml
java.lang.IllegalArgumentException: Can't convert argument: null
        at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2687)
        at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2713)
        at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1060)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:180)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2755)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.nex

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: fail to download large static files in tomcat

Posted by Pid <pi...@pidster.com>.
On 27/06/2011 11:42, Michal Singer wrote:
> Hi, I am working with apache-tomcat-6.0.18 and I want to use it to download static files.

Please post a new message to the list, rather than editing & replying to
an existing thread.


p


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
This is the error I get:

wget http://172.18.206.103/bundles/vacc-AOS701b318-fl.tgz
--08:27:06--  http://172.18.206.103/bundles/vacc-AOS701b318-fl.tgz
           => `vacc-AOS701b318-fl.tgz.1'
Connecting to 172.18.206.103:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 551,188,433 (526M)

 0% [                                                                                           ] 0             --.--K/s

08:27:06 (0.00 B/s) - Connection closed at byte 0. Retrying.


This error is on the client side, on the tomcat logs, I don't see any errors.

I am using large files between 100MB to 500 MB.

When I asked about how heavy the http, I meant compared for ftp for example. I read somewhere that:
"Tomcat is often considered to be too slow to serve static content"

Is this correct?

Thanks, Michal


-----Original Message-----
From: André Warnier [mailto:aw@ice-sa.com] 
Sent: ב 27 יוני 2011 15:39
To: Tomcat Users List
Subject: Re: fail to download large static files in tomcat

Michal Singer wrote:
...

> 
> This worked fine, the client succeeded to download the files, but I need it to work with large files (more then 500MB).
> This failed. 

What failed ? How failed ? what do the logfiles say ?

> 
> Does anyone know why this can fail?

Not without some better data.

> Is there a configuration I need to add to raise the limit? (I couldn't find it in the apache-tomcat configuration manual).

As far as I know, there is no limit (on the Tomcat side) for *downloading* files.

> Is it recommended to use apache-tomcat for this (currently we download with using ftp server embedded into our product, but it is too heavy)?
> 
What do you mean by "too heavy" ? at the level of the client, or the server ?
(or the bandwidth of your communication channel client(s)<->server ?)

I don't think that this would be either recommended or not recommended.  It is something 
that you /can/ do with Tomcat (or any other webserver).
If these are always large static files, you may want to look at a parameter somewhere 
named "useSendFile" or similar, probably in the <Connector> documentation.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
Never mind. I understand now what you mean. Please ignore my previous question.
Thanks,

-----Original Message-----
From: Michal Singer 
Sent: ד 29 יוני 2011 09:22
To: Tomcat Users List
Subject: RE: fail to download large static files in tomcat

Hi, I didn't understand where you recommended to move the Context to,
What is the bundles.xml? are you referring to web.xml for a specific web application?
Thanks, Michal

-----Original Message-----
From: Caldarale, Charles R [mailto:Chuck.Caldarale@unisys.com] 
Sent: ג 28 יוני 2011 15:51
To: Tomcat Users List
Subject: RE: fail to download large static files in tomcat

> From: Michal Singer [mailto:Michal.Singer@expand.com] 
> Subject: RE: fail to download large static files in tomcat

> From the tomcat documentation I read this useSendFile is default 
> to true and it is defined under nio.

This is correct; NIO does support sendfile, as does APR.

> As I mentioned before, I am defining the static context 
> under Engine->Host->Context:

Which is not recommended, since you're modifying server.xml for a specific webapp.  Better to place the <Context> element in conf/Catalina/[host]/bundles.xml, with just a docBase attribute.  I'd recommend using an absolute path for docBase, since a relative one is dependent on how you start Tomcat.

> This does not correspond to a specific connector

Requests received over a <Connector> with useSendfile set will be processed with sendfile, those received on a <Connector> without sendfile capability won't use it.  If you use the NIO class for all of your HTTP or HTTPS <Connector> elements, you'll get sendfile by default.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
Hi, I didn't understand where you recommended to move the Context to,
What is the bundles.xml? are you referring to web.xml for a specific web application?
Thanks, Michal

-----Original Message-----
From: Caldarale, Charles R [mailto:Chuck.Caldarale@unisys.com] 
Sent: ג 28 יוני 2011 15:51
To: Tomcat Users List
Subject: RE: fail to download large static files in tomcat

> From: Michal Singer [mailto:Michal.Singer@expand.com] 
> Subject: RE: fail to download large static files in tomcat

> From the tomcat documentation I read this useSendFile is default 
> to true and it is defined under nio.

This is correct; NIO does support sendfile, as does APR.

> As I mentioned before, I am defining the static context 
> under Engine->Host->Context:

Which is not recommended, since you're modifying server.xml for a specific webapp.  Better to place the <Context> element in conf/Catalina/[host]/bundles.xml, with just a docBase attribute.  I'd recommend using an absolute path for docBase, since a relative one is dependent on how you start Tomcat.

> This does not correspond to a specific connector

Requests received over a <Connector> with useSendfile set will be processed with sendfile, those received on a <Connector> without sendfile capability won't use it.  If you use the NIO class for all of your HTTP or HTTPS <Connector> elements, you'll get sendfile by default.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
Hi, to your question regarding the Http/1.0:
I am using protocol="HTTP/1.1".
I send the message using this command:
wget http://172.18.206.103:8089/bundles/AOS701b318-hd.tg

I have no idea why the log shows HTTP/1.0.

-----Original Message-----
From: André Warnier [mailto:aw@ice-sa.com] 
Sent: ה 30 יוני 2011 18:45
To: Tomcat Users List
Subject: Re: fail to download large static files in tomcat

Michal Singer wrote:
> This was the configuration I had in the server.xml which did not work for large files:
> 
> <Connector executor="AgentExecutor" port="8088" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />
> 
> And I changed this to:
> <Connector executor="AgentExecutor" port="8088" protocol="HTTP/1.1" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />
> 
> And now it does work for 500MB files, though when comparing the time it takes (for smaller files which work on both configurations),
> the performance degraded with the HTTP/1.1 connector. So of course, I prefer it to work on nio.
> 
> 
Just to clarify one more aspect :
In previous messages,

a) you showed an access log line like this :
10.206.90.6 - - [30/Jun/2011:11:37:16 +0300] "GET /bundles/vacc-AOS701b318-fl.tgz 
HTTP/1.0" 200 -

(indicating HTTP/1.0 was being used)

and then later you said :

b) "I changed the connector to HTTP/1.1 and now the download works"..

So what exactly did you change, to make HTTP/1.0 become HTTP/1.1 instead ?
Or am I now confused ?
What does the access log show now, for a download ?

  ----------------

On a separate issue : in the AccessLog Valve, you can specify a "pattern", so as to add to 
the access log lines the total time it took to process the request (see the "pattern" 
attribute and for instance the "%D" pattern string).
That may be useful in order to really compare objectively the times for downloading files.

Remember that there are other elements than the server itself that determine how fast the 
file is downloaded (the network, how many other things are going on, the client, etc..).
So you would need to repeat the test a number of times in order to really be sure that 
there is a solid difference on the server side.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: fail to download large static files in tomcat

Posted by André Warnier <aw...@ice-sa.com>.
Michal Singer wrote:
> This was the configuration I had in the server.xml which did not work for large files:
> 
> <Connector executor="AgentExecutor" port="8088" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />
> 
> And I changed this to:
> <Connector executor="AgentExecutor" port="8088" protocol="HTTP/1.1" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />
> 
> And now it does work for 500MB files, though when comparing the time it takes (for smaller files which work on both configurations),
> the performance degraded with the HTTP/1.1 connector. So of course, I prefer it to work on nio.
> 
> 
Just to clarify one more aspect :
In previous messages,

a) you showed an access log line like this :
10.206.90.6 - - [30/Jun/2011:11:37:16 +0300] "GET /bundles/vacc-AOS701b318-fl.tgz 
HTTP/1.0" 200 -

(indicating HTTP/1.0 was being used)

and then later you said :

b) "I changed the connector to HTTP/1.1 and now the download works"..

So what exactly did you change, to make HTTP/1.0 become HTTP/1.1 instead ?
Or am I now confused ?
What does the access log show now, for a download ?

  ----------------

On a separate issue : in the AccessLog Valve, you can specify a "pattern", so as to add to 
the access log lines the total time it took to process the request (see the "pattern" 
attribute and for instance the "%D" pattern string).
That may be useful in order to really compare objectively the times for downloading files.

Remember that there are other elements than the server itself that determine how fast the 
file is downloaded (the network, how many other things are going on, the client, etc..).
So you would need to repeat the test a number of times in order to really be sure that 
there is a solid difference on the server side.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
1. Currently tomcat runs on windows XP (but production can be on other windows as well).
The client is on linux.

2. Tomcat version 6.0.18

3. These are the lines in log regarding connector. The lines concerning the connectors I am referring to are moved aside to the right (ports 8088 and 8089)


Jun 30, 2011 2:11:31 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-443
Jun 30, 2011 2:11:31 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Jun 30, 2011 2:11:31 PM org.apache.coyote.http11.Http11NioProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jun 30, 2011 2:11:31 PM org.apache.coyote.http11.Http11Protocol init
													INFO: Initializing Coyote HTTP/1.1 on http-8088
													Jun 30, 2011 2:11:31 PM org.apache.tomcat.util.net.NioSelectorPool 														getSharedSelector
													INFO: Using a shared selector for servlet write/read
													Jun 30, 2011 2:11:31 PM org.apache.coyote.http11.Http11NioProtocol init
													INFO: Initializing Coyote HTTP/1.1 on http-8089
													Jun 30, 2011 2:11:31 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8443
Jun 30, 2011 2:11:31 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Jun 30, 2011 2:11:31 PM org.apache.coyote.http11.Http11NioProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-9080
Jun 30, 2011 2:11:31 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-9443
Jun 30, 2011 2:11:31 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 34490 ms
Jun 30, 2011 2:11:32 PM org.apache.catalina.realm.JAASRealm setContainer
INFO: Set JAAS app name Catalina
Jun 30, 2011 2:11:32 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jun 30, 2011 2:11:32 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.18


-----Original Message-----
From: André Warnier [mailto:aw@ice-sa.com] 
Sent: ה 30 יוני 2011 14:06
To: Tomcat Users List
Subject: Re: fail to download large static files in tomcat

Ok, so now can you remind us of
- on what platform you are (Windows, Linux,..)
- what version of Tomcat this is
- and paste the first few lines of the Tomcat startup messages, from the logfile
(to find out whether you are using APR or not)

Sorry if you already said all that, I'm too lazy to scroll back through the messages.


Michal Singer wrote:
> This was the configuration I had in the server.xml which did not work for large files:
> 
> <Connector executor="AgentExecutor" port="8088" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />
> 
> And I changed this to:
> <Connector executor="AgentExecutor" port="8088" protocol="HTTP/1.1" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />
> 
> And now it does work for 500MB files, though when comparing the time it takes (for smaller files which work on both configurations),
> the performance degraded with the HTTP/1.1 connector. So of course, I prefer it to work on nio.
> 
> 
> 
> 
> -----Original Message-----
> From: André Warnier [mailto:aw@ice-sa.com] 
> Sent: ה 30 יוני 2011 13:30
> To: Tomcat Users List
> Subject: Re: fail to download large static files in tomcat
> 
> Michal Singer wrote:
> ...
>> I am using nio connector.
>> Actually this was a very good question. I changed the connector to HTTP/1.1 and now the download works !!!
> 
> Can you exlain *exactly* what you changed, where ?
> e.g. what the <Connector> element looked like before, and what it looks like now ?
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: fail to download large static files in tomcat

Posted by André Warnier <aw...@ice-sa.com>.
Ok, so now can you remind us of
- on what platform you are (Windows, Linux,..)
- what version of Tomcat this is
- and paste the first few lines of the Tomcat startup messages, from the logfile
(to find out whether you are using APR or not)

Sorry if you already said all that, I'm too lazy to scroll back through the messages.


Michal Singer wrote:
> This was the configuration I had in the server.xml which did not work for large files:
> 
> <Connector executor="AgentExecutor" port="8088" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />
> 
> And I changed this to:
> <Connector executor="AgentExecutor" port="8088" protocol="HTTP/1.1" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />
> 
> And now it does work for 500MB files, though when comparing the time it takes (for smaller files which work on both configurations),
> the performance degraded with the HTTP/1.1 connector. So of course, I prefer it to work on nio.
> 
> 
> 
> 
> -----Original Message-----
> From: André Warnier [mailto:aw@ice-sa.com] 
> Sent: ה 30 יוני 2011 13:30
> To: Tomcat Users List
> Subject: Re: fail to download large static files in tomcat
> 
> Michal Singer wrote:
> ...
>> I am using nio connector.
>> Actually this was a very good question. I changed the connector to HTTP/1.1 and now the download works !!!
> 
> Can you exlain *exactly* what you changed, where ?
> e.g. what the <Connector> element looked like before, and what it looks like now ?
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
This was the configuration I had in the server.xml which did not work for large files:

<Connector executor="AgentExecutor" port="8088" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />

And I changed this to:
<Connector executor="AgentExecutor" port="8088" protocol="HTTP/1.1" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />

And now it does work for 500MB files, though when comparing the time it takes (for smaller files which work on both configurations),
the performance degraded with the HTTP/1.1 connector. So of course, I prefer it to work on nio.




-----Original Message-----
From: André Warnier [mailto:aw@ice-sa.com] 
Sent: ה 30 יוני 2011 13:30
To: Tomcat Users List
Subject: Re: fail to download large static files in tomcat

Michal Singer wrote:
...
> I am using nio connector.
> Actually this was a very good question. I changed the connector to HTTP/1.1 and now the download works !!!

Can you exlain *exactly* what you changed, where ?
e.g. what the <Connector> element looked like before, and what it looks like now ?



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: fail to download large static files in tomcat

Posted by André Warnier <aw...@ice-sa.com>.
Michal Singer wrote:
...
> I am using nio connector.
> Actually this was a very good question. I changed the connector to HTTP/1.1 and now the download works !!!

Can you exlain *exactly* what you changed, where ?
e.g. what the <Connector> element looked like before, and what it looks like now ?



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: fail to download large static files in tomcat

Posted by Konstantin Kolinko <kn...@gmail.com>.
2011/6/30 Michal Singer <Mi...@expand.com>:
> I didn't want to upgrade the tomcat yet, since I had some problems with the ssl certificate after upgrade,

Most problems with ssl are when Tomcat (auto-)switches between Apr and
non-Apr implementation (see below),  because Apr and non-Apr SSL
implementations have different configuration.

> so it might take a while until I succeed. Do you mean to upgrade to 7 or to more advanced builds of 6? Which do you recommend?

To 6.0.32.

> I am using nio connector.
> Actually this was a very good question. I changed the connector to HTTP/1.1 and now the download works !!!

> This was the configuration I had in the server.xml which did not work for large files:
>
> <Connector executor="AgentExecutor" port="8088" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />
>
> And I changed this to:
> <Connector executor="AgentExecutor" port="8088" protocol="HTTP/1.1" SSLEnabled="false" scheme="http" secure="false" redirectPort="8080" connectionTimeout="2000" enableLookups="false" disableUploadTimeout="true" allowTrace="false" maxKeepAliveRequests="1" processorCache="800" acceptorThreadCount="1" />

Your change to protocol="HTTP/1.1" means that it will auto-select HTTP
connector implementation.

That means it will choose Bio(Jio) when tcnative (dll/so) is absent
and Apr when tcnative (dll/so) library is present.  What connector
implementation is used can be seen in the logs when Tomcat starts.


> Thank you very much.
> I don't understand why the nio does not work.

Nio was considered experimental three years ago. There was a number of
fixes since then.

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
I didn't want to upgrade the tomcat yet, since I had some problems with the ssl certificate after upgrade, so it might take a while until I succeed. Do you mean to upgrade to 7 or to more advanced builds of 6? Which do you recommend?


I am using nio connector.
Actually this was a very good question. I changed the connector to HTTP/1.1 and now the download works !!!
Thank you very much.
I don't understand why the nio does not work.


-----Original Message-----
From: Konstantin Kolinko [mailto:knst.kolinko@gmail.com] 
Sent: ה 30 יוני 2011 12:42
To: Tomcat Users List
Subject: Re: fail to download large static files in tomcat

> Hi, I am working with apache-tomcat-6.0.18 and I want to use it to download static files.
> I have clients which will contact tomcat using wget.

1) Try with an up-to-date version of Tomcat. It will be 3 years old in
a month. There were a lot of fixes since then.

E.g. 48843.

It might be that you are facing some timeout. There are better changes
with more recent versions.

2) What exactly connector implementation do you use?
Bio(Jio)/ Nio / Apr?

It should be visible in the logs when Tomcat starts.

> 10.206.90.6 - - [30/Jun/2011:11:37:16 +0300] "GET /bundles/vacc-AOS701b318-fl.tgz HTTP/1.0" 200 -

3) It should not matter much, but most clients will use HTTP/1.1

(The last one that I encountered was old IE 6 with "Use HTTP/1.0
through proxy" flag).

4) There might be proxies between you and client that will close the connection.


2011/6/30 Michal Singer <Mi...@expand.com>:
> Hi, I also want to add that when I check the tomcat access log, I get:
> 10.206.90.6 - - [30/Jun/2011:11:37:16 +0300] "GET /bundles/vacc-AOS701b318-fl.tgz HTTP/1.0" 200 -
> On the large file, the client receives error.
> How can this be? Is this a problem with the client? Though I tried other clients and it didn't work as well. And also ftp works fine.
>
> Thanks, Michal
>
>
> -----Original Message-----
> From: Michal Singer
> Sent: ה 30 יוני 2011 09:39
> To: Tomcat Users List
> Subject: RE: fail to download large static files in tomcat
>
> Hi,
>
> I tried defining the useSendFile - it did not help in transferring a 500MB file. Any other ideas what can get wrong, which configuration I need for the big file to be loaded successfully?
>
> Thanks, Michal
>
> -----Original Message-----
> From: Caldarale, Charles R [mailto:Chuck.Caldarale@unisys.com]
> Sent: ג 28 יוני 2011 15:51
> To: Tomcat Users List
> Subject: RE: fail to download large static files in tomcat
>
>> From: Michal Singer [mailto:Michal.Singer@expand.com]
>> Subject: RE: fail to download large static files in tomcat
>
>> From the tomcat documentation I read this useSendFile is default
>> to true and it is defined under nio.
>
> This is correct; NIO does support sendfile, as does APR.
>
>> As I mentioned before, I am defining the static context
>> under Engine->Host->Context:
>
> Which is not recommended, since you're modifying server.xml for a specific webapp.  Better to place the <Context> element in conf/Catalina/[host]/bundles.xml, with just a docBase attribute.  I'd recommend using an absolute path for docBase, since a relative one is dependent on how you start Tomcat.
>
>> This does not correspond to a specific connector
>
> Requests received over a <Connector> with useSendfile set will be processed with sendfile, those received on a <Connector> without sendfile capability won't use it.  If you use the NIO class for all of your HTTP or HTTPS <Connector> elements, you'll get sendfile by default.
>
>  - Chuck
>
>
> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: fail to download large static files in tomcat

Posted by Konstantin Kolinko <kn...@gmail.com>.
> Hi, I am working with apache-tomcat-6.0.18 and I want to use it to download static files.
> I have clients which will contact tomcat using wget.

1) Try with an up-to-date version of Tomcat. It will be 3 years old in
a month. There were a lot of fixes since then.

E.g. 48843.

It might be that you are facing some timeout. There are better changes
with more recent versions.

2) What exactly connector implementation do you use?
Bio(Jio)/ Nio / Apr?

It should be visible in the logs when Tomcat starts.

> 10.206.90.6 - - [30/Jun/2011:11:37:16 +0300] "GET /bundles/vacc-AOS701b318-fl.tgz HTTP/1.0" 200 -

3) It should not matter much, but most clients will use HTTP/1.1

(The last one that I encountered was old IE 6 with "Use HTTP/1.0
through proxy" flag).

4) There might be proxies between you and client that will close the connection.


2011/6/30 Michal Singer <Mi...@expand.com>:
> Hi, I also want to add that when I check the tomcat access log, I get:
> 10.206.90.6 - - [30/Jun/2011:11:37:16 +0300] "GET /bundles/vacc-AOS701b318-fl.tgz HTTP/1.0" 200 -
> On the large file, the client receives error.
> How can this be? Is this a problem with the client? Though I tried other clients and it didn't work as well. And also ftp works fine.
>
> Thanks, Michal
>
>
> -----Original Message-----
> From: Michal Singer
> Sent: ה 30 יוני 2011 09:39
> To: Tomcat Users List
> Subject: RE: fail to download large static files in tomcat
>
> Hi,
>
> I tried defining the useSendFile - it did not help in transferring a 500MB file. Any other ideas what can get wrong, which configuration I need for the big file to be loaded successfully?
>
> Thanks, Michal
>
> -----Original Message-----
> From: Caldarale, Charles R [mailto:Chuck.Caldarale@unisys.com]
> Sent: ג 28 יוני 2011 15:51
> To: Tomcat Users List
> Subject: RE: fail to download large static files in tomcat
>
>> From: Michal Singer [mailto:Michal.Singer@expand.com]
>> Subject: RE: fail to download large static files in tomcat
>
>> From the tomcat documentation I read this useSendFile is default
>> to true and it is defined under nio.
>
> This is correct; NIO does support sendfile, as does APR.
>
>> As I mentioned before, I am defining the static context
>> under Engine->Host->Context:
>
> Which is not recommended, since you're modifying server.xml for a specific webapp.  Better to place the <Context> element in conf/Catalina/[host]/bundles.xml, with just a docBase attribute.  I'd recommend using an absolute path for docBase, since a relative one is dependent on how you start Tomcat.
>
>> This does not correspond to a specific connector
>
> Requests received over a <Connector> with useSendfile set will be processed with sendfile, those received on a <Connector> without sendfile capability won't use it.  If you use the NIO class for all of your HTTP or HTTPS <Connector> elements, you'll get sendfile by default.
>
>  - Chuck
>
>
> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
Hi, I also want to add that when I check the tomcat access log, I get:
10.206.90.6 - - [30/Jun/2011:11:37:16 +0300] "GET /bundles/vacc-AOS701b318-fl.tgz HTTP/1.0" 200 -
On the large file, the client receives error.
How can this be? Is this a problem with the client? Though I tried other clients and it didn't work as well. And also ftp works fine.

Thanks, Michal


-----Original Message-----
From: Michal Singer 
Sent: ה 30 יוני 2011 09:39
To: Tomcat Users List
Subject: RE: fail to download large static files in tomcat

Hi, 

I tried defining the useSendFile - it did not help in transferring a 500MB file. Any other ideas what can get wrong, which configuration I need for the big file to be loaded successfully?

Thanks, Michal

-----Original Message-----
From: Caldarale, Charles R [mailto:Chuck.Caldarale@unisys.com] 
Sent: ג 28 יוני 2011 15:51
To: Tomcat Users List
Subject: RE: fail to download large static files in tomcat

> From: Michal Singer [mailto:Michal.Singer@expand.com] 
> Subject: RE: fail to download large static files in tomcat

> From the tomcat documentation I read this useSendFile is default 
> to true and it is defined under nio.

This is correct; NIO does support sendfile, as does APR.

> As I mentioned before, I am defining the static context 
> under Engine->Host->Context:

Which is not recommended, since you're modifying server.xml for a specific webapp.  Better to place the <Context> element in conf/Catalina/[host]/bundles.xml, with just a docBase attribute.  I'd recommend using an absolute path for docBase, since a relative one is dependent on how you start Tomcat.

> This does not correspond to a specific connector

Requests received over a <Connector> with useSendfile set will be processed with sendfile, those received on a <Connector> without sendfile capability won't use it.  If you use the NIO class for all of your HTTP or HTTPS <Connector> elements, you'll get sendfile by default.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
Hi, 

I tried defining the useSendFile - it did not help in transferring a 500MB file. Any other ideas what can get wrong, which configuration I need for the big file to be loaded successfully?

Thanks, Michal

-----Original Message-----
From: Caldarale, Charles R [mailto:Chuck.Caldarale@unisys.com] 
Sent: ג 28 יוני 2011 15:51
To: Tomcat Users List
Subject: RE: fail to download large static files in tomcat

> From: Michal Singer [mailto:Michal.Singer@expand.com] 
> Subject: RE: fail to download large static files in tomcat

> From the tomcat documentation I read this useSendFile is default 
> to true and it is defined under nio.

This is correct; NIO does support sendfile, as does APR.

> As I mentioned before, I am defining the static context 
> under Engine->Host->Context:

Which is not recommended, since you're modifying server.xml for a specific webapp.  Better to place the <Context> element in conf/Catalina/[host]/bundles.xml, with just a docBase attribute.  I'd recommend using an absolute path for docBase, since a relative one is dependent on how you start Tomcat.

> This does not correspond to a specific connector

Requests received over a <Connector> with useSendfile set will be processed with sendfile, those received on a <Connector> without sendfile capability won't use it.  If you use the NIO class for all of your HTTP or HTTPS <Connector> elements, you'll get sendfile by default.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


RE: fail to download large static files in tomcat

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: Michal Singer [mailto:Michal.Singer@expand.com] 
> Subject: RE: fail to download large static files in tomcat

> From the tomcat documentation I read this useSendFile is default 
> to true and it is defined under nio.

This is correct; NIO does support sendfile, as does APR.

> As I mentioned before, I am defining the static context 
> under Engine->Host->Context:

Which is not recommended, since you're modifying server.xml for a specific webapp.  Better to place the <Context> element in conf/Catalina/[host]/bundles.xml, with just a docBase attribute.  I'd recommend using an absolute path for docBase, since a relative one is dependent on how you start Tomcat.

> This does not correspond to a specific connector

Requests received over a <Connector> with useSendfile set will be processed with sendfile, those received on a <Connector> without sendfile capability won't use it.  If you use the NIO class for all of your HTTP or HTTPS <Connector> elements, you'll get sendfile by default.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
Thanks for the great explanation.

I still have 2 questions:
1. From the tomcat documentation I read this useSendFile is default to true and it is defined under nio.
Does this support what you wrote about "ARP native" connector?
2. As I mentioned before, I am defining the static context under Engine->Host->Context:
<Context            docBase="../../work/bundles"            path="/bundles"
This does not correspond to a specific connector, so I don't understand how it has to do with the useSendFile which is defined on a specific connector. It might be that I don't understand some basic things about the tomcat. Or maybe I am not defining the static retrieve correctly in server.xml.
Any thoughts on that?

Thanks, Michal

-----Original Message-----
From: André Warnier [mailto:aw@ice-sa.com] 
Sent: ג 28 יוני 2011 14:33
To: Tomcat Users List
Subject: Re: fail to download large static files in tomcat

Michal Singer wrote:
> The useSendfile relates to connectors, the configuration I understand is needed is in under Engine > Host > Context (<Context            docBase="../../work/bundles"            path="/bundles")
> 
> Can you explain how the " useSendfile" relates to static files?
> Is the configuration I am using correct? Or is there another way to configure the use of static files?

Hi.  Let me explain, in not too technical or precise terms, what the useSendFile means.

Normally, to copy a filesystem file to the servlet response filehandle, you would
a) open the file, using some read buffer size
b) start a loop reading a chunk of the file, and writing that chunk to the response 
filehandle, and then loop and do it again until you reach the EOF on the input file.
c) close the input file
And you would do all that using Java I/O code, so that it is portable across OS'es.

Modern OS'es have a "sendfile" function, built in the OS itself.  Basically, it is a very 
optimised piece of code, by which an application (like a Java JVM) can tell the OS : here 
is the path to a file on the filesystem, and here is a "filehandle" to which this file 
should be copied.  The OS sendfile function then arranges everything to do this as 
efficiently as possible under that particular OS and filesystem, and for Java it is one 
function call instead of a Java I/O loop.

By setting the "useSendFile" attribute to true, you basically allow Tomcat to use the 
builtin sendfile of the OS to send the servlet response (instead of a Java I/O loop like 
the above). It only works if the input is a static file on the filesystem, but for such 
files it is probably at least 50% more efficient than the corresponding Java loop.
It is bound to the Connector, because the Connector is the object which "holds" the 
filehandle to the client TCP socket, where the response must ultimately be sent.

Another thing : the sendfile option will probable only work with the "APR native" 
connector. So check your Tomcat startup messages to verify that this is what you are using.

And yet another thing : all this will make it more efficient for the server CPU and disks, 
to send back a static file. But it has no impact on the available bandwidth of your 
server-to-client link, or on the client itself.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: fail to download large static files in tomcat

Posted by André Warnier <aw...@ice-sa.com>.
Michal Singer wrote:
> The useSendfile relates to connectors, the configuration I understand is needed is in under Engine > Host > Context (<Context            docBase="../../work/bundles"            path="/bundles")
> 
> Can you explain how the " useSendfile" relates to static files?
> Is the configuration I am using correct? Or is there another way to configure the use of static files?

Hi.  Let me explain, in not too technical or precise terms, what the useSendFile means.

Normally, to copy a filesystem file to the servlet response filehandle, you would
a) open the file, using some read buffer size
b) start a loop reading a chunk of the file, and writing that chunk to the response 
filehandle, and then loop and do it again until you reach the EOF on the input file.
c) close the input file
And you would do all that using Java I/O code, so that it is portable across OS'es.

Modern OS'es have a "sendfile" function, built in the OS itself.  Basically, it is a very 
optimised piece of code, by which an application (like a Java JVM) can tell the OS : here 
is the path to a file on the filesystem, and here is a "filehandle" to which this file 
should be copied.  The OS sendfile function then arranges everything to do this as 
efficiently as possible under that particular OS and filesystem, and for Java it is one 
function call instead of a Java I/O loop.

By setting the "useSendFile" attribute to true, you basically allow Tomcat to use the 
builtin sendfile of the OS to send the servlet response (instead of a Java I/O loop like 
the above). It only works if the input is a static file on the filesystem, but for such 
files it is probably at least 50% more efficient than the corresponding Java loop.
It is bound to the Connector, because the Connector is the object which "holds" the 
filehandle to the client TCP socket, where the response must ultimately be sent.

Another thing : the sendfile option will probable only work with the "APR native" 
connector. So check your Tomcat startup messages to verify that this is what you are using.

And yet another thing : all this will make it more efficient for the server CPU and disks, 
to send back a static file. But it has no impact on the available bandwidth of your 
server-to-client link, or on the client itself.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
The useSendfile relates to connectors, the configuration I understand is needed is in under Engine > Host > Context (<Context            docBase="../../work/bundles"            path="/bundles")

Can you explain how the " useSendfile" relates to static files?
Is the configuration I am using correct? Or is there another way to configure the use of static files?
Thanks, Michal

-----Original Message-----
From: André Warnier [mailto:aw@ice-sa.com] 
Sent: ב 27 יוני 2011 15:39
To: Tomcat Users List
Subject: Re: fail to download large static files in tomcat

Michal Singer wrote:
...

> 
> This worked fine, the client succeeded to download the files, but I need it to work with large files (more then 500MB).
> This failed. 

What failed ? How failed ? what do the logfiles say ?

> 
> Does anyone know why this can fail?

Not without some better data.

> Is there a configuration I need to add to raise the limit? (I couldn't find it in the apache-tomcat configuration manual).

As far as I know, there is no limit (on the Tomcat side) for *downloading* files.

> Is it recommended to use apache-tomcat for this (currently we download with using ftp server embedded into our product, but it is too heavy)?
> 
What do you mean by "too heavy" ? at the level of the client, or the server ?
(or the bandwidth of your communication channel client(s)<->server ?)

I don't think that this would be either recommended or not recommended.  It is something 
that you /can/ do with Tomcat (or any other webserver).
If these are always large static files, you may want to look at a parameter somewhere 
named "useSendFile" or similar, probably in the <Connector> documentation.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: fail to download large static files in tomcat

Posted by André Warnier <aw...@ice-sa.com>.
Michal Singer wrote:
...

> 
> This worked fine, the client succeeded to download the files, but I need it to work with large files (more then 500MB).
> This failed. 

What failed ? How failed ? what do the logfiles say ?

> 
> Does anyone know why this can fail?

Not without some better data.

> Is there a configuration I need to add to raise the limit? (I couldn't find it in the apache-tomcat configuration manual).

As far as I know, there is no limit (on the Tomcat side) for *downloading* files.

> Is it recommended to use apache-tomcat for this (currently we download with using ftp server embedded into our product, but it is too heavy)?
> 
What do you mean by "too heavy" ? at the level of the client, or the server ?
(or the bandwidth of your communication channel client(s)<->server ?)

I don't think that this would be either recommended or not recommended.  It is something 
that you /can/ do with Tomcat (or any other webserver).
If these are always large static files, you may want to look at a parameter somewhere 
named "useSendFile" or similar, probably in the <Connector> documentation.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


fail to download large static files in tomcat

Posted by Michal Singer <Mi...@expand.com>.
Hi, I am working with apache-tomcat-6.0.18 and I want to use it to download static files.
I have clients which will contact tomcat using wget.

I saw in the following link, that this can be done in tomcat by configuring the server.xml and adding a Context under Host with the path to where the files should be downloaded from:
http://th1rty7.blogspot.com/2009/05/tomcat-is-often-considered-to-be-too.html

<Server port="8025" shutdown="SHUTDOWN">... 
<Service name="Catalina">... 
<Engine defaultHost="localhost" name="Catalina">... 
<Host appBase... 
<Context docBase="/var/project/images" path="/project/images" />
</Host>
</Engine>
</Service>
</Server>


This worked fine, the client succeeded to download the files, but I need it to work with large files (more then 500MB).
This failed. 

Does anyone know why this can fail?
Is there a configuration I need to add to raise the limit? (I couldn't find it in the apache-tomcat configuration manual).
Is it recommended to use apache-tomcat for this (currently we download with using ftp server embedded into our product, but it is too heavy)?

Thanks, Michal

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: web.xml parse error

Posted by Mohit Anchlia <mo...@gmail.com>.
Thanks! that worked.

On Sun, Jun 26, 2011 at 3:50 AM, Konstantin Kolinko
<kn...@gmail.com> wrote:
>>   <servlet servlet-name="DataPlatform"
>>            servlet-class="com.i.common.DataPlatformServlet"/>
>
> The above is wrong. You should use nested elements, not attributes..
>
> Take a look at any existing webapp. E.g. the "examples" one that comes
> with Tomcat.
>
> Best regards,
> Konstantin Kolinko
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: web.xml parse error

Posted by Konstantin Kolinko <kn...@gmail.com>.
>   <servlet servlet-name="DataPlatform"
>            servlet-class="com.i.common.DataPlatformServlet"/>

The above is wrong. You should use nested elements, not attributes..

Take a look at any existing webapp. E.g. the "examples" one that comes
with Tomcat.

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org