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 Sueveges Gyoergy <ge...@etixpert.com> on 2006/02/16 16:59:19 UTC

wsdl, attachment

Hi all (again :)

I would like to write such a service method, that can get receive binary  
files (so it can recieve soap attachments). I tested the sample service  
sample/attachments (like Simone and Fabricio  
http://marc.theaimsgroup.com/?l=axis-user&m=113940005201713&w=2), it works  
(also the hand written client), but when trying to create client from the  
wsdl WSDL2java throws an exception that DataHandler is not defined (and it  
is really not deined).
  Is there possibility to create a webmethod, from that the generated wsdl  
contains also the attachment informations? Or Is it always better to use  
the generated wsdl as a template, so always to insert the attachment  
information into it?
I use Axis 1.3

Thnx for the help
  George


thrown exception when calling WSDL2java:

java.io.IOException: Type {urn:EchoAttachmentsService}DataHandler is  
referenced
but not defined.
         at  
org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(Symbol
Table.java:665)
         at  
org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:545
)
         at  
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:518)
         at  
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:495)
         at  
org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
         at java.lang.Thread.run(Unknown Source)



axis-generated WSDL

?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://localhost:8085/axis/services/urn:EchoAttachmentsService"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://localhost:8085/axis/services/urn:EchoAttachmentsService"
xmlns:intf="http://localhost:8085/axis/services/urn:EchoAttachmentsService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns1="urn:EchoAttachmentsService"
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.3
Built on Oct 05, 2005 (05:23:37 EDT)-->
  <wsdl:types>
   <schema
targetNamespace="http://localhost:8085/axis/services/urn:EchoAttachmentsService"
xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="urn:EchoAttachmentsService"/>
    <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
    <complexType name="ArrayOf_tns1_DataHandler">
     <complexContent>
      <restriction base="soapenc:Array">
       <attribute ref="soapenc:arrayType"  
wsdl:arrayType="tns1:DataHandler[]"/>
      </restriction>
     </complexContent>
    </complexType>
   </schema>
  </wsdl:types>

    <wsdl:message name="echoDirRequest">

       <wsdl:part name="attachments" type="impl:ArrayOf_tns1_DataHandler"/>

    </wsdl:message>

    <wsdl:message name="echoDirResponse">

       <wsdl:part name="echoDirReturn"  
type="impl:ArrayOf_tns1_DataHandler"/>

    </wsdl:message>

    <wsdl:message name="echoResponse">

       <wsdl:part name="returnqname" type="tns1:DataHandler"/>

    </wsdl:message>

    <wsdl:message name="echoRequest">

       <wsdl:part name="dh" type="tns1:DataHandler"/>

    </wsdl:message>

    <wsdl:portType name="EchoAttachmentsService">

       <wsdl:operation name="echo" parameterOrder="dh">

          <wsdl:input message="impl:echoRequest" name="echoRequest"/>

          <wsdl:output message="impl:echoResponse" name="echoResponse"/>

       </wsdl:operation>

       <wsdl:operation name="echoDir" parameterOrder="attachments">

          <wsdl:input message="impl:echoDirRequest" name="echoDirRequest"/>

          <wsdl:output message="impl:echoDirResponse"  
name="echoDirResponse"/>

       </wsdl:operation>

    </wsdl:portType>

    <wsdl:binding name="urn:EchoAttachmentsServiceSoapBinding"
type="impl:EchoAttachmentsService">

       <wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>

       <wsdl:operation name="echo">

          <wsdlsoap:operation soapAction=""/>

          <wsdl:input name="echoRequest">

             <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost:8085/axis/services/urn:EchoAttachmentsService"
use="encoded"/>

          </wsdl:input>

          <wsdl:output name="echoResponse">

             <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost:8085/axis/services/urn:EchoAttachmentsService"
use="encoded"/>

          </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="echoDir">

          <wsdlsoap:operation soapAction=""/>

          <wsdl:input name="echoDirRequest">

             <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://attachments.samples" use="encoded"/>

          </wsdl:input>

          <wsdl:output name="echoDirResponse">

             <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost:8085/axis/services/urn:EchoAttachmentsService"
use="encoded"/>

          </wsdl:output>

       </wsdl:operation>

    </wsdl:binding>

    <wsdl:service name="EchoAttachmentsServiceService">

       <wsdl:port binding="impl:urn:EchoAttachmentsServiceSoapBinding"
name="urn:EchoAttachmentsService">

          <wsdlsoap:address
location="http://localhost:8085/axis/services/urn:EchoAttachmentsService"/>

       </wsdl:port>

    </wsdl:service>

</wsdl:definitions>






-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/m2/