I have an app (jar) that starts an embedded jetty server 8.1.18.v20150929. This server, deploys an webapp(war) which executes an axis2 client.
When I run it in Windows, the app works OK. But in Linux does not.
The jar app starts with this command:
java -jar app.jar
and uses jre 7u79.
This is the error in linux when tries to invoke the service :
Duplicate declaration for namespace prefix 'soapenv'
I checked the soap envelope and I found a difference:
WINDOWS:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">...
LINUX:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">...
Why the soapenv is duplicated in linux? The only difference is the jre version (linux/windows).
Another thing, classpath cointains these jars that have some classes with the same name and path:
- axiom-dom-1.2.19.jar
- axiom-impl-1.2.19.jar
for some reason, windows uses axiom-impl-1.2.19.jar for generate the envelope and linux uses axiom-dom-1.2.19.jar. The class used is org.apache.axiom.soap.impl.common.SOAPFactoryImpl and is present in both jars
Thanks!