Hi All,
There is simple POJO web service whose method takes a java object
whose class extends another class. Here are the below details. When I
try to invoke a web service java client program that uses AXIS 1.2 RC2
stubs I am getting an exception.
------------------------------------------------------------------------------------
public class Animal implements java.io.Serializable
{
public boolean laysEggs = true;
public void setLaysEggs(boolean laysEggs)
{
this.laysEggs = laysEggs;
}
public boolean getLaysEggs()
{
return this.laysEggs;
}
}
public class Dog implements java.io.Serializable
{
public boolean has4Legs = true;
public void setHas4Legs(boolean has4Legs)
{
this.has4Legs = has4Legs;
}
public boolean getHas4Legs()
{
return this.has4Legs;
}
}
public class UseAnimalDog
{
public boolean isDog(Dog dog)
{
dog.setHas4Legs(false);
return dog.getLaysEggs();
}
}
server-config.wsdd
------------------
<service name="AnimalDog" style="document" use="literal">
<parameter name="allowedMethods" value="isDog"/>
<parameter name="className" value="UseAnimalDog"/>
<beanMapping languageSpecificType="java:Animal" qname="ns1:Animal"
xmlns:ns1="AnimalNS"/>
<beanMapping languageSpecificType="java:Dog" qname="ns2:Dog"
xmlns:ns2="DogNS"/>
</service>
public class AnimalDogClient2
{
public static void main(String [] args)
{
try
{
AnimalDogSoapBindingStub stub =
(AnimalDogSoapBindingStub)new
UseAnimalDogServiceLocator().getAnimalDog();
boolean result = stub.isDog(new Dog());
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
exception from server on client side
-------------------------------------
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.reflect.InvocationTargetException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}hostname:hyddl0337
java.lang.reflect.InvocationTargetException
at
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
at
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1077)
at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
at org.apache.crimson.parser.Parser2.content(Unknown Source)
at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
at org.apache.crimson.parser.Parser2.content(Unknown Source)
at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
at org.apache.crimson.parser.Parser2.parseInternal(Unknown Source)
at org.apache.crimson.parser.Parser2.parse(Unknown Source)
at org.apache.crimson.parser.XMLReaderImpl.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:225)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:173)
at org.apache.axis.client.Call.invokeEngine(Call.java:2737)
at org.apache.axis.client.Call.invoke(Call.java:2720)
at org.apache.axis.client.Call.invoke(Call.java:2396)
at org.apache.axis.client.Call.invoke(Call.java:2319)
at org.apache.axis.client.Call.invoke(Call.java:1776)
at
animaldog.AnimalDogSoapBindingStub.isDog(AnimalDogSoapBindingStub.java:144)
at animaldog.AnimalDogClient2.main(AnimalDogClient2.java:23)
------------------------------------------------------------------------------------
Why is this error occurring. Please suggest ?
Thanks & Regards,
Kumar.