Title: Message
I'm not sure this works properly, for a number of reasons.
 
The worst of which, (from my reading of the source, apologies if it's not correct) is that the Class Name is used as the key into a cache of service descriptions.
 
translation into English:
 
Even if you did manage to get jws classes with different packages but the same name compiling and running, you will only get one of the classes when the either of the jws services is requested.
 
This would take some modifications in the AXIS source to get it working as far as I could tell, and I'm not sure how wide-reaching the changes would be.
 
Perhaps putting classes that need to have packages in the classes directory or in a jr in lib, and using the jws as a thin wrapper round them?
Or just extend the classes - import works fine for a jws.
 
HTH
 
Patrick
 
 
 
 
 
 
 
-----Original Message-----
From: Michael Oliver [mailto:[EMAIL PROTECTED]
Sent: 07 January 2005 23:19
To: [EMAIL PROTECTED]
Subject: package paths for jws files

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.

 

Thannks

Praveen

 

----- Original Message -----

From: "ANDREW MICONE" <[EMAIL PROTECTED]>

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.
>
>

Reply via email to