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