I am getting a (500) Internal Server Error when I try accessing my Web
Service with a client.
My question is: is there a simple way to debug this problem and find out
what the 500 code means? I am in a tight schedule (!) and would rather not
wade through all of axis looking for the cause... So if you've been here
before, please share it :-)
The client is using the generated skeleton code from WSDL2Java and
Java2WSDL. The client is pretty simple:
public class MathClient
{
public static void main(String [] args)
{
try {
MathServiceServiceLocator msl = new MathServiceServiceLocator();
MathService ms = msl.getMathService();
if (ms != null){
double d = ms.add(1,1);
System.out.println("Double returned:" + String.valueOf(d));
}
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
The service is also simple:
public class MathService
{
public double add(double d1, double d2)
{
return d1+d2;
}
}
The generated WSDL is:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://localhost:8080/axis/services/MathService"
xmlns:impl="http://localhost:8080/axis/services/MathService"
xmlns:intf="http://localhost:8080/axis/services/MathService"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<wsdl:message name="addResponse">
<wsdl:part name="addReturn" type="xsd:double"/>
</wsdl:message>
<wsdl:message name="addRequest">
<wsdl:part name="in0" type="xsd:double"/>
<wsdl:part name="in1" type="xsd:double"/>
</wsdl:message>
<wsdl:portType name="MathService">
<wsdl:operation name="add" parameterOrder="in0 in1">
<wsdl:input name="addRequest" message="impl:addRequest"/>
<wsdl:output name="addResponse" message="impl:addResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="MathServiceSoapBinding" type="impl:MathService">
<wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="add">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="addRequest">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost:8080/axis/services/MathService"/>
</wsdl:input>
<wsdl:output name="addResponse">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost:8080/axis/services/MathService"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MathServiceService">
<wsdl:port name="MathService" binding="impl:MathServiceSoapBinding">
<wsdlsoap:address
location="http://localhost:8080/axis/services/MathService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
and the deploy file is:
!-- Use this file to deploy some handlers/chains and services -->
<!-- Two ways to do this: -->
<!-- java org.apache.axis.client.AdminClient deploy.wsdd -->
<!-- after the axis server is running -->
<!-- or -->
<!-- java org.apache.axis.utils.Admin client|server deploy.wsdd -->
<!-- from the same directory that the Axis engine runs -->
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!-- Services from MathServiceService WSDL service -->
<service name="MathService" provider="java:RPC" style="rpc" use="encoded">
<parameter name="wsdlTargetNamespace"
value="http://localhost:8080/axis/services/MathService"/>
<parameter name="wsdlServiceElement" value="MathServiceService"/>
<parameter name="wsdlServicePort" value="MathService"/>
<parameter name="className"
value="com.ai.services.MathServiceSoapBindingSkeleton"/>
<parameter name="wsdlPortType" value="MathService"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="Session"/>
</service>
</deployment>
Any help would be GREATLY appreciated...
Thanks,
Alex