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 Praveen Peddi <pp...@contextmedia.com> on 2005/01/04 20:57:08 UTC
Re: Attachements and .Net: The datatype 'DataHandler' is missing
I was also having the same exact problem (except that my input argument to
one of the methods is DataHandler).
I searched the previous mails on this topic and no one seems to have
suggested a good answer. Atleast I could find out that using DataHandler is
not a good solutions if you want to support non-java application. But whats
the best solution for this?
Praveen
----- Original Message -----
From: "Qwzrl" <qw...@tiscali.nl>
To: <ax...@ws.apache.org>
Sent: Wednesday, December 22, 2004 2:24 PM
Subject: Attachements and .Net: The datatype 'DataHandler' is missing
> I'm trying to make a testapp -using my own deployment, without the
> axis.war- using attachements. I can't get it to work, Googled near and
> far, surfed high and low looking for an answer. Hopefully I'll be able to
> get it here. And yes, happyaxis.jsp claims attachement support should be
> there (all the required jars are found).
>
> When I use the Microsoft.NET wsdl.exe tool to create C# stubs I get the
> following error:
>
> Microsoft (R) Web Services Description Language Utility
> [Microsoft (R) .NET Framework, Version 1.1.4322.573]
> Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
>
> Error: Unable to import binding 'DeziroSoapBinding' from namespace
> 'http://localhost/api/Deziro'.
> - Unable to import operation 'doAttachement'.
> - The datatype 'DataHandler' is missing.
>
> If you would like more help, please type "wsdl /?".
>
> Using the wsdl tool from Apache I get a nice stub for my service:
> package com.cuhka.soap.service;
>
> public interface Deziro extends java.rmi.Remote {
> public javax.activation.DataHandler doAttachement() throws
> java.rmi.RemoteException;
> public com.cuhka.soap.model.SomeType doFoo(java.lang.String foo,
> java.lang.String bar) throws java.rmi.RemoteException;
> }
>
> Note that I've mapped 'SomeData' to 'SomeType', but it works fine.
>
> The "service" I have created looks as follows:
> package net.lerutte.deziro.soap;
>
> public class Deziro {
>
>
> public DataHandler doAttachement() {
> return null;
> }
>
> public SomeData doFoo(String foo,String bar) {
> return new SomeData();
> }
> }
>
> My /WEB-INF/server-config.wsdd is as follows:
> <?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"
> xmlns:deziro="urn:Deziro">
> <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="Deziro" provider="java:RPC">
> <parameter name="className" value="net.lerutte.deziro.soap.Deziro"/>
> <parameter name="allowedMethods" value="*"/>
> </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:method"
> value="org.apache.axis.transport.http.QSMethodHandler"/>
> </transport>
>
> <transport name="local">
> <responseFlow>
> <handler type="LocalResponder"/>
> </responseFlow>
> </transport>
>
> <beanMapping languageSpecificType="java:net.lerutte.deziro.soap.SomeData"
> qname="cuhka:SomeType" xmlns:cuhka="http://www.cuhka.com/soap"/>
>
> <typeMapping
> deserializer="org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory"
> languageSpecificType="java:javax.activation.DataHandler"
> qname="deziro:DataHandler"
> serializer="org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> />
> </deployment>
>
> The wsdl, generated by Axis is as follows
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://localhost/api/Deziro"
> xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:impl="http://localhost/api/Deziro"
> xmlns:intf="http://localhost/api/Deziro"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:tns1="http://www.cuhka.com/soap"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <!--WSDL created by Apache Axis version: 1.2RC2
> Built on Nov 16, 2004 (12:19:44 EST)-->
> <wsdl:types>
> <schema targetNamespace="http://www.cuhka.com/soap"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <import namespace="http://xml.apache.org/xml-soap"/>
> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
> <complexType name="SomeType">
> <sequence>
> <element name="bar" nillable="true" type="soapenc:string"/>
> <element name="foo" nillable="true" type="soapenc:string"/>
> <element name="fubar" nillable="true" type="soapenc:string"/>
> <element name="timestamp" nillable="true" type="xsd:dateTime"/>
> </sequence>
> </complexType>
> </schema>
> </wsdl:types>
>
> <wsdl:message name="doFooRequest">
>
> <wsdl:part name="foo" type="soapenc:string"/>
>
> <wsdl:part name="bar" type="soapenc:string"/>
>
> </wsdl:message>
>
> <wsdl:message name="doAttachementRequest">
>
> </wsdl:message>
>
> <wsdl:message name="doAttachementResponse">
>
> <wsdl:part name="doAttachementReturn"
> type="apachesoap:DataHandler"/>
>
> </wsdl:message>
>
> <wsdl:message name="doFooResponse">
>
> <wsdl:part name="doFooReturn" type="tns1:SomeType"/>
>
> </wsdl:message>
>
> <wsdl:portType name="Deziro">
>
> <wsdl:operation name="doAttachement">
>
> <wsdl:input message="impl:doAttachementRequest"
> name="doAttachementRequest"/>
>
> <wsdl:output message="impl:doAttachementResponse"
> name="doAttachementResponse"/>
>
> </wsdl:operation>
>
> <wsdl:operation name="doFoo" parameterOrder="foo bar">
>
> <wsdl:input message="impl:doFooRequest" name="doFooRequest"/>
>
> <wsdl:output message="impl:doFooResponse" name="doFooResponse"/>
>
> </wsdl:operation>
>
> </wsdl:portType>
>
> <wsdl:binding name="DeziroSoapBinding" type="impl:Deziro">
>
> <wsdlsoap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>
> <wsdl:operation name="doAttachement">
>
> <wsdlsoap:operation soapAction=""/>
>
> <wsdl:input name="doAttachementRequest">
>
> <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="http://soap.deziro.lerutte.net" use="encoded"/>
>
> </wsdl:input>
>
> <wsdl:output name="doAttachementResponse">
>
> <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="http://localhost/api/Deziro" use="encoded"/>
>
> </wsdl:output>
>
> </wsdl:operation>
>
> <wsdl:operation name="doFoo">
>
> <wsdlsoap:operation soapAction=""/>
>
> <wsdl:input name="doFooRequest">
>
> <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="http://soap.deziro.lerutte.net" use="encoded"/>
>
> </wsdl:input>
>
> <wsdl:output name="doFooResponse">
>
> <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="http://localhost/api/Deziro" use="encoded"/>
>
> </wsdl:output>
>
> </wsdl:operation>
>
> </wsdl:binding>
>
> <wsdl:service name="DeziroService">
>
> <wsdl:port binding="impl:DeziroSoapBinding" name="Deziro">
>
> <wsdlsoap:address location="http://localhost/api/Deziro"/>
>
> </wsdl:port>
>
> </wsdl:service>
>
> </wsdl:definitions>