You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Jose Hernan Valdes Murguia <jm...@gmail.com> on 2006/12/14 20:49:56 UTC
Basic Custom objects
Hi all.
I was beginning using axis and I liked its easy configuration and
development. Whereas I use primitive data types and strings, it works well.
However my next step was return a custom object, but I can make it work
well.
This exception arisen when I try to used my custom service. I'm using a
WSDL2Java tool for generating SOAPBindingStuba and other configurations. I
planned not to use it after see running a simple example, but it does not
work well.
At first, I thought my deploy files was wrong. In spite of I have tried to
changed it following other examples and tutorial the problems is there yet.
Maybe I should not used WSDL2Java tool, but why not?.
Please, if I'm doing something wrong, make me notice that.
Regards,
pepuso
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SAXParseException: Premature end of file.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException:
Premature end of file.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException
(ErrorHandlerWrapper.java:236)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(
ErrorHandlerWrapper.java:215)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(
XMLErrorReporter.java:386)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(
XMLErrorReporter.java:316)
at
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion
(XMLVersionDetector.java:230)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(
XML11Configuration.java:798)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(
XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(
XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(
AbstractSAXParser.java:1242)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
at org.apache.axis.encoding.DeserializationContext.parse(
DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(
MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at localhost.axis.FinderPerson_jws.FinderPersonSoapBindingStub.getPerson
(FinderPersonSoapBindingStub.java:168)
at ClientFinder.main(ClientFinder.java:32)
Client:
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import DefaultNamespace.Person;
import localhost.axis.FinderPerson_jws.FinderPerson;
import localhost.axis.FinderPerson_jws.FinderPersonService;
import localhost.axis.FinderPerson_jws.FinderPersonServiceLocator;
public class ClientFinder {
public static void main( String arg[] ){
try {
System.out.println("Step 0");
FinderPersonService finderService = new
FinderPersonServiceLocator();
System.out.println("Step 1");
FinderPerson finder = finderService.getFinderPerson();
System.out.println("Step 2");
String response = finder.getLastname("PEPUSO");
System.out.println("Step 3 response " + response);
Person person = finder.getPerson("damnlinux","tux"); ///here is
the error
System.out.println(" Person lastname["+person.getLastname()+"]
name["+person.getName()+"] ");
} catch (ServiceException e) {e.printStackTrace();} catch
(RemoteException e) {e.printStackTrace();}
}
}
//Custom been
import java.io.Serializable;
public class Person implements Serializable {
private String name;
private String lastname;
public Person(){ ; }
public String getLastname() { return lastname; }
public void setLastname(String lastname) { this.lastname = lastname; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
///Service
import java.io.Serializable;
public class FinderPerson implements Serializable {
private static final long serialVersionUID = 1L;
public Person getPerson(String lastname, String name){
Person person = new Person();
person.setLastname(lastname);
person.setName(name);
return person;
}
public String getLastname(String name){ return "it does not matter";}
}
<!--- deploy.wsdd--->
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="FinderPerson" provider="java:RPC">
<parameter name="className" value="FinderPerson"/>
<parameter name="allowedMethods" value="getPerson getLastname"/>
<beanMapping qname="ns1:Person" languageSpecificType="java:Person"
xmlns:ns1="urn:FinderPerson"/>
</service>
</deployment>