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>