All,
 
I'm trying to write a web service which requires my own data types.  I
have read and followed all instructions but with no luck. No matter
what I do I always get this exception on the server.
 
Axis-1.3, jdk-1.5, RedHat Linux.
java.io.IOException:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.io.IOException: No serializer found for class com.alterpoint.MyBean in registry [EMAIL PROTECTED]
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.io.IOException: No serializer found for class com.alterpoint.MyBean in registry [EMAIL PROTECTED].
 
I'm obviously missing something. Code appended. All help gratefully
accepted.
--
Ravi/
-----------HelloWorld.jws--------------------
import com.alterpoint.MyBean;
 
/**
* Written to play with typeMapping.
*/
public class HelloWorld
{
  public HelloWorld()
  {
    super();
  }
 
  // No problem calling this.
  public String hello(String name)
  {
    return "Hello " + name + "!";
  }
 
  // or this
  public String[] array(String name)
  {
    return new String[]{"hello " + name, "bye " + name};
  }
 
  // No luck with this.
  public MyBean[] beanArr(String name)
  {
    MyBean mb1 = new MyBean("hello again " + name);
    MyBean mb2 = new MyBean("good bye again " + name);
    return new MyBean[]{mb1, mb2};
  }
 
  // No luck with this either.
  public MyBean bean(String name)
  {
    return new MyBean("Just one " + name);
  }
}
---------MyBean.java-----------------
package com.alterpoint;
 
/**
 * Try to get this bean to serialize and deserialize via SOAP.
 */
  public class MyBean
  {
    public String str;
 
  public MyBean()
  {
  }
 
  public MyBean(String str)
  {
    this.str = str;
  }
 
  public void setStr(String str)
  {
    this.str = str;
  }
 
  public String getStr()
  {
    return str;
  }
}
----------server-config.wsdd-------------------
<?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">
 
  <globalConfiguration>
    <parameter name="sendMultiRefs" value="true"/>
    <parameter name="disablePrettyXML" value="true"/>
    <parameter name="adminPassword" value="admin"/>
    <parameter name="attachments.Directory" value="/home/rrao/DAcomal/dist/jboss/jboss-4.0.1/server/alterpoint/deploy/SOAP.war/WEB-INF/attachments"/>
    <parameter name="dotNetSoapEncFix" value="true"/>
    <parameter name="enableNamespacePrefixOptimization" value="false"/>
    <parameter name="sendXMLDeclaration" value="true"/>
    <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
    <parameter name="sendXsiTypes" value="true"/>
    <requestFlow>
      <handler type="java:org.apache.axis.handlers.JWSHandler">
        <parameter name="scope" value="session"/>
      </handler>
      <handler type="java:org.apache.axis.handlers.JWSHandler">
        <parameter name="scope" value="request"/>
        <parameter name="extension" value=".jwr"/>
      </handler>
    </requestFlow>
  </globalConfiguration>
 
  <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
  <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
  <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 
  <service name="AdminService" provider="java:MSG">
    <parameter name="allowedMethods" value="AdminService"/>
    <parameter name="enableRemoteAdmin" value="false"/>
    <parameter name="className" value="org.apache.axis.utils.Admin"/>
    <namespace>http://xml.apache.org/axis/wsdd/</namespace>
  </service>
 
  <service name="Version" provider="java:RPC">
    <parameter name="allowedMethods" value="getVersion"/>
    <parameter name="className" value="org.apache.axis.Version"/>
  </service>
 
  <service name="HelloWorld" provider="java:RPC">
    <parameter name="allowedMethods" value="*"/>
    <parameter name="className" value="HelloWorld"/>
  </service>
 
  <transport name="http">
    <requestFlow>
      <handler type="URLMapper"/>
      <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
    </requestFlow>
    <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
    <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
    <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
    <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
    <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
    <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
    </transport>
    <transport name="local">
    <responseFlow>
      <handler type="LocalResponder"/>
    </responseFlow>
  </transport>
 
  <typeMapping deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding"
               qname="ns1:ArrayOfMyBean"
               serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
               type="java:com.alterpoint.MyBean[]"
               xmlns:ns1="http://soapinterop.org/xsd"/>
  <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding"
               qname="ns2:MyBean"
               serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
               type="java:com.alterpoint.MyBean"
               xmlns:ns2="http://soapinterop.org/xsd"/>
</deployment>

Reply via email to