I am getting to grips with using Axis (+JBoss) to expose a Stateless
Session Bean as a webservice.  I started off with just one method - this
was fine while it was returning a String, but as soon as I changed it to a
JavaBean, it stopped working.  The service shows up at
http://localhost:8080/axis/servlet/AxisServlet, but it has no methods
listed.  My wsdd and class I am attempting to (de)serialize are listed
below. Is there something REALLY obvious wrong?  If not, how can I work
out what has gone wrong?

Chris

----

<?xml version="1.0" encoding="UTF-8"?>
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"; 
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
  <service name="WebBean" scope="Request" provider="java:EJB">
    <parameter name="allowedMethods" value="getInvoiceDetails "/>
    <parameter name="beanJndiName" value="local/WebBean"/>
    <parameter
name="homeInterfaceName" value="mypackage.WebBeanLocalHome"/>
    <parameter name="remoteInterfaceName" value="mypackage.WebBeanLocal"/>
    <parameter name="jndiURL" value="jnp://localhost:1099"/>
    <parameter
name="jndiContextClass" value="org.jnp.interfaces.NamingContextFactory"/>
    <beanMapping
qname="ns:InvoiceDetails" xmlns:ns="urn:OnlineInvoices" 
languageSpecificType="java:mypackage.InvoiceDetails"/>
  </service>
</deployment>

----

package mypackage;

public class InvoiceDetails {

    private String contact;
    private String address;
    private double outstanding;

    public InvoiceDetails(){}

    public String getContact() {return contact;}

    public void setContact(String contact) {this.contact = contact;}

    public String getAddress() {return address;}

    public void setAddress(String address) {this.address = address;}

    public double getOutstanding() {return outstanding;}

    public void setOutstanding(double outstanding) {this.outstanding = outstanding;}
}

----

Reply via email to