Issue with protocol error after upgrading to 5.10.0

Post any questions you have about using the Verj.io Studio, including client and server-side programming with Javascript or FPL, and integration with databases, web services etc.

Moderators: Jon, Steve, Ian, Dave

Segi
Ebase User
Posts: 649
Joined: Mon Dec 09, 2013 6:37 pm

Issue with protocol error after upgrading to 5.10.0

#1

Postby Segi » Thu Oct 07, 2021 4:57 pm

I wanted to post this fix in case anyone else runs into a problem after upgrading to 5.10.0

I upgraded our on premise server from 5.9.0 to 5.10.0.

For some reason, the installer did not install the Windows service so I had to manually run the batch file to install the service.

when I started Verj, I caught this error in the logs:

Code: Select all

07-Oct-2021 09:46:26.846 SEVERE [main] org.apache.catalina.connector.Connector.<init> Protocol handler instantiation failed
 java.lang.ClassNotFoundException: org.apache.coyote.http11.Http11Protocol
I was unable to access Verj in the browser with localhost or the FQDN

After searching this error I found that changing the protocol in server.xml:

Code: Select all

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" maxHttpHeaderSize="8192" SSLEnabled="true" maxThreads="150" minSpareThreads="25" 
to

Code: Select all

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" SSLEnabled="true" maxThreads="150" minSpareThreads="25" 
For some reason that I do not fully understand, org.apache.coyote.http11.Http11NioProtocol is the right protocol to use.

I had to do this in addition to adding secretRequired=”false” to the AJP connector
0 x

Steve
Moderator
Moderator
Posts: 414
Joined: Fri Sep 07, 2007 3:44 pm
Location: Sandy, UK
Contact:

Re: Issue with protocol error after upgrading to 5.10.0

#2

Postby Steve » Fri Oct 08, 2021 8:50 am

Hi Segi,

Thanks for the feedback and I will investigate further.... but here are my initial thoughts..

The installer should not be changing anything in the UserData directory and the following location is where the configuration for tomcat:

<Verjio-Install>\UserData\Server\tomcat\conf\server.xml

This should have been left untouched from the V5.9 installation. So I am assuming that the secretRequired="false" attribute should have already been set on the AJP connector for IIS to work properly with windows authentication. The connectors would not have been modified by the installer.

The same applies to the Connector attribute protocol . It looks as though Tomcat do not support the Http11Protocol class. We are now using Apache Tomcat/9.0.37. I am assuming that the protocol attribute was already configured using Http11Protocol from a previous installation.. Our commented out Connector for SSL has the following configured:

Code: Select all

<!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" ...
my guess is that this protocol attribute was or carried over from an earlier installation.. maybe 5.6? I will make a note of this and add to our Post installation instructions to change this attribute.

Just one question...

I may have asked you this before but ...why is the Connector on 443 port open/configured if you are using AJP? IIS communicates Tomcat using the Apache AJP Connector... providing that IIS has been configured to use this handler . Perhaps you are using port 443 by forwarding the request from IIS to Verj.io using a URL rewrite... but this is different to using AJP connector..

I am concerned that the installer did not update the windows service. The installer should have detected the service name and updated it. I am wondering whether your Verj.io server is now using a different UserData path? The service name that the installer is looking for is inside the file <Verj.io-server-name>.server.inst for example VerjioServer.server.inst. This file is in the root of the installation folder. It should contain two settings:

VERJIO_SERVICE_NAME=<servicename>
VERJIO_SERVER_USERDATA=<path-to-user-data>

If these do not match up with the service name, then the installer will not reinstall it.

Kind regards

Steve
0 x

Segi
Ebase User
Posts: 649
Joined: Mon Dec 09, 2013 6:37 pm

Re: Issue with protocol error after upgrading to 5.10.0

#3

Postby Segi » Fri Oct 08, 2021 3:16 pm

Steve,

We are not using IIS. I'm using SSL directly in Tomcat. I do have an AJP connector definition in server.xml that looks like this:

Code: Select all

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" tomcatAuthentication="false" maxSwallowSize="50000000" secretRequired="false"/>
I just added secretRequired="false" after upgrading to 5.10.0

I have not changed anything as far as the user data path. I have used the same convention since userdata was separated from the server in 5.6

Server is installed at C:\VerjIO
UserData is at C:\VerjIOData

I had to delete the old service by running

Code: Select all

sc delete oldservicename
and then re-ran the service installer batch file
0 x

Steve
Moderator
Moderator
Posts: 414
Joined: Fri Sep 07, 2007 3:44 pm
Location: Sandy, UK
Contact:

Re: Issue with protocol error after upgrading to 5.10.0

#4

Postby Steve » Mon Oct 11, 2021 4:20 pm

Hi Segi,

You can comment out the AJP port if you are not using it:

Code: Select all

<!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" tomcatAuthentication="false" maxSwallowSize="50000000" secretRequired="false"/>-->
Having this port open is not doing anything for you. Tomcat now distributes with the AJP Connector disabled (commented out as above)

Kind regards

Steve
0 x


Who is online

Users browsing this forum: No registered users and 7 guests