hi folks,

I'm using apache axis with attachments (DataHandler).

Everything works fine using 1.1 both on client and server.


Now I migrated to 1.2.1.

When I run now the client using 1.2.1 and the server with 1.2.1 --> everything 
fine.

When I run the "old" client using 1.1 and the server with 1.2.1 I get in the 
client:

        org.xml.sax.SAXException: Deserializing parameter 
'getCmDbContentModsReturn':  could not find deserializer for type DataHandler


I've got many clients out there using 1.1 and I don't wont to / I can't (!!!) 
migrate all of them.

Whats the problem here ?

best regards,
peter




wsdd:
<!-- 
    Version: 10.11.2003 pk: first release
        Version: 03.11.2003 pk: created
--> 
<deployment xmlns="http://xml.apache.org/axis/wsdd/";
        xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
  <service name="soap/UpDownloadService/v1" provider="java:RPC">
    <parameter name="className" 
value="ivyteam.webapp.admin.webservice.updownload.v1.UpDownloadService"/>
    <parameter name="allowedMethods" value="*"/>
    <typeMapping 
deserializer="org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory"
      languageSpecificType="java:javax.activation.DataHandler" 
qname="DataHandler"
      serializer="org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory" 
      encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>  
    <parameter name="scope" value="session"/>
    <beanMapping qname="ns2:FileInfo" xmlns:ns2="http://util.webapp.cs.ivyteam";
      languageSpecificType="java:ivyteam.cs.webapp.util.FileInfo"/>    
    <beanMapping qname="ns2:StartConfig" 
xmlns:ns2="http://util.webapp.cs.ivyteam";
      languageSpecificType="java:ivyteam.cs.webapp.util.StartConfig"/>          
    <beanMapping qname="ns2:WebServiceBeanConfig" 
xmlns:ns2="http://util.webapp.cs.ivyteam";
      languageSpecificType="java:ivyteam.cs.webapp.util.WebServiceBeanConfig"/> 
               
    <beanMapping qname="ns2:EventBeanConfig" 
xmlns:ns2="http://util.webapp.cs.ivyteam";
      languageSpecificType="java:ivyteam.cs.webapp.util.EventBeanConfig"/>  
    <beanMapping qname="ns2:PageConfig" 
xmlns:ns2="http://util.webapp.cs.ivyteam";
      languageSpecificType="java:ivyteam.cs.webapp.util.PageConfig"/>  
    <!-- Run this before processing the request -->
    <requestFlow> 
      <handler 
type="java:ivyteam.webapp.admin.webservice.base.v1.LogRequestHandler">
      </handler> 
    </requestFlow> 
        <!-- Run these after processing the request -->       
    <responseFlow> 
      <handler 
type="java:ivyteam.webapp.admin.webservice.base.v1.LogResponseHandler">
      </handler> 
    </responseFlow>        
  </service>     
</deployment>

server code:

  public DataHandler getCmDbContentMods(int processModelId, int versionNumber)
    throws Throwable
  {
    try
    {
      if (!this.isLoggedIn())
      {
        throw new AuthorizationException(AuthorizationException.UNKNOWN_USER);
      }

      String str =
        this.internalUploadInterface.getCmDbContentMods(
          processModelId,
          versionNumber);

      //the mime type here is the default mime type: "application/octet-stream"
      DataSource ds =
        new ByteArrayDataSource(str.getBytes(), DATASOURCE_ENCODING);
      return new DataHandler(ds);
    }
    catch (Throwable t)
    {
      logger.severe(
        "UpDownloadService",
        "getCmDbContentMods",
        t.getMessage(),
        t);
      throw t;
    }
  }

Reply via email to