I discovered that Tomcat 8 no longer can do
servletContext.getRealPath("DeployedServices.ds") and find the file in
my webapp's root location as it did before. It seems to only find it in
catalina's base, so since we only have one webapp that uses this old
SOAP library, it seems to work if we put that file in $CATALINA_HOME
instead of $CATALINA_HOME/webapps/ROOT. It may not be fixable since
it's likely something that has changed in the servlet spec (going from
3.0 in Tomcat 7 to 3.1 in Tomcat 8). I don't know if there's a way to
get it to try using a root path that may work correctly if passed
servletContext.getRealPath("/DeployedServices.ds")
On 4/20/15 4:49 PM, David Wall wrote:
We have an old Java webapp from 2006 that uses the original Apache
SOAP 2.3.1. It runs fine, albeit with old components.
In our process to upgrade some components, we've managed to run the
new Java code under Java 8 without any issues, as well as upgraded the
database and Linux OS. We even managed to upgrade from Tomcat 5.5 to
Tomcat 7 without any issues.
But when we upgrade from Tomcat 7 to Tomcat 8, we get this error when
a SOAP call is first sent over:
*SOAP Service Manager: Unable to read 'DeployedServices.ds': assuming
fresh start*
If we run it under Tomcat 7, it works fine. So something has changed
for Tomcat 8's classloaders or the like that is precluding it from
finding the DeployedServices.ds file located in the root of my webapp
(like webapps/ROOT/DeployedServices.ds). I tried putting it into
WEB-INF and WEB-INF/classes and META-INF, but it's never found.
Unfortunately, it's not clear where Tomcat 8 is even checking for the
file.
As we have clients still using the old SOAP interface, is there a way
to get SOAP 2.3.1 to find the DeployedServices.ds file under Tomcat 8?
Thanks,
David