You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Volker <to...@webchannel.de> on 2011/07/26 16:29:20 UTC

Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Hello,

my current system configuration is like following:

- FreeBSD 8.2
- apache-2.2.17_2
- mod_jk-ap2-1.2.31_1 Apache2 JK
- tomcat 4.1.36_2
- diablo-jdk1.6.0

In order to provide a http tunneling for a chat server I have been 
using*tomcat 3.3*, FreeBSD 5.4, Apache 1.3, mod_jk (ajp12 Connector) and 
diablo-jre1.5.0 in combination with a certain http tunneling servlet 
*without any problems* for several years.
That http tunneling servlet is passed via a chat applet via "<PARAM 
NAME='HttpServlet' 
VALUE='http://test.Domain.com/servlet/*HttpTunnelingServletdc*'>
The configuration for that system above _*can be found below*_ *=> 
Configuration for tomcat 3.3

*After upgrading to FreeBSD 8.2 I  had to upgrade from tomcat 3.3 to 4.1 
because I did not find any port for tomcat version 3.3.
I do not manage to make the httpd tunneling applet running correctly 
with ajp1.3 but I think it does not depend on the connector but a 
misconfigured mapping.

I guess that following warning in mod_jk.log shows up the reason for my 
problem when requesting 
http://test.Domain.com/servlet/*HttpTunnelingServletdc*'
*[Tue Jul 26 13:00:56.615 2011] [36163:34382823872] [warn] 
map_uri_to_worker_ext::jk_uri_worker_map.c (962): Uri * is invalid. Uri 
must start with /*

However the tomcat 4.1 start page is accessible via http://domain:8180 
and working correctly!

Below you find the configuration of my current system under FreeBSD 
mentioned above with tomcat 4.1.36 and apache 2.2.17 which does not run 
correctly _and the configuration for tomcat 3.3 which is running 
correctly_.*

*Since I am not familiar with tomcat I would be glad if someone could 
give me a hint to solve my problem.
Or maybe someone can give me some hints for how to compile tomcat 3.3 
sources for FreeBSD ;-)


Thanks a lot and best regards

Volker
*
============================================================================
NOT WORKING
Configuration for Tomcat 4.1.36 (FreeBSD 8.2, Apache 2.2.17, 
mod_jk-ap2-1.2.31, Diablo JDK 1.6)
**============================================================================

The servlet classes result in:
*/usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*
*/usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*/*com/....*
*/usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes/digi/...
...
*
httpd.conf
*JkWorkersFile "/usr/local/etc/apache22/workers.properties"
JkLogFile "/usr/local/apache-tomcat4.1/logs/mod_jk.log"
JkShmFile /var/log/jk-runtime-status
JkLogLevel info
*
workers.properties
*workers.java_home=/usr/local/diablo-jdk1.6.0
workers.tomcat_home=/usr/local/apache-tomcat4.1
worker.list=jsp-hostname
worker.jsp-hostname.port=8009
worker.jsp-hostname.host=127.0.0.1
worker.jsp-hostname.type=ajp13
worker.jsp-hostname.lbfactor=1*

**server.xml*
<Service name="Tomcat-Standalone">
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
                port="8180" enableLookups="true" redirectPort="8443"
                acceptCount="100" connectionTimeout="20000"
                useURIValidationHack="false" disableUploadTimeout="true" />

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
                port="8009" enableLookups="true" redirectPort="8443"
                connectionTimeout="0"
                useURIValidationHack="false"
                
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" />

<Engine name="Standalone" defaultHost="localhost" debug="0" 
jvmRoute="jsp-hostname">
<Logger className="org.apache.catalina.logger.FileLogger"
               prefix="catalina_log." suffix=".txt"
               timestamp="true"/>

<!-- Define the default virtual host -->
<Host name="localhost" debug="0" appBase="webapps"
        unpackWARs="true" autoDeploy="true">

<Logger className="org.apache.catalina.logger.FileLogger"
                  directory="logs"  prefix="localhost_log." suffix=".txt"
             timestamp="true"/>

<!-- Tomcat Root Context -->

<Context path="/ROOT" docBase="ROOT" debug="0" reloadable="true" 
crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" 
prefix="ROOT-http-tunneling_log." suffix=".txt" timestamp="true"/>
</Context>

<!-- Tomcat Examples Context -->
<Context path="/examples" docBase="examples" debug="1" reloadable="true" 
crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" 
prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>
<Ejb   name="ejb/EmplRecord" type="Entity"
                  home="com.wombat.empl.EmployeeRecordHome"
                remote="com.wombat.empl.EmployeeRecord"/>


*web.xml*
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>
      HttpTunnelingServletdc
</servlet-name>
<servlet-class>
*com.diginet.digichat.util.tunnel3.HttpTunnelingServlet*
</servlet-class>
<init-param>
<param-name>Host</param-name>
<param-value>localhost</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpTunnelingServletdc</servlet-name>
<url-pattern>/HttpTunnelingServletdc</url-pattern>
</servlet-mapping>
</web-app>

*catalina.out*
StandardEngine[null]: setJvmRoute=jsp-hostname
Jul 26, 2011 11:25:19 AM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8180
Starting service Tomcat-Standalone
Apache Tomcat/4.1.36
HTTP Tunnel connected to the digichat server localhost
HTTP Tunnel connected to the digichat server localhost
Jul 26, 2011 11:25:20 AM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8180
Jul 26, 2011 11:25:20 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jul 26, 2011 11:25:20 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/17  config=null

*mod_jk.log*
[Tue Jul 26 11:25:13.007 2011] [35031:34382823872] [info] 
init_jk::mod_jk.c (3198): mod_jk/1.2.31 (1026297) initialized
[Tue Jul 26 11:29:37.458 2011] [35103:34382823872] [warn] 
map_uri_to_worker_ext::jk_uri_worker_map.c (962): Uri * is invalid. Uri 
must start with /
[Tue Jul 26 11:30:15.672 2011] [35034:34382823872] [warn] 
map_uri_to_worker_ext::jk_uri_worker_map.c (962): Uri * is invalid. Uri 
must start with /

*ROOT-http-tunneling_log.2011-07-26.txt*
2011-07-26 11:25:19 WebappLoader[/ROOT]: Deploying class repositories to 
work directory /usr/local/apache-tomcat4.1/work/Standalone/localhost/ROOT
2011-07-26 11:25:19 WebappLoader[/ROOT]: Deploy class files 
/WEB-INF/classes to /usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes
2011-07-26 11:25:19 WebappLoader[/ROOT]: Reloading checks are enabled 
for this Context
2011-07-26 11:25:19 StandardManager[/ROOT]: Seeding random number 
generator class java.security.SecureRandom
2011-07-26 11:25:19 StandardManager[/ROOT]: Seeding of random number 
generator has been completed
2011-07-26 11:25:19 StandardWrapper[/ROOT:default]: Loading container 
servlet default
2011-07-26 11:25:19 StandardWrapper[/ROOT:invoker]: Loading container 
servlet invoker


*Requesting http://www.domain.com/servlet/HttpTunnelingServletdc via 
Browser results in:*


  HTTP Status 500 -

*type* Exception report

*message*

*description* _The server encountered an internal error () that 
prevented it from fulfilling this request._

*exception*

javax.servlet.ServletException
	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:619)

*root cause*

java.lang.NullPointerException
	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:619)

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


      Apache Tomcat/4.1.3


===================================================================================
*WORKING
Configuration for tomcat 3.3 (FreeBSD 5.4, Apache 1.3.41, Tomcat 3.3.2, 
mod_jk 1.2.15, Diablo JRE 1.5)
**============================================================================*
*
SERVER.XML
* (jakarta-tomcat3.3/conf)
<Ajp12Connector port="8007" />

*web.xml*
(/jakarta-tomcat3.3/webapps/ROOT/WEB-INF)
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
<servlet>
<servlet-name>
      HttpTunnelingServletdc
</servlet-name>
<servlet-class>
      com.diginet.digichat.util.tunnel3.HttpTunnelingServlet
</servlet-class>
<init-param>
<param-name>Host</param-name>
<param-value>localhost</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HttpTunnelingServlet</servlet-name>
<url-pattern>/HttpTunnelingServlet</url-pattern>
</servlet-mapping>
</web-app>

*workers.properties*
worker.ajp12.type=ajp12
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.lbfactor=1

*mod_jk.conf*
<IfModule !mod_jk.c>
   LoadModule jk_module /usr/local/libexec/apache/mod_jk.so
