Fran,

I'm really not an expert on setting up the connection between Apache
and Tomcat but I believe that the connections only operate in two
protocols: http or ajp. NIO is a Tomcat connector that can communicate
in either http or ajp. Because of that, I don't see any reason that
the Apache mod_jk connector module couldn't communicate with the NIO
connector. Since I don't use an NIO connector I could be wrong, but
that is the way I see it. As a starting point, try these
configurations:

server.xml

<Connector protocol="AJP/1.3" port="0" channelNioSocket.port="8009"
channelNioSocket.maxThreads="150"
   channelNioSocket.maxSpareThreads="50"
channelNioSocket.minSpareThreads="25"
   channelNioSocket.bufferSize="16384" />

(You seem to want to use port 8081 which should be fine, but the
standard ajp port is 8009. However, I wouldn't put it on port 8081 if
you are already using that port for another protocol such as http.)

httpd.conf

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /*.svc ajp13

(For the JkMount I use *.svc because I use the svc extension for my
GWT service target to differentiate service points from other files.)

(For example, in my web.xml file I will map my service something like
this to use the svc extension:
<servlet>
   <servlet-name>MyService</servlet-name>
   <servlet-class>com.mysite.server.MyServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>MyService</servlet-name>
   <url-pattern>/MyService.svc</usr-pattern>
</servlet-mapping>

And in my GWT code I create my service target like this:

target.setServiceEntryPoint( GWT.getModuleBaseURL() +
"MyService.svc" );

I did this because I had troubles with the 'JkMount /* ajp13' entry,
but when I used /*.svc the problems cleared up.)

workers.properties

workers.tomcat_home=/usr/tomcat/apache-tomcat-6.0.16
workers.java_home=/usr/java/jdk1.6.0_06
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=ajp13

(Of course, match the ajp port in the workers.property file to the
port you define in the server.xml file. Also, if your Tomcat is not on
the same server as your Apache you will need to change the localhost
host entry to the correct host URL.)

I hope this helps.



On Feb 20, 12:51 pm, Fran <[email protected]> wrote:
> Bad notices.
>
> This dude has same problem that me and he was answered that mod_jk
> dont support NIO
>
> http://www.mail-archive.com/[email protected]/msg67701.html
>
> :(
>
> On 20 feb, 19:13, Fran <[email protected]> wrote:
>
> > Here the error when I change the protocol of
> > protocol="org.apache.coyote.http11.Http11NioProtocol" to protocol="AJP/
> > 1.3"
>
> > [error] jk_ajp_common.c (1962): (worker1) Tomcat is down or refused
> > connection. No response has been sent to the client (yet)
> > [error] jk_ajp_common.c (2466): (worker1) connecting to tomcat failed.
>
> > On 20 feb, 19:04, Fran <[email protected]> wrote:
>
> > > Should be due to protocol.
> > > My messenger seems that need NIO protocol but if I put the NIO
> > > protocol MOD_JK cant conect apache with tomcat
>
> > > If I use this tomcat config, mod_jk cant conect apache with tomcat.
>
> > > <Connector
> > > connectionTimeout="20000"
> > > port="8081"
> > > protocol="org.apache.coyote.http11.Http11NioProtocol"
> > > maxThreads="5"
> > > acceptorThreadCount="2"
> > > redirectPort="8443"
> > > socket.directBuffer="false" />
>
> > > If I use the last tomcat config, tomcat cant execute the servlet.
> > > This is the error log:
>
> > > GRAVE: Error, processing connection
> > > java.lang.IndexOutOfBoundsException
> > >         at java.io.BufferedInputStream.read(Unknown Source)
> > >         at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:620)
> > >         at 
> > > org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:577)
> > >         at
> > > org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
> > > 685)
> > >         at org.apache.jk.common.ChannelSocket
> > > $SocketConnection.runIt(ChannelSocket.java:889)
> > >         at org.apache.tomcat.util.threads.ThreadPool
> > > $ControlRunnable.run(ThreadPool.java:690)
> > >         at java.lang.Thread.run(Unknown Source)
>
> > > On 20 feb, 18:49, Fran <[email protected]> wrote:
>
> > > > I am configuring mod_jk
>
> > > > For tomat, in server.xml :
>
> > > > <Connector
> > > > connectionTimeout="20000"
> > > > port="8081"
> > > > protocol="AJP/1.3"
> > > > maxThreads="5"
> > > > acceptorThreadCount="2"
> > > > redirectPort="8443"
> > > > socket.directBuffer="false" />
>
> > > > For apache, in httpd.conf :
>
> > > > <IfModule mod_jk.c>
> > > >         JkWorkersFile "/etc/httpd/conf/workers.properties"
> > > >         JkLogFile "/etc/httpd/logs/mod_jk.log"
> > > >         JkLogLevel warn
> > > >         JkMount /msn/* worker1
> > > > </IfModule>
>
> > > > The result is that the url:http://localhost/msn/Messenger.htmlworks,
> > > > but this html conects to servelet that not work.
> > > > The mod_jk runs html in apache that fisically are in tomcat, but cant
> > > > run the servlet.
>
> > > > ¿Is necesary some special configure?
>
> > > > Thanks!
>
> > > > On 20 feb, 16:04, Fran <[email protected]> wrote:
>
> > > > > Ok, thanks.
>
> > > > > I will test mod_jk. I tested jk but i couldnt to run it in tomcat 6.
> > > > > Im going to test jk one more time.
>
> > > > > Thanks a lot!
>
> > > > > On 20 feb, 03:46, Chris Lercher <[email protected]> wrote:
>
> > > > > > The timeout is for the max time the app server gets to respond. If 
> > > > > > it
> > > > > > closes the connection earlier (which it should do, once it sends its
> > > > > > response), then the delay is shorter. This is what long polling is 
> > > > > > all
> > > > > > about. So if you set the delay to 15 seconds, it doesn't mean you 
> > > > > > have
> > > > > > to wait for 15 seconds every time. That's only, when the server
> > > > > > doesn't send the response within 15 seconds.
>
> > > > > > But as dablack says, probably mod_jk is the better solution anyway.
> > > > > > However, like I said earlier, there may be additional proxies 
> > > > > > between
> > > > > > your server and the client. So if it doesn't work correctly with
> > > > > > mod_proxy, this could indicate, that there is some problem in the 
> > > > > > way
> > > > > > the app server and the client interact. I have the feeling, that the
> > > > > > server maybe doesn't close its connection, so the proxy won't 
> > > > > > (always)
> > > > > > flush its contents. This triggers a timeout on the proxy or on the
> > > > > > client (depending on which is shorter).
>
> > > > > > On Feb 20, 2:08 am, Fran <[email protected]> wrote:
>
> > > > > > > If I dont put a short timeout, the aplication isnt good.
> > > > > > > Do you imagine that the MSN Messenger delay 15 seconds to show 
> > > > > > > you the
> > > > > > > contact list?
>
> > > > > > > I need that the solution works as the aplication in tomcat. If I
> > > > > > > execute the aplication on tomcat, it work without timeout. So I 
> > > > > > > need
> > > > > > > when the aplication works in apache, seems that is working in 
> > > > > > > tomcat.
>
> > > > > > > Im going to show the url that you tell me. Thanks!
>
> > > > > > > On 20 feb, 01:57, Chris Lercher <[email protected]> wrote:
>
> > > > > > > > BTW, here's a link about timeouts + 
> > > > > > > > Comet:http://code.google.com/p/google-web-toolkit-incubator/wiki/ServerPushFAQ

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to