Hi,
I need your help running this Axis code.
This is my java code :
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.utils.Options;
public class CurrencyClientAxis
{
public static void main(String [] args) throws Exception
{
Options options = new Options(args);
String endpoint = "http://services.methodes.com:80/soap";
args = options.getRemainingArgs();
if (args == null || args.length != 2) {
System.err.println("Usage: CurrencyClientAxis ctry1 ctry2");
return;
}
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName( "getRate" );
call.addParameter( "country1", XMLType.XSD_STRING, Call.PARAM_MODE_IN );
call.addParameter( "country2", XMLType.XSD_STRING, Call.PARAM_MODE_IN );
Float ret = (Float) call.invoke( new Object [] { args[0], args[1] });
System.out.println("Got result : " + ret);
}
}
When I run it by invoking the java command ("java CurrencyClientAxis france
uk"),
I have the following errors :
Exception in thread "main" org.xml.sax.SAXException: Bad envelope namespace:
at org.apache.axis.AxisFault.makeFault(AxisFault.java:106)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:383)
at org.apache.axis.client.Call.invoke(Call.java:1268)
at org.apache.axis.client.Call.invoke(Call.java:1113)
at org.apache.axis.client.Call.invoke(Call.java:1043)
at org.apache.axis.client.Call.invoke(Call.java:1069)
at org.apache.axis.client.Call.invoke(Call.java:674)
at CurrencyClientAxis.main(CurrencyClientAxis.java:85)
Caused by: org.xml.sax.SAXException: Bad envelope namespace:
at
org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:108)
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationCont
ext.java:643)
at
org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:
445)
at
org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNamespaceBinder.
java:832)
at
org.apache.xerces.impl.XMLNamespaceBinder.startElement(XMLNamespaceBinder.java:5
68)
at
org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:808
)
... 6 more
Here are my set-up :
1. I run that code from my PC, no server, no firewall.
2. the echo %JAVA_HOME% gives C:\j2sdk1.4.0
3. the echo %CLASSPATH% gives "."
4. I put axis.jar, clutil.jar, log4j.jar, wsdl4j.jar ( all jars from Axis ) into
my %JAVA_HOME%\jre\lib\ext
5. I put xercesImpl.jar and xmlParserAPIs.jar into my %JAVA_HOME%\jre\lib\ext
Any ideas ?
Thanks,
nusa