Hi,
 
We are using Axis to connect to the MapPoint service from Microsoft. My application is 
throwing an XMLparser exception. I have attached the log below. Does anyone have 
anyidea on this.
 
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: org.xml.sax.SAXParseException: Premature end of file.
 faultActor:
 faultNode:
 faultDetail:
        {http://xml.apache.org/axis/}stackTrace: org.xml.sax.SAXParseException:
Premature end of file.
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializa
tionContextImpl.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 net.mappoint.s.mappoint_30.FindServiceSoapStub.findAddress(FindServic
eSoapStub.java:1110)
 
Thanks & Regards,
Nishit

        -----Original Message----- 
        From: Dorner Thomas [mailto:[EMAIL PROTECTED] 
        Sent: Tue 6/15/2004 3:06 PM 
        To: '[EMAIL PROTECTED]' 
        Cc: 
        Subject: AW: How to get the SOAP Envelope from msg Context without invocation
        
        
        Hi,
         
        I am working on WS-security Handlers to sign and encrypt my SOAP.
        I am interessted, if someone of you use the XML-Security API from Apache 
instead of
        the TSIK from Verisign?
         
        If someone have me some Code-Snippet for the encrypt and decrypt Method, it 
would be welcome :)
         
        Thanks Tomi

                -----UrsprÃngliche Nachricht-----
                Von: GANDHIRAJAN, AYYAPPAN [mailto:[EMAIL PROTECTED]
                Gesendet: Dienstag, 15. Juni 2004 11:29
                An: [EMAIL PROTECTED]
                Betreff: RE: How to get the SOAP Envelope from msg Context without 
invocation
                
                
                Hi jose,
                 
                I dont know if it is helpful to you.
                 
                I adapted a different approach in this case. I created soap envelope 
first, signed it and used call.invoke(envelope) api. This worked for me. if you are 
interested, I can give the code snippet for you.


                Thanks & regards, 
                Ayyappan Gandhirajan 
                ----------------------------------------------------------------- 
                Hewlett-Packard Global Delivery India Center 
                Office: (+91) 80.2205.1472 
                Mobile: (+91) 94483.14969       
                Mail: [EMAIL PROTECTED] 
                ----------------------------------------------------------------- 

                        -----Original Message-----
                        From: Dhanush Gopinath [mailto:[EMAIL PROTECTED]
                        Sent: Monday, June 07, 2004 10:07 AM
                        To: [EMAIL PROTECTED]
                        Subject: Re: How to get the SOAP Envelope from msg Context 
without invocation
                        
                        
                        Jose,
                         
                        Handlers are called while request and response flows. It is an 
automatic process... 
                        I dont know much more than this as I am also in the learning 
phase :) Hope some one can help 
                         
                        Dhanush

                                ----- Original Message ----- 
                                From: Jose M. Selman <mailto:[EMAIL PROTECTED]>  
                                To: [EMAIL PROTECTED] 
                                Sent: Friday, June 04, 2004 7:47 PM
                                Subject: Re: How to get the SOAP Envelope from msg 
Context without invocation

                                Is it possible to programatically set client-side 
handlers? That way my problem would be solved. 
                                 
                                Cheers,
                                 
                                Jose M. Selman
                                 
                                 

                                        ----- Original Message ----- 
                                        From: Dhanush Gopinath <mailto:[EMAIL 
PROTECTED]>  
                                        To: [EMAIL PROTECTED] 
                                        Sent: Thursday, June 03, 2004 11:50 PM
                                        Subject: Re: How to get the SOAP Envelope from 
msg Context without invocation
                                        
                                        
                                        Jose,
                                         
                                        You wont be able to get a SOAPEnvelope at the 
client end after the call or before the call .. because before the call there is no 
SOAPMessage and after the Call the response is over. 
                                         
                                        and Call.getMessgaeContext() will return a 
null value. So you cant access that Message Context.
                                         
                                        How ever you can do one thing. 
                                         
                                        You can implement a Handler which will be 
invoked only in the requestFlow and can then manipulate the SOAPMessage and the 
Handler end. 
                                         
                                        To do that you must add a handler in the 
deploy.wsdd file and write a Handler class which extends the BasicHandler class of 
Axis APIs. 
                                         
                                         <handler name="AttachmentHandler" 
type="java:com.bt.oexgateway.webservices.AttachmentHandler"/>
                                         
                                          <service name="TestOAGXMLService" 
provider="java:RPC" style="rpc" use="encoded">
                                            <requestFlow>
                                           <handler type="AttachmentHandler"/>
                                             </requestFlow>
                                            <responseFlow>
                                           <handler type="AttachmentHandler"/>
                                             </responseFlow>
                                        ....
                                        </service>
                                         
                                        The handler class will be something like this 
                                         
                                        import org.apache.axis.handlers.BasicHandler;
                                        
                                        public class AttachmentHandler extends 
BasicHandler
                                        {
                                         public void invoke(MessageContext msgContext) 
throws AxisFault 
                                         {
                                          System.out.println("Hi Hi Handler Invoked !! 
");
                                          
                                          //  Gets the Request SOAP Message  
                                           Message reqMsg = 
msgContext.getRequestMessage();
                                          //  Gets the response SOAP Message     
                                           Message respMsg = 
msgContext.getResponseMessage();
                                           
                                        ...
                                        ....
                                        }
                                        }
                                         
                                        During the call from the client the method 
invoke() of the declared handler is called . It depends on the declaration in the WSDD 
file . If  you need it in both requestFlow and responseFlow then give as above wsdd. 
if you need only in request then only <requestFlow> is needed.. Depends upon you and 
ur application.
                                         
                                        People, Hope I am right here.
                                        Hope this helps you
                                         
                                        Cheers 
                                        Dhanush
                                         

                                        ----- Original Message ----- 
                                        From: Jose M. Selman <mailto:[EMAIL 
PROTECTED]>  
                                        To: [EMAIL PROTECTED] 
                                        Sent: Friday, June 04, 2004 8:00 AM
                                        Subject: How to get the SOAP Envelope from msg 
Context without invocation
                                        
                                        
                                        Hi:
                                            I'm writing an Axis Client that needs to 
send RPC style signed requests
                                        according to XML-DSIG. My problem is that in 
order to sign the SOAP Envelope
                                        I need to first have it! :-) I have looked 
everywhere but I haven't found
                                        where to do this.
                                        
                                        I'm doing
                                        
                                        Service service = new Service();
                                        Call call = (Call) service.createCall();
                                        call.setTargetEndpointAddress( new 
java.net.URL(endPoint) );
                                        call.setOperationName( new QName(endPoint, 
operationName) );
                                        call.addParameter( "String", 
XMLType.XSD_STRING, ParameterMode.IN );
                                        call.setReturnType( XMLType.XSD_STRING );
                                        String resu = (String) call.invoke(new 
Object[] { "Some String Input" });
                                        
                                        After this last statement I can get the SOAP 
Message from the message
                                        context doing:
                                        
                                        mc = call.getMessageContext();
                                        env = request.getSOAPEnvelope();
                                        
                                        But the service was already invoked!!!Is there 
any way of setting the
                                        parameters used for a call without actually 
invoking the service?
                                        
                                        Cheers,
                                        
                                        Jose M Selman
                                        

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



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



<<winmail.dat>>

Reply via email to