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;

    }

 

 

 

Reply via email to