</IfModule>
JkWorkersFile "/usr/local/jakarta-tomcat3.3/conf/jk/workers.properties"
JkLogFile "/usr/local/jakarta-tomcat3.3/logs/mod_jk.log"
JkShmFile /var/log/jk-runtime-status
JkLogLevel info
JkMount /servlet/* ajp12



Re: Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Posted by Volker <to...@webchannel.de>.
I forget to mention that in httpd.conf the connectors are integrated 
like following:

<virtualhost domain.com test.domain.com>
....
JkMount /servlet jsp-hostname
JkMount /servlet/* jsp-hostname
</virtualhost>

Best regards
Volker

Am 26.07.2011 16:29, schrieb Volker:
> Hello,
>
> my current system configuration is like following:
>
> - FreeBSD 8.2
> - apache-2.2.17_2
> - mod_jk-ap2-1.2.31_1 Apache2 JK
> - tomcat 4.1.36_2
> - diablo-jdk1.6.0
>
> In order to provide a http tunneling for a chat server I have been
> using*tomcat 3.3*, FreeBSD 5.4, Apache 1.3, mod_jk (ajp12 Connector)
> and diablo-jre1.5.0 in combination with a certain http tunneling
> servlet *without any problems* for several years.
> That http tunneling servlet is passed via a chat applet via "<PARAM
> NAME='HttpServlet'
> VALUE='http://test.Domain.com/servlet/*HttpTunnelingServletdc*'>
> The configuration for that system above _*can be found below*_ *=>
> Configuration for tomcat 3.3
>
> *After upgrading to FreeBSD 8.2 I  had to upgrade from tomcat 3.3 to
> 4.1 because I did not find any port for tomcat version 3.3.
> I do not manage to make the httpd tunneling applet running correctly
> with ajp1.3 but I think it does not depend on the connector but a
> misconfigured mapping.
>
> I guess that following warning in mod_jk.log shows up the reason for
> my problem when requesting
> http://test.Domain.com/servlet/*HttpTunnelingServletdc*'
> *[Tue Jul 26 13:00:56.615 2011] [36163:34382823872] [warn]
> map_uri_to_worker_ext::jk_uri_worker_map.c (962): Uri * is invalid.
> Uri must start with /*
>
> However the tomcat 4.1 start page is accessible via http://domain:8180
> and working correctly!
>
> Below you find the configuration of my current system under FreeBSD
> mentioned above with tomcat 4.1.36 and apache 2.2.17 which does not
> run correctly _and the configuration for tomcat 3.3 which is running
> correctly_.*
>
> *Since I am not familiar with tomcat I would be glad if someone could
> give me a hint to solve my problem.
> Or maybe someone can give me some hints for how to compile tomcat 3.3
> sources for FreeBSD ;-)
>
>
> Thanks a lot and best regards
>
> Volker
> *
> ============================================================================
>
> NOT WORKING
> Configuration for Tomcat 4.1.36 (FreeBSD 8.2, Apache 2.2.17,
> mod_jk-ap2-1.2.31, Diablo JDK 1.6)
> **============================================================================
>
>
> The servlet classes result in:
> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*
> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*/*com/....*
> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes/digi/...
> ...
> *
> httpd.conf
> *JkWorkersFile "/usr/local/etc/apache22/workers.properties"
> JkLogFile "/usr/local/apache-tomcat4.1/logs/mod_jk.log"
> JkShmFile /var/log/jk-runtime-status
> JkLogLevel info
> *
> workers.properties
> *workers.java_home=/usr/local/diablo-jdk1.6.0
> workers.tomcat_home=/usr/local/apache-tomcat4.1
> worker.list=jsp-hostname
> worker.jsp-hostname.port=8009
> worker.jsp-hostname.host=127.0.0.1
> worker.jsp-hostname.type=ajp13
> worker.jsp-hostname.lbfactor=1*
>
> **server.xml*
> <Service name="Tomcat-Standalone">
> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
>                port="8180" enableLookups="true" redirectPort="8443"
>                acceptCount="100" connectionTimeout="20000"
>                useURIValidationHack="false"
> disableUploadTimeout="true" />
>
> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
>                port="8009" enableLookups="true" redirectPort="8443"
>                connectionTimeout="0"
>                useURIValidationHack="false"
>
> protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" />
>
> <Engine name="Standalone" defaultHost="localhost" debug="0"
> jvmRoute="jsp-hostname">
> <Logger className="org.apache.catalina.logger.FileLogger"
>               prefix="catalina_log." suffix=".txt"
>               timestamp="true"/>
>
> <!-- Define the default virtual host -->
> <Host name="localhost" debug="0" appBase="webapps"
>        unpackWARs="true" autoDeploy="true">
>
> <Logger className="org.apache.catalina.logger.FileLogger"
>                  directory="logs"  prefix="localhost_log." suffix=".txt"
>             timestamp="true"/>
>
> <!-- Tomcat Root Context -->
>
> <Context path="/ROOT" docBase="ROOT" debug="0" reloadable="true"
> crossContext="true">
> <Logger className="org.apache.catalina.logger.FileLogger"
> prefix="ROOT-http-tunneling_log." suffix=".txt" timestamp="true"/>
> </Context>
>
> <!-- Tomcat Examples Context -->
> <Context path="/examples" docBase="examples" debug="1"
> reloadable="true" crossContext="true">
> <Logger className="org.apache.catalina.logger.FileLogger"
> prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>
> <Ejb   name="ejb/EmplRecord" type="Entity"
>                  home="com.wombat.empl.EmployeeRecordHome"
>                remote="com.wombat.empl.EmployeeRecord"/>
>
>
> *web.xml*
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <!DOCTYPE web-app
>     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>     "http://java.sun.com/dtd/web-app_2_3.dtd">
> <web-app>
> <servlet>
> <servlet-name>
>      HttpTunnelingServletdc
> </servlet-name>
> <servlet-class>
> *com.diginet.digichat.util.tunnel3.HttpTunnelingServlet*
> </servlet-class>
> <init-param>
> <param-name>Host</param-name>
> <param-value>localhost</param-value>
> </init-param>
> <load-on-startup>1</load-on-startup>
> </servlet>
> <servlet-mapping>
> <servlet-name>invoker</servlet-name>
> <url-pattern>/servlet/*</url-pattern>
> </servlet-mapping>
> <servlet-mapping>
> <servlet-name>HttpTunnelingServletdc</servlet-name>
> <url-pattern>/HttpTunnelingServletdc</url-pattern>
> </servlet-mapping>
> </web-app>
>
> *catalina.out*
> StandardEngine[null]: setJvmRoute=jsp-hostname
> Jul 26, 2011 11:25:19 AM org.apache.coyote.http11.Http11BaseProtocol init
> INFO: Initializing Coyote HTTP/1.1 on http-8180
> Starting service Tomcat-Standalone
> Apache Tomcat/4.1.36
> HTTP Tunnel connected to the digichat server localhost
> HTTP Tunnel connected to the digichat server localhost
> Jul 26, 2011 11:25:20 AM org.apache.coyote.http11.Http11BaseProtocol
> start
> INFO: Starting Coyote HTTP/1.1 on http-8180
> Jul 26, 2011 11:25:20 AM org.apache.jk.common.ChannelSocket init
> INFO: JK: ajp13 listening on /0.0.0.0:8009
> Jul 26, 2011 11:25:20 AM org.apache.jk.server.JkMain start
> INFO: Jk running ID=0 time=0/17  config=null
>
> *mod_jk.log*
> [Tue Jul 26 11:25:13.007 2011] [35031:34382823872] [info]
> init_jk::mod_jk.c (3198): mod_jk/1.2.31 (1026297) initialized
> [Tue Jul 26 11:29:37.458 2011] [35103:34382823872] [warn]
> map_uri_to_worker_ext::jk_uri_worker_map.c (962): Uri * is invalid.
> Uri must start with /
> [Tue Jul 26 11:30:15.672 2011] [35034:34382823872] [warn]
> map_uri_to_worker_ext::jk_uri_worker_map.c (962): Uri * is invalid.
> Uri must start with /
>
> *ROOT-http-tunneling_log.2011-07-26.txt*
> 2011-07-26 11:25:19 WebappLoader[/ROOT]: Deploying class repositories
> to work directory
> /usr/local/apache-tomcat4.1/work/Standalone/localhost/ROOT
> 2011-07-26 11:25:19 WebappLoader[/ROOT]: Deploy class files
> /WEB-INF/classes to
> /usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes
> 2011-07-26 11:25:19 WebappLoader[/ROOT]: Reloading checks are enabled
> for this Context
> 2011-07-26 11:25:19 StandardManager[/ROOT]: Seeding random number
> generator class java.security.SecureRandom
> 2011-07-26 11:25:19 StandardManager[/ROOT]: Seeding of random number
> generator has been completed
> 2011-07-26 11:25:19 StandardWrapper[/ROOT:default]: Loading container
> servlet default
> 2011-07-26 11:25:19 StandardWrapper[/ROOT:invoker]: Loading container
> servlet invoker
>
>
> *Requesting http://www.domain.com/servlet/HttpTunnelingServletdc via
> Browser results in:*
>
>
>  HTTP Status 500 -
>
> *type* Exception report
>
> *message*
>
> *description* _The server encountered an internal error () that
> prevented it from fulfilling this request._
>
> *exception*
>
> javax.servlet.ServletException
>     at
> com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
>     at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>     at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>     at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
>     at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>     at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>     at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
>     at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
>     at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>     at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>     at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>     at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>     at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
>     at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>     at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>     at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
>     at
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
>     at
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
>     at
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
>     at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
>     at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
>     at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
>     at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>     at java.lang.Thread.run(Thread.java:619)
>
> *root cause*
>
> java.lang.NullPointerException
>     at
> com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
>     at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>     at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>     at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
>     at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>     at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>     at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
>     at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
>     at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>     at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>     at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
>     at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>     at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
>     at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
>     at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
>     at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
>     at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
>     at
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
>     at
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
>     at
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
>     at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
>     at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
>     at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
>     at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>     at java.lang.Thread.run(Thread.java:619)
>
> ------------------------------------------------------------------------
>
>
>      Apache Tomcat/4.1.3
>
>
> ===================================================================================
>
> *WORKING
> Configuration for tomcat 3.3 (FreeBSD 5.4, Apache 1.3.41, Tomcat
> 3.3.2, mod_jk 1.2.15, Diablo JRE 1.5)
> **============================================================================*
>
> *
> SERVER.XML
> * (jakarta-tomcat3.3/conf)
> <Ajp12Connector port="8007" />
>
> *web.xml*
> (/jakarta-tomcat3.3/webapps/ROOT/WEB-INF)
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> <!DOCTYPE web-app
>     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>     "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
> <servlet>
> <servlet-name>
>      HttpTunnelingServletdc
> </servlet-name>
> <servlet-class>
>      com.diginet.digichat.util.tunnel3.HttpTunnelingServlet
> </servlet-class>
> <init-param>
> <param-name>Host</param-name>
> <param-value>localhost</param-value>
> </init-param>
> <load-on-startup>1</load-on-startup>
> </servlet>
> <servlet-mapping>
> <servlet-name>HttpTunnelingServlet</servlet-name>
> <url-pattern>/HttpTunnelingServlet</url-pattern>
> </servlet-mapping>
> </web-app>
>
> *workers.properties*
> worker.ajp12.type=ajp12
> worker.ajp12.port=8007
> worker.ajp12.host=localhost
> worker.ajp12.lbfactor=1
>
> *mod_jk.conf*
> <IfModule !mod_jk.c>
>   LoadModule jk_module /usr/local/libexec/apache/mod_jk.so
> </IfModule>
> JkWorkersFile "/usr/local/jakarta-tomcat3.3/conf/jk/workers.properties"
> JkLogFile "/usr/local/jakarta-tomcat3.3/logs/mod_jk.log"
> JkShmFile /var/log/jk-runtime-status
> JkLogLevel info
> JkMount /servlet/* ajp12
>
>
>

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


Re: Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Posted by Volker <to...@webchannel.de>.
Am 27.07.2011 19:34, schrieb Felix Schumacher:
> Hi Volker,
Hi Felix,
> Am Mittwoch, den 27.07.2011, 13:08 +0200 schrieb Volker:
>> Hallo Felix,
>>
>> I considered all tips you gave. Thanks again.
>>
>> Like mentioned before my configuration was running correctly but I could
>> not notice that because the http tunneling does need much more time
>> (first request of the httptunnelingdc-Servlet (I check this out in
>> Apache?s log-file) than my former configuration with tomcat.
> are you still using the invoker servlet, or are you using
> httptunnelingdc-Servlet with a url-path?
No, invoker servlet is not used anymore!
>> Now I wonder how I can tune something (Simultaneously I will install
>> tomcat 7.x) because I do not know if the slow-performance-problem
>> depends on tomcat settings or maybe on the Diablo-Java-Settings?
> I would bet, that the app is causing the delay.
Well, I guess that too. But since the applet code has not changed it 
obviously depends on the Java-Plugin-version too!
>> The combination with tomcat 3.3, apj12, mod_jk, Diablo JRE 1.5 and
>> apache 1.3 results in opening the chat window via http tunneling in *a
>> few seconds* if you blocked all ports except port 80 before for Java
>> (Browser).
>> With tomcat 4.1 the same procedure needs nearly 3 minutes.
>>
>> Any idea?
> Look at
> http://wiki.apache.org/tomcat/FAQ/Troubleshooting_and_Diagnostics and
> find the troublemaker :) Common advise is to take a few threadtraces a
> few seconds apart. Then find stacktraces which apear to be stuck. Maybe
> it just tries to do a dns lookup or connect to some host until it times
> out.
No, ist has to do with the applet params for different ports you can 
define for contacting the chat server.
For example defining the ports under which the chat server is listening 
looks like following:
<param name='ports' value='ports=119,8080,58399'>

The the applet tries to reach the chat server via port 119. If that does 
not work it continues with port 8080 etc.
If all ports fail, the http tunneling servlet is requested.

If you only define ports=119 which is blocked by your firewall 
client-sided the http tunneling will be requested after 30 seconds.
Defining the 3 ports 119,8080 and 58399 results in nearly 3 minutes if 
you are blocking those ports with a software firewall.

Best regards

Volker


> Regards
>   Felix
>> Thanks and best regards
>>
>> V o l k e r
>>
>>
>> Am 26.07.2011 19:54, schrieb Felix Schumacher:
>>> Hi Volker,
>>>
>>> Am Dienstag, den 26.07.2011, 16:29 +0200 schrieb Volker:
>>>> Hello,
>>>>
>>>> my current system configuration is like following:
>>>>
>>>> - FreeBSD 8.2
>>>> - apache-2.2.17_2
>>>> - mod_jk-ap2-1.2.31_1 Apache2 JK
>>>> - tomcat 4.1.36_2
>>> As you said elsewhere in this thread, that you are willing to upgrade to
>>> a newer tomcat as well, I will assume, that you will use tomcat 6 or
>>> even tomcat 7.
>>>> - diablo-jdk1.6.0
>>>>
>>>> In order to provide a http tunneling for a chat server I have been
>>>> using*tomcat 3.3*, FreeBSD 5.4, Apache 1.3, mod_jk (ajp12 Connector) and
>>>> diablo-jre1.5.0 in combination with a certain http tunneling servlet
>>>> *without any problems* for several years.
>>>> That http tunneling servlet is passed via a chat applet via "<PARAM
>>>> NAME='HttpServlet'
>>>> VALUE='http://test.Domain.com/servlet/*HttpTunnelingServletdc*'>
>>>> The configuration for that system above _*can be found below*_ *=>
>>>> Configuration for tomcat 3.3
>>> That looks like you are using the strongly discouraged dispatcher
>>> servlet. That is still available, but disabled by default. And you
>>> should leave it that way.
>>> ...
>>>> Thanks a lot and best regards
>>>>
>>>> Volker
>>>> *
>>>> ============================================================================
>>>> NOT WORKING
>>>> Configuration for Tomcat 4.1.36 (FreeBSD 8.2, Apache 2.2.17,
>>>> mod_jk-ap2-1.2.31, Diablo JDK 1.6)
>>>> **============================================================================
>>>>
>>>> The servlet classes result in:
>>>> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*
>>>> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*/*com/....*
>>>> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes/digi/...
>>> I read that as: There are some files and directories under
>>> WEB-INF/classes in your ROOT webapp and that /usr/local/apache-tomcat4.1
>>> is your CATALINA_BASE and probably CATALINA_HOME too.
>>>> ...
>>>> *
>>>> httpd.conf
>>>> *JkWorkersFile "/usr/local/etc/apache22/workers.properties"
>>>> JkLogFile "/usr/local/apache-tomcat4.1/logs/mod_jk.log"
>>>> JkShmFile /var/log/jk-runtime-status
>>>> JkLogLevel info
>>> Looks OK.
>>>> *
>>>> workers.properties
>>>> *workers.java_home=/usr/local/diablo-jdk1.6.0
>>>> workers.tomcat_home=/usr/local/apache-tomcat4.1
>>> Remove both deprecated config options java_home and tomcat_home. They
>>> are not needed anymore.
>>>> worker.list=jsp-hostname
>>>> worker.jsp-hostname.port=8009
>>>> worker.jsp-hostname.host=127.0.0.1
>>>> worker.jsp-hostname.type=ajp13
>>>> worker.jsp-hostname.lbfactor=1*
>>>>
>>>> **server.xml*
>>> Copy the server.xml from a fresh tomcat download and replace your
>>> port-numbers in there.
>>>
>>>> <Service name="Tomcat-Standalone">
>>> ...
>>>
>>>> <!-- Tomcat Root Context -->
>>>>
>>>> <Context path="/ROOT" docBase="ROOT" debug="0" reloadable="true"
>>>> crossContext="true">
>>>> <Logger className="org.apache.catalina.logger.FileLogger"
>>>> prefix="ROOT-http-tunneling_log." suffix=".txt" timestamp="true"/>
>>>> </Context>
>>>>
>>>> <!-- Tomcat Examples Context -->
>>>> <Context path="/examples" docBase="examples" debug="1" reloadable="true"
>>>> crossContext="true">
>>>> <Logger className="org.apache.catalina.logger.FileLogger"
>>>> prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>
>>>> <Ejb   name="ejb/EmplRecord" type="Entity"
>>>>                     home="com.wombat.empl.EmployeeRecordHome"
>>>>                   remote="com.wombat.empl.EmployeeRecord"/>
>>> Your context descriptions for ROOT and example would be placed in newly
>>> created files named ROOT.xml and example.xml under
>>> $CATALINA_BASE/conf/Catalina/localhost. But I seriously doubt, that you
>>> need example.xml and ROOT.xml is not needed, if all you want to achieve
>>> is logging. Look at http://tomcat.apache.org/tomcat-7.0-doc/logging.html
>>> for more info about simple logging.
>>>> *web.xml*
>>>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>>> <!DOCTYPE web-app
>>>>        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>>>>        "http://java.sun.com/dtd/web-app_2_3.dtd">
>>> You could update your webapp to a newer version by replacing the above
>>> values, but they should do no harm.
>>>> <web-app>
>>>> <servlet>
>>>> <servlet-name>
>>>>         HttpTunnelingServletdc
>>>> </servlet-name>
>>>> <servlet-class>
>>>> *com.diginet.digichat.util.tunnel3.HttpTunnelingServlet*
>>>> </servlet-class>
>>>> <init-param>
>>>> <param-name>Host</param-name>
>>>> <param-value>localhost</param-value>
>>>> </init-param>
>>>> <load-on-startup>1</load-on-startup>
>>>> </servlet>
>>>> <servlet-mapping>
>>>> <servlet-name>invoker</servlet-name>
>>>> <url-pattern>/servlet/*</url-pattern>
>>>> </servlet-mapping>
>>>> <servlet-mapping>
>>>> <servlet-name>HttpTunnelingServletdc</servlet-name>
>>>> <url-pattern>/HttpTunnelingServletdc</url-pattern>
>>>> </servlet-mapping>
>>> Instead of mapping a not configured servlet named invoker to /servlet/*
>>> you should map your servlet named HttpTunnelingServletdc
>>> to /servlet/HttpTunnelingServletdc or alternatively change your applet
>>> configuration from top of your post.
>>>
>>> So remove
>>> <servlet-mapping><servlet-name>invoker</servlet-name>...</servlet-mapping>
>>> and change url-pattern in the<servlet-mapping>
>>> from /HttpTunnelingServletdc to /servlet/HttpTunnelingServletdc
>>>> </web-app>
>>>>
>>> ...
>>>> *description* _The server encountered an internal error () that
>>>> prevented it from fulfilling this request._
>>>>
>>>> *exception*
>>>>
>>>> javax.servlet.ServletException
>>>> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
>>>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>>>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>>> ...
>>>> 	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
>>>> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>>>> 	at java.lang.Thread.run(Thread.java:619)
>>>>
>>>> *root cause*
>>>>
>>>> java.lang.NullPointerException
>>>> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
>>> Hopefully you have the source code for HttpTunnelingServlet since this
>>> line means, your servlet gets invoked, but it is not happy to work :)
>>> That might come from the fact, that you configured the servlet
>>> HttpTunnelingServletdc, but used the invoker-servlet. Chances are, that
>>> the proposed configuration chages in web.xml fix this.
>>>
>>> HTH
>>>    Felix
>>>
>>>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>>>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>>>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
>>>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
>>> ...
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>>         Apache Tomcat/4.1.3
>>>>
>>>>
>>>> ===================================================================================
>>>> *WORKING
>>>> Configuration for tomcat 3.3 (FreeBSD 5.4, Apache 1.3.41, Tomcat 3.3.2,
>>>> mod_jk 1.2.15, Diablo JRE 1.5)
>>>> **============================================================================*
>>>> *
>>>> SERVER.XML
>>>> * (jakarta-tomcat3.3/conf)
>>>> <Ajp12Connector port="8007" />
>>>>
>>>> *web.xml*
>>>> (/jakarta-tomcat3.3/webapps/ROOT/WEB-INF)
>>>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>>>
>>>> <!DOCTYPE web-app
>>>>        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>>>>        "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
>>>> <servlet>
>>>> <servlet-name>
>>>>         HttpTunnelingServletdc
>>>> </servlet-name>
>>>> <servlet-class>
>>>>         com.diginet.digichat.util.tunnel3.HttpTunnelingServlet
>>>> </servlet-class>
>>>> <init-param>
>>>> <param-name>Host</param-name>
>>>> <param-value>localhost</param-value>
>>>> </init-param>
>>>> <load-on-startup>1</load-on-startup>
>>>> </servlet>
>>>> <servlet-mapping>
>>>> <servlet-name>HttpTunnelingServlet</servlet-name>
>>>> <url-pattern>/HttpTunnelingServlet</url-pattern>
>>>> </servlet-mapping>
>>>> </web-app>
>>>>
>>>> *workers.properties*
>>>> worker.ajp12.type=ajp12
>>>> worker.ajp12.port=8007
>>>> worker.ajp12.host=localhost
>>>> worker.ajp12.lbfactor=1
>>>>
>>>> *mod_jk.conf*
>>>> <IfModule !mod_jk.c>
>>>>      LoadModule jk_module /usr/local/libexec/apache/mod_jk.so
>>>> </IfModule>
>>>> JkWorkersFile "/usr/local/jakarta-tomcat3.3/conf/jk/workers.properties"
>>>> JkLogFile "/usr/local/jakarta-tomcat3.3/logs/mod_jk.log"
>>>> JkShmFile /var/log/jk-runtime-status
>>>> JkLogLevel info
>>>> JkMount /servlet/* ajp12
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>
>

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


Re: Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Posted by Felix Schumacher <fe...@internetallee.de>.
Hi Volker,

Am Mittwoch, den 27.07.2011, 13:08 +0200 schrieb Volker:
> Hallo Felix,
> 
> I considered all tips you gave. Thanks again.
> 
> Like mentioned before my configuration was running correctly but I could 
> not notice that because the http tunneling does need much more time 
> (first request of the httptunnelingdc-Servlet (I check this out in 
> Apache?s log-file) than my former configuration with tomcat.
are you still using the invoker servlet, or are you using
httptunnelingdc-Servlet with a url-path?

> 
> Now I wonder how I can tune something (Simultaneously I will install 
> tomcat 7.x) because I do not know if the slow-performance-problem 
> depends on tomcat settings or maybe on the Diablo-Java-Settings?
I would bet, that the app is causing the delay.

> 
> The combination with tomcat 3.3, apj12, mod_jk, Diablo JRE 1.5 and 
> apache 1.3 results in opening the chat window via http tunneling in *a 
> few seconds* if you blocked all ports except port 80 before for Java 
> (Browser).
> With tomcat 4.1 the same procedure needs nearly 3 minutes.
> 
> Any idea?
Look at
http://wiki.apache.org/tomcat/FAQ/Troubleshooting_and_Diagnostics and
find the troublemaker :) Common advise is to take a few threadtraces a
few seconds apart. Then find stacktraces which apear to be stuck. Maybe
it just tries to do a dns lookup or connect to some host until it times
out.

Regards
 Felix
> 
> Thanks and best regards
> 
> V o l k e r
> 
> 
> Am 26.07.2011 19:54, schrieb Felix Schumacher:
> > Hi Volker,
> >
> > Am Dienstag, den 26.07.2011, 16:29 +0200 schrieb Volker:
> >> Hello,
> >>
> >> my current system configuration is like following:
> >>
> >> - FreeBSD 8.2
> >> - apache-2.2.17_2
> >> - mod_jk-ap2-1.2.31_1 Apache2 JK
> >> - tomcat 4.1.36_2
> > As you said elsewhere in this thread, that you are willing to upgrade to
> > a newer tomcat as well, I will assume, that you will use tomcat 6 or
> > even tomcat 7.
> >> - diablo-jdk1.6.0
> >>
> >> In order to provide a http tunneling for a chat server I have been
> >> using*tomcat 3.3*, FreeBSD 5.4, Apache 1.3, mod_jk (ajp12 Connector) and
> >> diablo-jre1.5.0 in combination with a certain http tunneling servlet
> >> *without any problems* for several years.
> >> That http tunneling servlet is passed via a chat applet via "<PARAM
> >> NAME='HttpServlet'
> >> VALUE='http://test.Domain.com/servlet/*HttpTunnelingServletdc*'>
> >> The configuration for that system above _*can be found below*_ *=>
> >> Configuration for tomcat 3.3
> > That looks like you are using the strongly discouraged dispatcher
> > servlet. That is still available, but disabled by default. And you
> > should leave it that way.
> > ...
> >> Thanks a lot and best regards
> >>
> >> Volker
> >> *
> >> ============================================================================
> >> NOT WORKING
> >> Configuration for Tomcat 4.1.36 (FreeBSD 8.2, Apache 2.2.17,
> >> mod_jk-ap2-1.2.31, Diablo JDK 1.6)
> >> **============================================================================
> >>
> >> The servlet classes result in:
> >> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*
> >> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*/*com/....*
> >> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes/digi/...
> > I read that as: There are some files and directories under
> > WEB-INF/classes in your ROOT webapp and that /usr/local/apache-tomcat4.1
> > is your CATALINA_BASE and probably CATALINA_HOME too.
> >> ...
> >> *
> >> httpd.conf
> >> *JkWorkersFile "/usr/local/etc/apache22/workers.properties"
> >> JkLogFile "/usr/local/apache-tomcat4.1/logs/mod_jk.log"
> >> JkShmFile /var/log/jk-runtime-status
> >> JkLogLevel info
> > Looks OK.
> >> *
> >> workers.properties
> >> *workers.java_home=/usr/local/diablo-jdk1.6.0
> >> workers.tomcat_home=/usr/local/apache-tomcat4.1
> > Remove both deprecated config options java_home and tomcat_home. They
> > are not needed anymore.
> >> worker.list=jsp-hostname
> >> worker.jsp-hostname.port=8009
> >> worker.jsp-hostname.host=127.0.0.1
> >> worker.jsp-hostname.type=ajp13
> >> worker.jsp-hostname.lbfactor=1*
> >>
> >> **server.xml*
> > Copy the server.xml from a fresh tomcat download and replace your
> > port-numbers in there.
> >
> >> <Service name="Tomcat-Standalone">
> > ...
> >
> >> <!-- Tomcat Root Context -->
> >>
> >> <Context path="/ROOT" docBase="ROOT" debug="0" reloadable="true"
> >> crossContext="true">
> >> <Logger className="org.apache.catalina.logger.FileLogger"
> >> prefix="ROOT-http-tunneling_log." suffix=".txt" timestamp="true"/>
> >> </Context>
> >>
> >> <!-- Tomcat Examples Context -->
> >> <Context path="/examples" docBase="examples" debug="1" reloadable="true"
> >> crossContext="true">
> >> <Logger className="org.apache.catalina.logger.FileLogger"
> >> prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>
> >> <Ejb   name="ejb/EmplRecord" type="Entity"
> >>                    home="com.wombat.empl.EmployeeRecordHome"
> >>                  remote="com.wombat.empl.EmployeeRecord"/>
> > Your context descriptions for ROOT and example would be placed in newly
> > created files named ROOT.xml and example.xml under
> > $CATALINA_BASE/conf/Catalina/localhost. But I seriously doubt, that you
> > need example.xml and ROOT.xml is not needed, if all you want to achieve
> > is logging. Look at http://tomcat.apache.org/tomcat-7.0-doc/logging.html
> > for more info about simple logging.
> >>
> >> *web.xml*
> >> <?xml version="1.0" encoding="ISO-8859-1"?>
> >> <!DOCTYPE web-app
> >>       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
> >>       "http://java.sun.com/dtd/web-app_2_3.dtd">
> > You could update your webapp to a newer version by replacing the above
> > values, but they should do no harm.
> >> <web-app>
> >> <servlet>
> >> <servlet-name>
> >>        HttpTunnelingServletdc
> >> </servlet-name>
> >> <servlet-class>
> >> *com.diginet.digichat.util.tunnel3.HttpTunnelingServlet*
> >> </servlet-class>
> >> <init-param>
> >> <param-name>Host</param-name>
> >> <param-value>localhost</param-value>
> >> </init-param>
> >> <load-on-startup>1</load-on-startup>
> >> </servlet>
> >> <servlet-mapping>
> >> <servlet-name>invoker</servlet-name>
> >> <url-pattern>/servlet/*</url-pattern>
> >> </servlet-mapping>
> >> <servlet-mapping>
> >> <servlet-name>HttpTunnelingServletdc</servlet-name>
> >> <url-pattern>/HttpTunnelingServletdc</url-pattern>
> >> </servlet-mapping>
> > Instead of mapping a not configured servlet named invoker to /servlet/*
> > you should map your servlet named HttpTunnelingServletdc
> > to /servlet/HttpTunnelingServletdc or alternatively change your applet
> > configuration from top of your post.
> >
> > So remove
> > <servlet-mapping><servlet-name>invoker</servlet-name>...</servlet-mapping>
> > and change url-pattern in the<servlet-mapping>
> > from /HttpTunnelingServletdc to /servlet/HttpTunnelingServletdc
> >> </web-app>
> >>
> > ...
> >> *description* _The server encountered an internal error () that
> >> prevented it from fulfilling this request._
> >>
> >> *exception*
> >>
> >> javax.servlet.ServletException
> >> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
> >> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> >> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> > ...
> >> 	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
> >> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
> >> 	at java.lang.Thread.run(Thread.java:619)
> >>
> >> *root cause*
> >>
> >> java.lang.NullPointerException
> >> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
> > Hopefully you have the source code for HttpTunnelingServlet since this
> > line means, your servlet gets invoked, but it is not happy to work :)
> > That might come from the fact, that you configured the servlet
> > HttpTunnelingServletdc, but used the invoker-servlet. Chances are, that
> > the proposed configuration chages in web.xml fix this.
> >
> > HTH
> >   Felix
> >
> >> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> >> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> >> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
> >> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
> > ...
> >> ------------------------------------------------------------------------
> >>
> >>
> >>        Apache Tomcat/4.1.3
> >>
> >>
> >> ===================================================================================
> >> *WORKING
> >> Configuration for tomcat 3.3 (FreeBSD 5.4, Apache 1.3.41, Tomcat 3.3.2,
> >> mod_jk 1.2.15, Diablo JRE 1.5)
> >> **============================================================================*
> >> *
> >> SERVER.XML
> >> * (jakarta-tomcat3.3/conf)
> >> <Ajp12Connector port="8007" />
> >>
> >> *web.xml*
> >> (/jakarta-tomcat3.3/webapps/ROOT/WEB-INF)
> >> <?xml version="1.0" encoding="ISO-8859-1"?>
> >>
> >> <!DOCTYPE web-app
> >>       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
> >>       "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
> >> <servlet>
> >> <servlet-name>
> >>        HttpTunnelingServletdc
> >> </servlet-name>
> >> <servlet-class>
> >>        com.diginet.digichat.util.tunnel3.HttpTunnelingServlet
> >> </servlet-class>
> >> <init-param>
> >> <param-name>Host</param-name>
> >> <param-value>localhost</param-value>
> >> </init-param>
> >> <load-on-startup>1</load-on-startup>
> >> </servlet>
> >> <servlet-mapping>
> >> <servlet-name>HttpTunnelingServlet</servlet-name>
> >> <url-pattern>/HttpTunnelingServlet</url-pattern>
> >> </servlet-mapping>
> >> </web-app>
> >>
> >> *workers.properties*
> >> worker.ajp12.type=ajp12
> >> worker.ajp12.port=8007
> >> worker.ajp12.host=localhost
> >> worker.ajp12.lbfactor=1
> >>
> >> *mod_jk.conf*
> >> <IfModule !mod_jk.c>
> >>     LoadModule jk_module /usr/local/libexec/apache/mod_jk.so
> >> </IfModule>
> >> JkWorkersFile "/usr/local/jakarta-tomcat3.3/conf/jk/workers.properties"
> >> JkLogFile "/usr/local/jakarta-tomcat3.3/logs/mod_jk.log"
> >> JkShmFile /var/log/jk-runtime-status
> >> JkLogLevel info
> >> JkMount /servlet/* ajp12
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > 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: Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Posted by Volker <to...@webchannel.de>.
Hallo Felix,

I considered all tips you gave. Thanks again.

Like mentioned before my configuration was running correctly but I could 
not notice that because the http tunneling does need much more time 
(first request of the httptunnelingdc-Servlet (I check this out in 
Apache?s log-file) than my former configuration with tomcat.

Now I wonder how I can tune something (Simultaneously I will install 
tomcat 7.x) because I do not know if the slow-performance-problem 
depends on tomcat settings or maybe on the Diablo-Java-Settings?

The combination with tomcat 3.3, apj12, mod_jk, Diablo JRE 1.5 and 
apache 1.3 results in opening the chat window via http tunneling in *a 
few seconds* if you blocked all ports except port 80 before for Java 
(Browser).
With tomcat 4.1 the same procedure needs nearly 3 minutes.

Any idea?

Thanks and best regards

V o l k e r


Am 26.07.2011 19:54, schrieb Felix Schumacher:
> Hi Volker,
>
> Am Dienstag, den 26.07.2011, 16:29 +0200 schrieb Volker:
>> Hello,
>>
>> my current system configuration is like following:
>>
>> - FreeBSD 8.2
>> - apache-2.2.17_2
>> - mod_jk-ap2-1.2.31_1 Apache2 JK
>> - tomcat 4.1.36_2
> As you said elsewhere in this thread, that you are willing to upgrade to
> a newer tomcat as well, I will assume, that you will use tomcat 6 or
> even tomcat 7.
>> - diablo-jdk1.6.0
>>
>> In order to provide a http tunneling for a chat server I have been
>> using*tomcat 3.3*, FreeBSD 5.4, Apache 1.3, mod_jk (ajp12 Connector) and
>> diablo-jre1.5.0 in combination with a certain http tunneling servlet
>> *without any problems* for several years.
>> That http tunneling servlet is passed via a chat applet via "<PARAM
>> NAME='HttpServlet'
>> VALUE='http://test.Domain.com/servlet/*HttpTunnelingServletdc*'>
>> The configuration for that system above _*can be found below*_ *=>
>> Configuration for tomcat 3.3
> That looks like you are using the strongly discouraged dispatcher
> servlet. That is still available, but disabled by default. And you
> should leave it that way.
> ...
>> Thanks a lot and best regards
>>
>> Volker
>> *
>> ============================================================================
>> NOT WORKING
>> Configuration for Tomcat 4.1.36 (FreeBSD 8.2, Apache 2.2.17,
>> mod_jk-ap2-1.2.31, Diablo JDK 1.6)
>> **============================================================================
>>
>> The servlet classes result in:
>> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*
>> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*/*com/....*
>> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes/digi/...
> I read that as: There are some files and directories under
> WEB-INF/classes in your ROOT webapp and that /usr/local/apache-tomcat4.1
> is your CATALINA_BASE and probably CATALINA_HOME too.
>> ...
>> *
>> httpd.conf
>> *JkWorkersFile "/usr/local/etc/apache22/workers.properties"
>> JkLogFile "/usr/local/apache-tomcat4.1/logs/mod_jk.log"
>> JkShmFile /var/log/jk-runtime-status
>> JkLogLevel info
> Looks OK.
>> *
>> workers.properties
>> *workers.java_home=/usr/local/diablo-jdk1.6.0
>> workers.tomcat_home=/usr/local/apache-tomcat4.1
> Remove both deprecated config options java_home and tomcat_home. They
> are not needed anymore.
>> worker.list=jsp-hostname
>> worker.jsp-hostname.port=8009
>> worker.jsp-hostname.host=127.0.0.1
>> worker.jsp-hostname.type=ajp13
>> worker.jsp-hostname.lbfactor=1*
>>
>> **server.xml*
> Copy the server.xml from a fresh tomcat download and replace your
> port-numbers in there.
>
>> <Service name="Tomcat-Standalone">
> ...
>
>> <!-- Tomcat Root Context -->
>>
>> <Context path="/ROOT" docBase="ROOT" debug="0" reloadable="true"
>> crossContext="true">
>> <Logger className="org.apache.catalina.logger.FileLogger"
>> prefix="ROOT-http-tunneling_log." suffix=".txt" timestamp="true"/>
>> </Context>
>>
>> <!-- Tomcat Examples Context -->
>> <Context path="/examples" docBase="examples" debug="1" reloadable="true"
>> crossContext="true">
>> <Logger className="org.apache.catalina.logger.FileLogger"
>> prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>
>> <Ejb   name="ejb/EmplRecord" type="Entity"
>>                    home="com.wombat.empl.EmployeeRecordHome"
>>                  remote="com.wombat.empl.EmployeeRecord"/>
> Your context descriptions for ROOT and example would be placed in newly
> created files named ROOT.xml and example.xml under
> $CATALINA_BASE/conf/Catalina/localhost. But I seriously doubt, that you
> need example.xml and ROOT.xml is not needed, if all you want to achieve
> is logging. Look at http://tomcat.apache.org/tomcat-7.0-doc/logging.html
> for more info about simple logging.
>>
>> *web.xml*
>> <?xml version="1.0" encoding="ISO-8859-1"?>
>> <!DOCTYPE web-app
>>       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>>       "http://java.sun.com/dtd/web-app_2_3.dtd">
> You could update your webapp to a newer version by replacing the above
> values, but they should do no harm.
>> <web-app>
>> <servlet>
>> <servlet-name>
>>        HttpTunnelingServletdc
>> </servlet-name>
>> <servlet-class>
>> *com.diginet.digichat.util.tunnel3.HttpTunnelingServlet*
>> </servlet-class>
>> <init-param>
>> <param-name>Host</param-name>
>> <param-value>localhost</param-value>
>> </init-param>
>> <load-on-startup>1</load-on-startup>
>> </servlet>
>> <servlet-mapping>
>> <servlet-name>invoker</servlet-name>
>> <url-pattern>/servlet/*</url-pattern>
>> </servlet-mapping>
>> <servlet-mapping>
>> <servlet-name>HttpTunnelingServletdc</servlet-name>
>> <url-pattern>/HttpTunnelingServletdc</url-pattern>
>> </servlet-mapping>
> Instead of mapping a not configured servlet named invoker to /servlet/*
> you should map your servlet named HttpTunnelingServletdc
> to /servlet/HttpTunnelingServletdc or alternatively change your applet
> configuration from top of your post.
>
> So remove
> <servlet-mapping><servlet-name>invoker</servlet-name>...</servlet-mapping>
> and change url-pattern in the<servlet-mapping>
> from /HttpTunnelingServletdc to /servlet/HttpTunnelingServletdc
>> </web-app>
>>
> ...
>> *description* _The server encountered an internal error () that
>> prevented it from fulfilling this request._
>>
>> *exception*
>>
>> javax.servlet.ServletException
>> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> ...
>> 	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
>> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>> 	at java.lang.Thread.run(Thread.java:619)
>>
>> *root cause*
>>
>> java.lang.NullPointerException
>> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
> Hopefully you have the source code for HttpTunnelingServlet since this
> line means, your servlet gets invoked, but it is not happy to work :)
> That might come from the fact, that you configured the servlet
> HttpTunnelingServletdc, but used the invoker-servlet. Chances are, that
> the proposed configuration chages in web.xml fix this.
>
> HTH
>   Felix
>
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
> ...
>> ------------------------------------------------------------------------
>>
>>
>>        Apache Tomcat/4.1.3
>>
>>
>> ===================================================================================
>> *WORKING
>> Configuration for tomcat 3.3 (FreeBSD 5.4, Apache 1.3.41, Tomcat 3.3.2,
>> mod_jk 1.2.15, Diablo JRE 1.5)
>> **============================================================================*
>> *
>> SERVER.XML
>> * (jakarta-tomcat3.3/conf)
>> <Ajp12Connector port="8007" />
>>
>> *web.xml*
>> (/jakarta-tomcat3.3/webapps/ROOT/WEB-INF)
>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>
>> <!DOCTYPE web-app
>>       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>>       "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
>> <servlet>
>> <servlet-name>
>>        HttpTunnelingServletdc
>> </servlet-name>
>> <servlet-class>
>>        com.diginet.digichat.util.tunnel3.HttpTunnelingServlet
>> </servlet-class>
>> <init-param>
>> <param-name>Host</param-name>
>> <param-value>localhost</param-value>
>> </init-param>
>> <load-on-startup>1</load-on-startup>
>> </servlet>
>> <servlet-mapping>
>> <servlet-name>HttpTunnelingServlet</servlet-name>
>> <url-pattern>/HttpTunnelingServlet</url-pattern>
>> </servlet-mapping>
>> </web-app>
>>
>> *workers.properties*
>> worker.ajp12.type=ajp12
>> worker.ajp12.port=8007
>> worker.ajp12.host=localhost
>> worker.ajp12.lbfactor=1
>>
>> *mod_jk.conf*
>> <IfModule !mod_jk.c>
>>     LoadModule jk_module /usr/local/libexec/apache/mod_jk.so
>> </IfModule>
>> JkWorkersFile "/usr/local/jakarta-tomcat3.3/conf/jk/workers.properties"
>> JkLogFile "/usr/local/jakarta-tomcat3.3/logs/mod_jk.log"
>> JkShmFile /var/log/jk-runtime-status
>> JkLogLevel info
>> JkMount /servlet/* ajp12
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Re: Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Posted by Volker <to...@webchannel.de>.
Hallo Felix,

thanks for your hints, I will check them out today.

Believe it or not: Obviously the configuration for tomcat 4.1 I posted 
here is running correctly.
But I did not notice it - and this will be the problem for all my chat 
site visitors that need http tunneling - because it takes nearly 2 
minutes with tomcat 4.1 until the chat applets request of

http://test.Domain.com/servlet/*HttpTunnelingServletdc

does show up in apache?s log file whereas tomcat 3.3 is requesting the 
tunneling servlet at once.

Result:
Chatters behind a firewall that blocks several ports except port 80 can 
enter the chat in a few seconds by help of the tunneling servlet and 
tomcat 3.3.
With tomcat 4.1 they will think the chat does not work and leave the site.

I only noticed that slow behaviour because I had a phone call after 
requesting the chat applet behind a firewall only permitting port 80.

Maybe you can recommend any tuning settings for my problem concerning 
tomcat 4.1?


Thanks a lot and best regards
V o l k e r

Am 26.07.2011 19:54, schrieb Felix Schumacher:
> Hi Volker,
>
> Am Dienstag, den 26.07.2011, 16:29 +0200 schrieb Volker:
>> Hello,
>>
>> my current system configuration is like following:
>>
>> - FreeBSD 8.2
>> - apache-2.2.17_2
>> - mod_jk-ap2-1.2.31_1 Apache2 JK
>> - tomcat 4.1.36_2
> As you said elsewhere in this thread, that you are willing to upgrade to
> a newer tomcat as well, I will assume, that you will use tomcat 6 or
> even tomcat 7.
>> - diablo-jdk1.6.0
>>
>> In order to provide a http tunneling for a chat server I have been
>> using*tomcat 3.3*, FreeBSD 5.4, Apache 1.3, mod_jk (ajp12 Connector) and
>> diablo-jre1.5.0 in combination with a certain http tunneling servlet
>> *without any problems* for several years.
>> That http tunneling servlet is passed via a chat applet via "<PARAM
>> NAME='HttpServlet'
>> VALUE='http://test.Domain.com/servlet/*HttpTunnelingServletdc*'>
>> The configuration for that system above _*can be found below*_ *=>
>> Configuration for tomcat 3.3
> That looks like you are using the strongly discouraged dispatcher
> servlet. That is still available, but disabled by default. And you
> should leave it that way.
> ...
>> Thanks a lot and best regards
>>
>> Volker
>> *
>> ============================================================================
>> NOT WORKING
>> Configuration for Tomcat 4.1.36 (FreeBSD 8.2, Apache 2.2.17,
>> mod_jk-ap2-1.2.31, Diablo JDK 1.6)
>> **============================================================================
>>
>> The servlet classes result in:
>> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*
>> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*/*com/....*
>> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes/digi/...
> I read that as: There are some files and directories under
> WEB-INF/classes in your ROOT webapp and that /usr/local/apache-tomcat4.1
> is your CATALINA_BASE and probably CATALINA_HOME too.
>> ...
>> *
>> httpd.conf
>> *JkWorkersFile "/usr/local/etc/apache22/workers.properties"
>> JkLogFile "/usr/local/apache-tomcat4.1/logs/mod_jk.log"
>> JkShmFile /var/log/jk-runtime-status
>> JkLogLevel info
> Looks OK.
>> *
>> workers.properties
>> *workers.java_home=/usr/local/diablo-jdk1.6.0
>> workers.tomcat_home=/usr/local/apache-tomcat4.1
> Remove both deprecated config options java_home and tomcat_home. They
> are not needed anymore.
>> worker.list=jsp-hostname
>> worker.jsp-hostname.port=8009
>> worker.jsp-hostname.host=127.0.0.1
>> worker.jsp-hostname.type=ajp13
>> worker.jsp-hostname.lbfactor=1*
>>
>> **server.xml*
> Copy the server.xml from a fresh tomcat download and replace your
> port-numbers in there.
>
>> <Service name="Tomcat-Standalone">
> ...
>
>> <!-- Tomcat Root Context -->
>>
>> <Context path="/ROOT" docBase="ROOT" debug="0" reloadable="true"
>> crossContext="true">
>> <Logger className="org.apache.catalina.logger.FileLogger"
>> prefix="ROOT-http-tunneling_log." suffix=".txt" timestamp="true"/>
>> </Context>
>>
>> <!-- Tomcat Examples Context -->
>> <Context path="/examples" docBase="examples" debug="1" reloadable="true"
>> crossContext="true">
>> <Logger className="org.apache.catalina.logger.FileLogger"
>> prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>
>> <Ejb   name="ejb/EmplRecord" type="Entity"
>>                    home="com.wombat.empl.EmployeeRecordHome"
>>                  remote="com.wombat.empl.EmployeeRecord"/>
> Your context descriptions for ROOT and example would be placed in newly
> created files named ROOT.xml and example.xml under
> $CATALINA_BASE/conf/Catalina/localhost. But I seriously doubt, that you
> need example.xml and ROOT.xml is not needed, if all you want to achieve
> is logging. Look at http://tomcat.apache.org/tomcat-7.0-doc/logging.html
> for more info about simple logging.
>>
>> *web.xml*
>> <?xml version="1.0" encoding="ISO-8859-1"?>
>> <!DOCTYPE web-app
>>       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>>       "http://java.sun.com/dtd/web-app_2_3.dtd">
> You could update your webapp to a newer version by replacing the above
> values, but they should do no harm.
>> <web-app>
>> <servlet>
>> <servlet-name>
>>        HttpTunnelingServletdc
>> </servlet-name>
>> <servlet-class>
>> *com.diginet.digichat.util.tunnel3.HttpTunnelingServlet*
>> </servlet-class>
>> <init-param>
>> <param-name>Host</param-name>
>> <param-value>localhost</param-value>
>> </init-param>
>> <load-on-startup>1</load-on-startup>
>> </servlet>
>> <servlet-mapping>
>> <servlet-name>invoker</servlet-name>
>> <url-pattern>/servlet/*</url-pattern>
>> </servlet-mapping>
>> <servlet-mapping>
>> <servlet-name>HttpTunnelingServletdc</servlet-name>
>> <url-pattern>/HttpTunnelingServletdc</url-pattern>
>> </servlet-mapping>
> Instead of mapping a not configured servlet named invoker to /servlet/*
> you should map your servlet named HttpTunnelingServletdc
> to /servlet/HttpTunnelingServletdc or alternatively change your applet
> configuration from top of your post.
>
> So remove
> <servlet-mapping><servlet-name>invoker</servlet-name>...</servlet-mapping>
> and change url-pattern in the<servlet-mapping>
> from /HttpTunnelingServletdc to /servlet/HttpTunnelingServletdc
>> </web-app>
>>
> ...
>> *description* _The server encountered an internal error () that
>> prevented it from fulfilling this request._
>>
>> *exception*
>>
>> javax.servlet.ServletException
>> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> ...
>> 	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
>> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>> 	at java.lang.Thread.run(Thread.java:619)
>>
>> *root cause*
>>
>> java.lang.NullPointerException
>> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
> Hopefully you have the source code for HttpTunnelingServlet since this
> line means, your servlet gets invoked, but it is not happy to work :)
> That might come from the fact, that you configured the servlet
> HttpTunnelingServletdc, but used the invoker-servlet. Chances are, that
> the proposed configuration chages in web.xml fix this.
>
> HTH
>   Felix
>
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
> ...
>> ------------------------------------------------------------------------
>>
>>
>>        Apache Tomcat/4.1.3
>>
>>
>> ===================================================================================
>> *WORKING
>> Configuration for tomcat 3.3 (FreeBSD 5.4, Apache 1.3.41, Tomcat 3.3.2,
>> mod_jk 1.2.15, Diablo JRE 1.5)
>> **============================================================================*
>> *
>> SERVER.XML
>> * (jakarta-tomcat3.3/conf)
>> <Ajp12Connector port="8007" />
>>
>> *web.xml*
>> (/jakarta-tomcat3.3/webapps/ROOT/WEB-INF)
>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>
>> <!DOCTYPE web-app
>>       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>>       "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
>> <servlet>
>> <servlet-name>
>>        HttpTunnelingServletdc
>> </servlet-name>
>> <servlet-class>
>>        com.diginet.digichat.util.tunnel3.HttpTunnelingServlet
>> </servlet-class>
>> <init-param>
>> <param-name>Host</param-name>
>> <param-value>localhost</param-value>
>> </init-param>
>> <load-on-startup>1</load-on-startup>
>> </servlet>
>> <servlet-mapping>
>> <servlet-name>HttpTunnelingServlet</servlet-name>
>> <url-pattern>/HttpTunnelingServlet</url-pattern>
>> </servlet-mapping>
>> </web-app>
>>
>> *workers.properties*
>> worker.ajp12.type=ajp12
>> worker.ajp12.port=8007
>> worker.ajp12.host=localhost
>> worker.ajp12.lbfactor=1
>>
>> *mod_jk.conf*
>> <IfModule !mod_jk.c>
>>     LoadModule jk_module /usr/local/libexec/apache/mod_jk.so
>> </IfModule>
>> JkWorkersFile "/usr/local/jakarta-tomcat3.3/conf/jk/workers.properties"
>> JkLogFile "/usr/local/jakarta-tomcat3.3/logs/mod_jk.log"
>> JkShmFile /var/log/jk-runtime-status
>> JkLogLevel info
>> JkMount /servlet/* ajp12
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Re: Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Posted by Felix Schumacher <fe...@internetallee.de>.
Hi Volker,

Am Dienstag, den 26.07.2011, 16:29 +0200 schrieb Volker:
> Hello,
> 
> my current system configuration is like following:
> 
> - FreeBSD 8.2
> - apache-2.2.17_2
> - mod_jk-ap2-1.2.31_1 Apache2 JK
> - tomcat 4.1.36_2
As you said elsewhere in this thread, that you are willing to upgrade to
a newer tomcat as well, I will assume, that you will use tomcat 6 or
even tomcat 7.
> - diablo-jdk1.6.0
> 
> In order to provide a http tunneling for a chat server I have been 
> using*tomcat 3.3*, FreeBSD 5.4, Apache 1.3, mod_jk (ajp12 Connector) and 
> diablo-jre1.5.0 in combination with a certain http tunneling servlet 
> *without any problems* for several years.
> That http tunneling servlet is passed via a chat applet via "<PARAM 
> NAME='HttpServlet' 
> VALUE='http://test.Domain.com/servlet/*HttpTunnelingServletdc*'>
> The configuration for that system above _*can be found below*_ *=> 
> Configuration for tomcat 3.3
That looks like you are using the strongly discouraged dispatcher
servlet. That is still available, but disabled by default. And you
should leave it that way.
> 
...
> 
> Thanks a lot and best regards
> 
> Volker
> *
> ============================================================================
> NOT WORKING
> Configuration for Tomcat 4.1.36 (FreeBSD 8.2, Apache 2.2.17, 
> mod_jk-ap2-1.2.31, Diablo JDK 1.6)
> **============================================================================
> 
> The servlet classes result in:
> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*
> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*/*com/....*
> */usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes/digi/...
I read that as: There are some files and directories under
WEB-INF/classes in your ROOT webapp and that /usr/local/apache-tomcat4.1
is your CATALINA_BASE and probably CATALINA_HOME too.
> ...
> *
> httpd.conf
> *JkWorkersFile "/usr/local/etc/apache22/workers.properties"
> JkLogFile "/usr/local/apache-tomcat4.1/logs/mod_jk.log"
> JkShmFile /var/log/jk-runtime-status
> JkLogLevel info
Looks OK.
> *
> workers.properties
> *workers.java_home=/usr/local/diablo-jdk1.6.0
> workers.tomcat_home=/usr/local/apache-tomcat4.1
Remove both deprecated config options java_home and tomcat_home. They
are not needed anymore.
> worker.list=jsp-hostname
> worker.jsp-hostname.port=8009
> worker.jsp-hostname.host=127.0.0.1
> worker.jsp-hostname.type=ajp13
> worker.jsp-hostname.lbfactor=1*
> 
> **server.xml*
Copy the server.xml from a fresh tomcat download and replace your
port-numbers in there.

