activation.jar takes care of ur DataHandler class. It comes with javax.activation.Datahandler package.
mail.jar may be needed for Attachment Parts
 
Regards
Dhanush
----- Original Message -----
Sent: Monday, June 21, 2004 4:11 PM
Subject: AW: .net Webservicem, AXIS client: DIME Attachment from Server

Self answer:

To make it work I had to use the mail.jar and the activation.jar libraries.

I don’t know why but now it works.

If someone knows what those file are for, please respond, cause I will have to present my Client at University and there I will need

arguments.

 

A short Collection of my experiences with AXIS Client development for .net WSE enhanced Services:

 

-           Use this to set the Attachment format:

_call.setProperty(org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT,org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT_DIME);

 

-           port.yourRemoteMethod(...) //Trigger the WebMethod

Object[] obj =  ((org.apache.axis.client.Stub)port).getAttachments(); //Cast the response to Stub

// assuming one attachemnt only

AttachmentPart p = (AttachmentPart) obj[0]; //Access your Attachment (only 1 in this case)

 

-           Use the libraries mail.jar and activation.jar

 


Von: Thomas Zöchling [mailto:[EMAIL PROTECTED]]
Gesendet: Montag, 21. Juni 2004 00:16
An: [EMAIL PROTECTED]
Betre
ff: .net Webservicem, AXIS client: DIME Attachment from Server

 

 

Hello List

 

I am trying to consume a .net Webservice that responds a DIME attached image.

The call properly arrives at the service but the reponse raises serveral SaxParseExceptions.

I tried to force Attachment Format by hardcoding this …

_call.setProperty(org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT,org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT_DIME);

…to the generated *SoapStub.java. But without success ->Same Exception

 

Thx for reading Thomas

 

Here is the Stack trace:

{http://xml.apache.org/axis/}stackTrace: org.xml.sax.SAXParseException: Zeichenumwandlungsfehler: "Malformed UTF-8 char -- is an XML encoding declaration missing?" (Zeilenzahl möglicherweise zu niedrig)

            at org.apache.crimson.parser.InputEntity.fatal(InputEntity.java:1100)

            at org.apache.crimson.parser.InputEntity.fillbuf(InputEntity.java:1072)

            at org.apache.crimson.parser.InputEntity.isXmlDeclOrTextDeclPrefix(InputEntity.java:914)

            at org.apache.crimson.parser.Parser2.maybeXmlDecl(Parser2.java:1009)

            at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:486)

            at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)

            at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)

            at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)

            at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)

            at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)

            at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)

            at org.apache.axis.client.Call.invokeEngine(Call.java:2583)

            at org.apache.axis.client.Call.invoke(Call.java:2553)

            at org.apache.axis.client.Call.invoke(Call.java:2248)

            at org.apache.axis.client.Call.invoke(Call.java:2171)

            at org.apache.axis.client.Call.invoke(Call.java:1691)

            at attService.AttServiceSoapStub.getImage(AttServiceSoapStub.java:102)

            at attService.imageRequestor.requestImage(imageRequestor.java:76)

            at attService.imageRequestor.saveImage(imageRequestor.java:91)

            at attService.imageRequestor$1.actionPerformed(imageRequestor.java:43)

            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1767)

            at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1820)

            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)

            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)

            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:258)

            at java.awt.Component.processMouseEvent(Component.java:5021)

            at java.awt.Component.processEvent(Component.java:4818)

            at java.awt.Container.processEvent(Container.java:1380)

            at java.awt.Component.dispatchEventImpl(Component.java:3526)

            at java.awt.Container.dispatchEventImpl(Container.java:1437)

            at java.awt.Component.dispatchEvent(Component.java:3367)

            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3214)

            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2929)

            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2859)

            at java.awt.Container.dispatchEventImpl(Container.java:1423)

            at java.awt.Window.dispatchEventImpl(Window.java:1566)

            at java.awt.Component.dispatchEvent(Component.java:3367)

            at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)

            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:190)

            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)

            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)

            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)

            at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)

 

This is the .net Service:

      [WebMethod]

      public string GetImage(string imageName)

      {

            SoapContext myContext = HttpSoapContext.ResponseContext;

            string filePath = "C:\\inetpub\\wwwroot\\attService\\" + imageName + ".jpg";

            DimeAttachment dimeImage = new DimeAttachment("image/jpeg", TypeFormatEnum.MediaType,filePath);

            //dimeImage.Id = "uri:" + Guid.NewGuid().ToString();

            dimeImage.Id = "uri:temp.jpg";

 

            try

            {

                 

                  myContext.Attachments.Add(dimeImage);

                 

            }

            catch(Exception e)

            {

                  e.ToString();

            }

           

 

      return dimeImage.Id;

      }

      }

 

Clientcode (Stub generated from WSDL)

 

    public DataHandler  requestImage() throws RemoteException

    {

        String test=port.getImage(txtImage.getText());

 

        Object[] obj =  ((org.apache.axis.client.Stub)port).getAttachments();

            // assuming one attachemnt only

            //Each Attachment is actually an AttachmentPart - we only have 1

            AttachmentPart p = (AttachmentPart) obj[0];

            // from the part we may get the dataHandler

            DataHandler dh = p.getActivationDataHandler();

        return dh;

    }

 

 

 

*********************************************************
Disclaimer:         

This message (including any attachments) contains
confidential information intended for a specific
individual and purpose, and is protected by law.
If you are not the intended recipient, you should
delete this message and are hereby notified that
any disclosure, copying, or distribution of this
message, or the taking of any action based on it,
is strictly prohibited.

*********************************************************
Visit us at http://www.mahindrabt.com

Reply via email to