The Microsoft Reporting Services uses an application-defined mechanism to
manage sessions (i.e., specifying the SessionID in a header block), so it
doesn't depend on the Web service implementations to use compatible session
management mechanisms. It should work just fine as long as you implement
support for this header block.

Anne

-----Original Message-----
From: Davy Crocket [mailto:[EMAIL PROTECTED] 
Sent: Friday, June 04, 2004 8:32 AM
To: [EMAIL PROTECTED]
Subject: Re: Axis client gets a Session Id Required error when attempting to
perform an render action against Microsoft's Reporting Services

Thanks...  I appreciate all the help!  I will look into a deployment
descriptor.

I did read an article last night that stated:  "There are not yet any
solutions to ensure interoperability in terms of session management between
Axis and other Web Service implementations."  This is from an article (Axis:
The new Incarnation of Apache SOAP.pdf) that is dated 2002.

Davy

----- Original Message ----- 
From: "Anne Thomas Manes" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, June 04, 2004 6:31 AM
Subject: RE: Axis client gets a Session Id Required error when attempting to
perform an render action against Microsoft's Reporting Services


You need a deployment descriptor on the client side if you want to configure
the client to use JAX-RPC handlers or to use a custom serializer.

-----Original Message-----
From: Dorner Thomas [mailto:[EMAIL PROTECTED]
Sent: Friday, June 04, 2004 3:21 AM
To: '[EMAIL PROTECTED]'
Subject: AW: Axis client gets a Session Id Required error when attempting to
perform an render action against Microsoft's Reporting Services

It is possible to define a Deployment Des. on the client side
(I read so) and set the Handlers also there. But you dont need
in my way - i haven�t use it! :(

Tomi

-----Urspr�ngliche Nachricht-----
Von: Davy Crocket [mailto:[EMAIL PROTECTED]
Gesendet: Donnerstag, 3. Juni 2004 16:16
An: [EMAIL PROTECTED]
Betreff: Re: Axis client gets a Session Id Required error when
attempting to perform an render action against Microsoft's Reporting
Services


Thanks...

Do you need to define (use) a Deployment Descriptor  when using Axis on the
client side?  I thought it was for the server side configuration only.

----- Original Message ----- 
From: "Dorner Thomas" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, June 03, 2004 8:58 AM
Subject: AW: Axis client gets a Session Id Required error when attempting to
perform an render action against Microsoft's Reporting Services


You have to use SimpleSessionHandler

--> you must set in the Deployment Descriptor like this:

...
   xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>

  <handler name="SessionHandler"
type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<!-- Services from PDMWebConnectorService WSDL service -->

<service name="xxx" provider="java:RPC" style="rpc" use="encoded">

<requestFlow>
<handler type="SessionHandler"/>
</requestFlow>

<responseFlow>
<handler type="SessionHandler"/>
</responseFlow>

      <parameter name="wsdl.....


--> create " SimpleSessionHandler sessionHandler;" in your stub
for example in the constructors.
and set the clientHandlers like this to your call:

_call.setClientHandlers(sessionHandler, sessionHandler);


and setMaintainSession() in your client.


Now look for mor information in the mailing list ("simpleSessionHandler")!

Tomi

-----Urspr�ngliche Nachricht-----
Von: Davy Crocket [mailto:[EMAIL PROTECTED]
Gesendet: Donnerstag, 3. Juni 2004 15:48
An: [EMAIL PROTECTED]
Betreff: Re: Axis client gets a Session Id Required error when
attempting to perform an render action against Microsoft's Reporting
Services


Thanks for your help...

I am new to Axis and am not able to get the session id to show up in the
HTTP Header or the SOAP header.

I have tried setting rsSoapStub.setMaintainSession(true) and adding
<parameter name="scope" value="session"/> to the WSDL before using
WSDL2Java.

How do I get the session id to show up in the request?


----- Original Message ----- 
From: Anne Thomas Manes
To: [EMAIL PROTECTED]
Sent: Thursday, June 03, 2004 7:45 AM
Subject: RE: Axis client gets a Session Id Required error when attempting to
perform an render action against Microsoft's Reporting Services


Microsoft's Reporting Services supports session information using either a
SOAP Header block or a URL.
See
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/RSPROG/htm/
rsp_prog_soapapi_dev_8x5u.asp




From: Davy Crocket [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 02, 2004 6:30 PM
To: [EMAIL PROTECTED]
Subject: Axis client gets a Session Id Required error when attempting to
perform an render action against Microsoft's Reporting Services

Hello, I am attempting to use Axis with my Java application to interact with
Microsoft's Reporting Services to save, retrieve, and render reports.  I am
able to save and retrieve the reports but when I attempt to run a report I
get a MissingSessionIdException error.  I am trying to figure out how to get
the session id passed in the request.  I used the WSDL2Java utility and
created stub classes from Microsoft's WSDL.

Here is the error:
System.Web.Services.Protocols.SoapException: The session identifier is
missing. A session identifier is required for this operation.  --->
Microsoft.ReportingServices.Diagnostics.Utilities.MissingSessionIdException:
The session identifier is missing. A session identifier is required for this
operation.
   at
Microsoft.ReportingServices.WebServer.ReportingService.GetSessionId(Boolean
required)
   at
Microsoft.ReportingServices.WebServer.ReportingService.RenderStream(String
Report, String Format, String StreamID, String HistoryID, String DeviceInfo,
ParameterValue[] Parameters, Byte[]& Result, String& Encoding, String&
MimeType)
   --- End of inner exception stack trace ---
   at
Microsoft.ReportingServices.WebServer.ReportingService.RenderStream(String
Report, String Format, String StreamID, String HistoryID, String DeviceInfo,
ParameterValue[] Parameters, Byte[]& Result, String& Encoding, String&
MimeType)

Here is the request from my Java application:
POST /ReportServer/ReportService.asmx HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.1
Host: 127.0.0.1
Cache-Control: no-cache
Pragma: no-cache
SOAPAction:
"http://schemas.microsoft.com/sqlserver/2003/12/reporting/reportingservices/
RenderStream"
Content-Length: 575

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 <soapenv:Body>
  <RenderStream
xmlns="http://schemas.microsoft.com/sqlserver/2003/12/reporting/reportingser
vices">
   <Report>/MyReport2/Report1</Report>
   <Format>MHTML</Format>
   <StreamID xsi:nil="true"/>
   <HistoryID xsi:nil="true"/>
   <DeviceInfo xsi:nil="true"/>
   <Parameters xsi:nil="true"/>
  </RenderStream>
 </soapenv:Body>
</soapenv:Envelope>


thanks

davy crocket


Reply via email to