> <Service name="Tomcat-Standalone">
...

> <!-- Tomcat Root Context -->
> 
> <Context path="/ROOT" docBase="ROOT" debug="0" reloadable="true" 
> crossContext="true">
> <Logger className="org.apache.catalina.logger.FileLogger" 
> prefix="ROOT-http-tunneling_log." suffix=".txt" timestamp="true"/>
> </Context>
> 
> <!-- Tomcat Examples Context -->
> <Context path="/examples" docBase="examples" debug="1" reloadable="true" 
> crossContext="true">
> <Logger className="org.apache.catalina.logger.FileLogger" 
> prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>
> <Ejb   name="ejb/EmplRecord" type="Entity"
>                   home="com.wombat.empl.EmployeeRecordHome"
>                 remote="com.wombat.empl.EmployeeRecord"/>
Your context descriptions for ROOT and example would be placed in newly
created files named ROOT.xml and example.xml under
$CATALINA_BASE/conf/Catalina/localhost. But I seriously doubt, that you
need example.xml and ROOT.xml is not needed, if all you want to achieve
is logging. Look at http://tomcat.apache.org/tomcat-7.0-doc/logging.html
for more info about simple logging.
> 
> 
> *web.xml*
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <!DOCTYPE web-app
>      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>      "http://java.sun.com/dtd/web-app_2_3.dtd">
You could update your webapp to a newer version by replacing the above
values, but they should do no harm.
> <web-app>
> <servlet>
> <servlet-name>
>       HttpTunnelingServletdc
> </servlet-name>
> <servlet-class>
> *com.diginet.digichat.util.tunnel3.HttpTunnelingServlet*
> </servlet-class>
> <init-param>
> <param-name>Host</param-name>
> <param-value>localhost</param-value>
> </init-param>
> <load-on-startup>1</load-on-startup>
> </servlet>
> <servlet-mapping>
> <servlet-name>invoker</servlet-name>
> <url-pattern>/servlet/*</url-pattern>
> </servlet-mapping>
> <servlet-mapping>
> <servlet-name>HttpTunnelingServletdc</servlet-name>
> <url-pattern>/HttpTunnelingServletdc</url-pattern>
> </servlet-mapping>
Instead of mapping a not configured servlet named invoker to /servlet/*
you should map your servlet named HttpTunnelingServletdc
to /servlet/HttpTunnelingServletdc or alternatively change your applet
configuration from top of your post.

So remove
<servlet-mapping><servlet-name>invoker</servlet-name>...</servlet-mapping>
and change url-pattern in the <servlet-mapping>
from /HttpTunnelingServletdc to /servlet/HttpTunnelingServletdc
> </web-app>
> 
...
> *description* _The server encountered an internal error () that 
> prevented it from fulfilling this request._
> 
> *exception*
> 
> javax.servlet.ServletException
> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
...
> 	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
> 	at java.lang.Thread.run(Thread.java:619)
> 
> *root cause*
> 
> java.lang.NullPointerException
> 	at com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
Hopefully you have the source code for HttpTunnelingServlet since this
line means, your servlet gets invoked, but it is not happy to work :)
That might come from the fact, that you configured the servlet
HttpTunnelingServletdc, but used the invoker-servlet. Chances are, that
the proposed configuration chages in web.xml fix this.

HTH
 Felix

> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
...
> ------------------------------------------------------------------------
> 
> 
>       Apache Tomcat/4.1.3
> 
> 
> ===================================================================================
> *WORKING
> Configuration for tomcat 3.3 (FreeBSD 5.4, Apache 1.3.41, Tomcat 3.3.2, 
> mod_jk 1.2.15, Diablo JRE 1.5)
> **============================================================================*
> *
> SERVER.XML
> * (jakarta-tomcat3.3/conf)
> <Ajp12Connector port="8007" />
> 
> *web.xml*
> (/jakarta-tomcat3.3/webapps/ROOT/WEB-INF)
> <?xml version="1.0" encoding="ISO-8859-1"?>
> 
> <!DOCTYPE web-app
>      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>      "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
> <servlet>
> <servlet-name>
>       HttpTunnelingServletdc
> </servlet-name>
> <servlet-class>
>       com.diginet.digichat.util.tunnel3.HttpTunnelingServlet
> </servlet-class>
> <init-param>
> <param-name>Host</param-name>
> <param-value>localhost</param-value>
> </init-param>
> <load-on-startup>1</load-on-startup>
> </servlet>
> <servlet-mapping>
> <servlet-name>HttpTunnelingServlet</servlet-name>
> <url-pattern>/HttpTunnelingServlet</url-pattern>
> </servlet-mapping>
> </web-app>
> 
> *workers.properties*
> worker.ajp12.type=ajp12
> worker.ajp12.port=8007
> worker.ajp12.host=localhost
> worker.ajp12.lbfactor=1
> 
> *mod_jk.conf*
> <IfModule !mod_jk.c>
>    LoadModule jk_module /usr/local/libexec/apache/mod_jk.so
> </IfModule>
> JkWorkersFile "/usr/local/jakarta-tomcat3.3/conf/jk/workers.properties"
> JkLogFile "/usr/local/jakarta-tomcat3.3/logs/mod_jk.log"
> JkShmFile /var/log/jk-runtime-status
> JkLogLevel info
> JkMount /servlet/* ajp12
> 
> 



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


Re: Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Posted by Konstantin Kolinko <kn...@gmail.com>.
2011/7/26 Volker <to...@webchannel.de>:
> - tomcat 4.1.36_2

One reason to abandon 4.1 is that there are known security issues that
has been fixed in 5.5 and later but have never been evaluated against
4.1



Best regards,
Konstantin Kolinko

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


Re: Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Posted by Volker <to...@webchannel.de>.
Am 26.07.2011 16:43, schrieb David kerber:
> On 7/26/2011 10:29 AM, Volker wrote:
>> Hello,
>>
>> my current system configuration is like following:
>>
>> - FreeBSD 8.2
>> - apache-2.2.17_2
>> - mod_jk-ap2-1.2.31_1 Apache2 JK
>> - tomcat 4.1.36_2
>> - diablo-jdk1.6.0
>
> Since you have to upgrade any way, why not upgrade to a current 
> version of TC, such as 6.0.x, or 7.x?  You're not likely to find many 
> people here who remember (or even ever used) tc 4.x.
>
> D
>
Hi,

I chose tomcat 4.1 because I thought that the differences in 
configuration of tomcat 4.1 compared with 3.3 are less than compared 
with 7.x.

If you could have a look on my working config of 3.3 and tell me how to 
transfer them in a config for 7.x I even would install 7.x ;-)
I really "only" use it for that littel http tunneling script!

Best regards
Volker
> ---------------------------------------------------------------------
> 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: Problems after updating from Tomcat 3.3 to 4.1: http tunneling servlet not working anymore

Posted by David kerber <dc...@verizon.net>.
On 7/26/2011 10:29 AM, Volker wrote:
> Hello,
>
> my current system configuration is like following:
>
> - FreeBSD 8.2
> - apache-2.2.17_2
> - mod_jk-ap2-1.2.31_1 Apache2 JK
> - tomcat 4.1.36_2
> - diablo-jdk1.6.0

Since you have to upgrade any way, why not upgrade to a current version 
of TC, such as 6.0.x, or 7.x?  You're not likely to find many people 
here who remember (or even ever used) tc 4.x.

D

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