Mark,

I have investigtated slightly this matter of MIME mention in WSDL code. Just
for fun, I created a web service in BEA Weblogic that returned a DataHandler
since this is the automatic method to attach files apparently. The WSDL BEA
creates for this class DOES have a MIME section in the operations node.
(attached is the WSDL, unformatted... sorry)

I proceded to try and get .NET to generate a stub from the WSDL and it
simply skips the operation that has the mime mentioned in it.

However both Weblogic and Axis seem to create a semi-resonable stub (with
Object's in place of DataHandler). I assume that if you stub where to cast
the Object returned to a DataHandler, it would work as expected... however
un-verified at this point.

So I think this answers your question... Axis does handle the mime section.
But other platform implementations MAY not (im still unsure) like Micro$uks
.CRAP Framework.

-----Original Message-----
From: Mark Mueller [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, January 28, 2003 4:09 PM
To: [EMAIL PROTECTED]
Subject: RE: Interoperative attachments


Folks,

I originally used the method in the EchoAttachments
sample which did use MIME to send the attahcment --
but the WSDL identified the type as
"apachesoap:DataHandler" and didn't mention MIME in
the generated WSDL.  Intuitively, this didn't seem
very interoperative.

Josh showed me how to add an attachment "manually" in
my code, but the Axis-generated WSDL still didn't
mention the MIME attachment.  Using the WSDL 1.1 Note
as a model, I modified my WSDL (file attached).  When
I tried to generate the client code with WSDL2Java I
got this error:

$ java org.apache.axis.wsdl.WSDL2Java Text2wav.wsdl
java.lang.NullPointerException
        at
org.apache.axis.wsdl.toJava.Utils.getNewQName(Utils.java:613)
        at
org.apache.axis.wsdl.toJava.JavaStubWriter.writeOperationMap(JavaStubWriter.
java:384)
        at
org.apache.axis.wsdl.toJava.JavaStubWriter.writeFileBody(JavaStubWriter.java
:153)
        at
org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:151)
        at
org.apache.axis.wsdl.toJava.JavaBindingWriter.generate(JavaBindingWriter.jav
a:145)
        at
org.apache.axis.wsdl.toJava.JavaGeneratorFactory$Writers.generate(JavaGenera
torFactory.java:290)
        at
org.apache.axis.wsdl.gen.Parser.generate(Parser.java:325)
        at
org.apache.axis.wsdl.gen.Parser.access$000(Parser.java:83)
        at
org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:247)
        at java.lang.Thread.run(Thread.java:536)
-----------------------

Is my hand-modified wsdl file bad, or does Axis not
deal well with wsdl that uses MIME stuff?

    Mark


--- Norris Merritt <[EMAIL PROTECTED]>
wrote:
> I've had success with the Axis 1.1 beta DIME support
> demonstrated in the
> echoAttachments sample (which also has a mode in
> which it uses MIME). Axis
> 1.1 beta DIME support interoperates both with gSOAP
> and .NET.  For my money
> DIME is the way to go, especially with attachments
> that would otherwise need
> to be Base-64 encoded. Its much more efficient than
> MIME.
>
> -----Original Message-----
> From: Steve Loughran [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, January 28, 2003 9:17 AM
> To: [EMAIL PROTECTED]
> Subject: Re: Interoperative attachments
>
>
>
> ----- Original Message -----
> From: "Mark Mueller" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, January 28, 2003 08:18
> Subject: RE: Interoperative attachments
>
>
> > Josh,
> >
> > Yes, I am trying to develop the service that is
> > language and platform neutral, so I'm trying to
> find
> > the "right" way to handle attachments.
> Unfortunately
> > I don't have other platforms to test on.
>
> pocketsoap, MSSTK and .NET with the WSE all do
> attachments if you want to
> cross-test
>
> >
> > The W3C WSDL 1.1 Note shows a MIME binding that
> > supports attachments, but poking around on the
> > Xmethods website, I didn't run across any WSDL
> that
> > shows the MIME binding.  If vender
> interoperability
> > for attachments just isn't there yet, that would
> be
> > good to know.
>
> all uses of attachments I've seen have attachments
> attached and removed
> manually, with attachment details 'add three of
> them' in the service
> specification.


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
<?xml version="1.0" encoding="utf-8"?>

<definitions xmlns:s="http://www.w3.org/2001/XMLSchema"; 
   xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
   xmlns:tns="http://tempuri.org/"; 
   xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
   targetNamespace="http://tempuri.org/";
   xmlns="http://schemas.xmlsoap.org/wsdl/";>

   
   
           <message name="echoAttachment" >
    
  <part name="data" xmlns:partns="http://www.w3.org/2001/XMLSchema"; type="partns:anyType" />
  
 
  </message>
  <message name="echoAttachmentResponse" >
    
  <part name="result" xmlns:partns="http://www.w3.org/2001/XMLSchema"; type="partns:anyType" />
  
 
  </message>
  
  
  

   
           <message name="helloWorld" >
    
  </message>
  <message name="helloWorldResponse" >
    
  <part name="result" xmlns:partns="http://www.w3.org/2001/XMLSchema"; type="partns:string" />
  
 
  </message>
  
  
  

   
   
           <portType name="MyServicePort" >
    
  <operation name="echoAttachment"  >
    <input message="tns:echoAttachment" />
    
    <output message="tns:echoAttachmentResponse" />
     
    
  </operation>
 
  <operation name="helloWorld"  >
    <input message="tns:helloWorld" />
    
    <output message="tns:helloWorldResponse" />
     
    
  </operation>
 
  </portType>

   
   
           <binding name="MyServicePortSoapBinding"
           type="tns:MyServicePort" >

    <soap:binding style="rpc" 
           transport="http://schemas.xmlsoap.org/soap/http"; />
    
  <operation name="echoAttachment" >
    <soap:operation 
    soapAction="" 
    style="rpc" />

    <input>
      
        <mime:multipartRelated>
    <mime:part>
            
      <soap:body use="encoded" namespace="http://tempuri.org/";
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; />
      
      
 
    </mime:part>
    
    <mime:part>
          <mime:content part="data" type="text/plain"/>

    </mime:part>
    
  </mime:multipartRelated>

    </input>
    <output>
      
        <mime:multipartRelated>
    <mime:part>
            
      <soap:body use="encoded" namespace="http://tempuri.org/";
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; />
      
      
 
    </mime:part>
    
    <mime:part>
          <mime:content part="result" type="text/plain"/>

    </mime:part>
    
  </mime:multipartRelated>

    </output>
    
  </operation>
 
    
  <operation name="helloWorld" >
    <soap:operation 
    soapAction="" 
    style="rpc" />

    <input>
      
            
      <soap:body use="encoded" namespace="http://tempuri.org/";
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; />
      
      
 
      
    </input>
    <output>
      
            
      <soap:body use="encoded" namespace="http://tempuri.org/";
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; />
      
      
 
      
    </output>
    
  </operation>
 
    
  </binding>

   
     <service name="MyService" >
    <documentation>todo: add your documentation here</documentation>
    
    <port name="MyServicePort" 
      binding="tns:MyServicePortSoapBinding">
     <soap:address location="http://localhost:7001/attach/MyService"/>
    </port>
    
  </service>

</definitions>

Reply via email to