I am having trouble locating jws classes
if the classes have a package path.
They get created under jwsClasses ok, but
then I get a file not found exception when I try to access them.
I tried putting them in a directory tree
that matched the package path under webapps/axis/com… but that didn’t
work either.
I tried the full package and class name of
com.alariusj.bpme.services.MyService.jws and that didn’t work either.
I can’t find any documentation that speaks
to this.
Michael Oliver
CTO
Alarius Systems LLC
3325 N. Nellis Blvd, #1
Las Vegas, NV 89115
Phone:(702)643-7425
Fax:(520)844-1036
*Note new email changed from
[EMAIL PROTECTED]
-----Original Message-----
From: Praveen Peddi
[mailto:[EMAIL PROTECTED]
Sent: Friday, January
07, 2005 2:31 PM
To: [EMAIL PROTECTED]
Subject: Re: Best way to send
attachments
Does it mean that the following
method should work fine if I change DataHandler to Object? Does it work w/o any
changes in the method implementation?
public String
createOrUpdateContentObjectWithAttachments(String sessionID,
String containerID, String xmlString, String
customerID, String contentID, DataHandler source, String
sourceFileName,
DataHandler thumb, String thumbFileName);
input argument DataHandler is sent
stream. How would the client and server know that it has to send the stream for
that specific argument. You are just sending xsd:AnyType.
Andy, do you mind sending your code.
Or atleast the snippet of the method that takes attachment as input argument?.
I would appreciate if could also send your .NET snippet.
----- Original Message -----
Sent: Friday, January
07, 2005 5:22 PM
Subject: RE: Best way to send
attachments
Right, it's passed in either
directly or by reference as xsd:anyType and then the receiver has to type the
anyType to determine whether its base64encoded, SwA, or DIME. -- Andy
>>> [EMAIL PROTECTED] 01/07/05 03:10PM
>>>
Nothing in that wsdl fragment indicates that there will be any MIME or
DIME based attachments.
Cheers
Simon
> -----Original Message-----
> From: ANDREW MICONE [mailto:[EMAIL PROTECTED]
> Sent: Friday, January 07, 2005 12:14 PM
> To: [EMAIL PROTECTED]
> Subject: RE: Best way to send attachments
>
> Here's an example of a WSDL snippet that is consumed by both
> .NET and Axis that handles attachments and interoperates
> between the two. This is from a service in production:
>
> <complexType name="NodeDocument">
> <sequence>
> <element name="name" nillable="true"
type="xsd:string"/>
> <element name="type" nillable="true"
type="xsd:string"/>
> <element name="content" nillable="true"
> type="xsd:anyType"/>
> </sequence>
> </complexType>
> <complexType name="ArrayofDoc">
> <complexContent>
> <restriction base="soapenc:Array">
> <attribute ref="soapenc:arrayType"
> wsdl:arrayType="tns1:NodeDocument[]"/>
> </restriction>
> </complexContent>
> </complexType>
>
> BTW, I didn't write it, I just implemented it. -- Andy
>
> >>> [EMAIL PROTECTED] 01/07/05 12:26PM
>>>
> I don't believe there is a way to define this in wsdl so that
> both .Net and Java(axis) can consume the wsdl. Someone please
> correct me if I am wrong. My clients just have to understand
> that certain methods have filles attached. I also allow them
> to set a request parameter do define whether the attachment
> should be set to Dime or Mime encoding (the service is Axis).
>
>
> Raul
>
> -----Original Message-----
> From: BLIS Webmaster (Patrick Houbaux)
> [mailto:[EMAIL PROTECTED]
> Sent: Friday, January 07, 2005 1:12 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Best way to send attachments
>
> I have no problem sending attachements to .NET client.
>
> I have a RPC web service (I guess it works for other web
> service style), and here is the methodologie:
>
> Let's assume you have a web service supposed to send some
> attachments, the idea is to add the attachment to the SOAP
> message before the web service method returns on the server
> side (please note the following is using AXIS 1.1, but it is
> almost the same with the latest version of AXIS, the AXIS API
> has changed a bit).
>
> 1- get the response message from the message context:
> //...
> org.apache.axis.MessageContext msgContext=
> org.apache.axis.MessageContext.getCurrentContext();
> org.apache.axis.Message rspMsg= msgContext.getResponseMessage();
>
> 2 - Set the attachment type to be sent as DIME
>
>
> rspMsg.getAttachmentsImpl().setSendType(org.apache.axis.attach
> ments.Atta
> chments.SEND_TYPE_DIME);
>
> 3- Let's assume you want to send a file
>
> java.io.File
fileToAddAsAttachment = new
> java.io.File("<the path to your file>");
>
> 4- Add the file to attachment of the response message
>
> javax.activation.DataHandler dh=new
> javax.activation.DataHandler(new
> javax.activation.FileDataSource(fileToAddAsAttachment));
> org.apache.axis.attachments.AttachmentPart part = new
> org.apache.axis.attachments.AttachmentPart(dh);
>
rspMsg.addAttachmentPart(part);
>
> 5- Return your method
>
> The drawback with that is I haven't figured out how to declare (with
> java2wsdl) the attachment in the WSDL so you have to document
> your web service or inform your clients they have to expect
> some attachments when they call your method.
>
> On the .NET client side, the method is the following:
>
> 1- Call the web service method
>
> 2- Just after the previous call returned, get the SOAP
> Response message context
> SoapContext rspContext = service.ResponseSoapContext;
>
> 3- Get the DIME attachements, loop on them and write in a
> file what you find there:
> DimeAttachmentCollection
attachments = rspContext.Attachments;
> for (int i=0; i<attachments.Count; i++)
> {
> Stream str = attachments[i].Stream;
> FileStream fs = new FileStream("<the file name
> where you want to save the
> attachment>",FileMode.Create,FileAccess.Write);
> ((MemoryStream)str).WriteTo(fs);
> str.Close();
> fs.Close();
> }
>
> That's all, that works perfectly for me ... hope it helps.
>
> Cheers,
> Patrick.
>
>
>
> Vy Ho wrote:
> > All of the reples make no sense whatsover to me.
> >
> > The original poster makes a very clear question that how to send
> > attachments using soap way that works with many environments.
For
> > example, Axis and .Net.
> >
> > To rephrase this, I would say how to create a Wsdl that works with
> > both axis and .net. Currently, using the DataHandler in
> the wsdl (or
> > generating the wsdl from java code with DataHandler) would not work
> > with other environment. I haven't tried this, but looking at
the
> > definition of DataHandler (package name), and its namespace in the
> > wsdl, you can tell it comes from apache, not some Soap standard,
> > unless Apache is the official standard used for attachment.
> >
> > It's funny to read a bunch of replies that have little
> answer value to
>
> > the original question.
>
>