0

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!

0 Answers0