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 Michael Oliver <ol...@sourceonenet.com> on 2005/01/08 00:19:15 UTC

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 oliverm@matrix-media.com

-----Original Message-----
From: Praveen Peddi [mailto:ppeddi@contextmedia.com] 
Sent: Friday, January 07, 2005 2:31 PM
To: axis-user@ws.apache.org
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" < <ma...@DEQ.IDAHO.GOV>
AMICONE@DEQ.IDAHO.GOV>

To: < <ma...@ws.apache.org> axis-user@ws.apache.org>

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

>>>  <ma...@salesforce.com> sfell@salesforce.com 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:AMICONE@DEQ.IDAHO.GOV] 
> Sent: Friday, January 07, 2005 12:14 PM
> To:  <ma...@ws.apache.org> axis-user@ws.apache.org 
> 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
> 
> >>>  <ma...@lmco.com> raul.flores@lmco.com 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:webmaster@blis-project.org] 
> Sent: Friday, January 07, 2005 1:12 PM
> To:  <ma...@ws.apache.org> axis-user@ws.apache.org 
> 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.
> 
>