Webservice - Object not found



Hi NG !

What do you think is wrong here ???

This compiles OK, but gives this fail on run-time:

"Object ref not found ....."

------------------------------------------------------------------------------------------
unit emdata.BDBChildReportMain;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, System.ComponentModel, Borland.Vcl.StdCtrls, System.Security.Cryptography, System.Security.Policy, System.Security.Cryptography.X509Certificates,
System.Web.Services, Microsoft.Web.Services3, Microsoft.Web.Services3.Design, Medcom.DgwsWse, Medcom.DgwsWse.ErrorHandler, Medcom.BDBChildMeasurementReport;
//System.Data,System.Xml; /// System.Collections;

type
TForm1 = class(TForm)
CreateBDBChildButton: TButton;
UUIDOutputEdit: TEdit;
GlobalUUIDLabel: TLabel;
procedure CreateBDBChildButtonClick(Sender: TObject);
private
strict protected
{ Private declarations }
public


{ Public declarations }

end;
TAssPolicyArray = array[0..2] of Microsoft.Web.Services3.Design.PolicyAssertion; // Dynamic array

var
Form1: TForm1;
//ChildMeasurementReportType1:emdata.ChildMeasurementReportType;
//ChildMeasurementType1:medcom.BDBChildMeasurementReport.ChildMeasurementType;
//reportType:BDBChildReportMain.TArrayOfCreateChildMeasurementReportType;
//XmlReader : XmlTextReader;
//extens:System.Collections.ICollection;

implementation

{$R *.nfm}

procedure TForm1.CreateBDBChildButtonClick(Sender: TObject);
var
ArrayOfMedcom_DgwsWse_DGWSAssertion : array of Medcom.DgwsWse.DGWSAssertion;
ArrayOfMedcom_DgwsWse_MessageSignAssertion : array of Medcom.DgwsWse.MessageSignAssertion;
ArrayOfCreateChildMeasurementReportType : array of Medcom.BDBChildMeasurementReport.CreateChildMeasurementReportType;
//ChildMeasurementReportType1:emdata.ChildMeasurementReportType;
//ChildMeasurementType1:medcom.BDBChildMeasurementReport.ChildMeasurementType;
WebService:Medcom.BDBChildMeasurementReport.BDBChildMeasurementReport;
ChildMeasurementType1:Medcom.BDBChildMeasurementReport.ChildMeasurementType;
CreateChildMeasurementReportType1:Medcom.BDBChildMeasurementReport.CreateChildMeasurementReportType;
Policy1:Microsoft.Web.Services3.Design.Policy;
//policyAssertion1:Microsoft.Web.Services3.Design.PolicyAssertion;
DgwsAssertion1:Medcom.DgwsWse.DGWSAssertion;
MessageSignAssertionArray1:Medcom.DgwsWse.MessageSignAssertion;
TimeSpan1:TimeSpan;
AssPolicyArray:TAssPolicyArray;
AcceptedcartificatesArray:Array[0..1] of string;
AddressingConverterAssertion1:Medcom.DgwsWse.AddressingConverterAssertion;
MessageSignAssertion1:Medcom.DgwsWse.MessageSignAssertion;
certificate1:System.Security.Cryptography.X509Certificates.X509Certificate2;
Result:String;
//reportType:BDBChildReportMain.TArrayOfCreateChildMeasurementReportType;

begin

SetLength(ArrayOfMedcom_DgwsWse_DGWSAssertion,3);
SetLength(ArrayOfMedcom_DgwsWse_MessageSignAssertion,3);
SetLength(ArrayOfCreateChildMeasurementReportType,3);
//SetLength(AssPolicyArray,5);

//XmlReader := XmlTextReader.Create('wse3policyCache.config');

certificate1 := System.Security.Cryptography.X509Certificates.X509Certificate2.Create('Mikevalid.p12','Test1234');
ShowMessage(certificate1.ToString);
//ChildMeasurementReportType1 := emdata.ChildMeasurementReportType.TChildMeasurementReportType.Create;
WebService := Medcom.BDBChildMeasurementReport.BDBChildMeasurementReport.Create;
ChildMeasurementType1 := ChildMeasurementType.Create;
CreateChildMeasurementReportType1 := CreateChildMeasurementReportType.Create;
DgwsAssertion1 := Medcom.DgwsWse.DGWSAssertion.Create;
DgwsAssertion1.InCommingCertificateChecker(certificate1);
DgwsAssertion1.InCommingUPChecker('Mikevalid','Test1234');

AcceptedcartificatesArray[0] := '*';
//Policy1.Assertions.Add(ArrayOfMedcom_DgwsWse_DGWSAssertion[1]);
MessageSignAssertion1 := Medcom.DgwsWse.MessageSignAssertion.Create;
MessageSignAssertion1.certificate := certificate1;
MessageSignAssertion1.acceptedcartificates := AcceptedcartificatesArray;
//Policy1.Assertions.Add(MessageSignAssertion1);
//Policy1.Assertions.Add(ArrayOfCreateChildMeasurementReportType[0]);
AddressingConverterAssertion1 := Medcom.DgwsWse.AddressingConverterAssertion.Create;
//AddressingConverterAssertion1 := ???;


TimeSpan1 := TimeSpan.Create(8,0,0);

AssPolicyArray[0] := MessageSignAssertion1;
AssPolicyArray[1] := AddressingConverterAssertion1;

//Policy1.Assertions.Add(AssPolicyArray[0]);
//Policy1.Assertions.Add(AssPolicyArray[1]);
//Policy1.Assertions.Item[0].ToString;


//MessageSignAssertion1 := Medcom.DgwsWse.MessageSignAssertion.Create('Mikevalid.p12','Test1234','*');
//with MessageSignAssertion1 do
//begin
//MessageSignAssertion1.acceptedcartificates := ..... ;
//end;

//DgwsAssertion1.ReadXml(XmlReader,extens);
with DgwsAssertion1 do
begin
Card.leveTid := TimeSpan1;
Card.Issuer := 'testissuer';
Card.Authenticity.NameID := '1903701234';
Card.Authenticity.NameIDFormat := 'http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/CPR_PersonCivilRegistrationIdentifier.xsd';
Card.Authenticity.Password := 'Test1234';
Card.Authenticity.CertificatePointer := 'Mikevalid.p12';
with Card.IDCardData do
begin
IDCardID := '100';
IDCardVersion := '1.1';
IDCardType := 'system';
AuthenticationLevel := 3;
ITSystemName := 'LægeSystemA';
CareProviderID := '079741';
CarePRoviderIDFormat := 'dgws:ynumber';
CareProviderName := 'Lægehuset, Vandværksvej';
end;
end;

with ChildMeasurementType1 do
begin
PersonCivilRegistrationIdentifier := '0101010104';
InstitutionIdentifier := '001';
MeasurementDate := Now;
PersonHeight := 110;
PersonWeight := 12;
end;


ShowMessage(Policy1.ToString);

//policy1 := Policy.Create;
//policy1.Assertions.Add(TArrayOfMedcom_DgwsWse_DGWSAssertion, 0);
//policy1.Assertions.Add(Medcom.DgwsWse.AddressingConverterAssertion.Create);
//policy1.Assertions.Add(TArrayOfMedcom_DgwsWse_MessageSignAssertion, 0);
//reportType := New(TArrayOfCreateChildMeasurementReportType, 0);

//ws := DBChildMeasurementReportService.Create;
//ws.Url := 'http://localhost:49495/BDBChildMeasurementReport.asmx';
//ws.SetPolicy(policy);
//Console.WriteLine(ws.CreateChildMeasurementReport(reportType));
//Console.ReadLine;


Webservice.Url := 'http://testcenter.medcom.dk/BDBChildMeasurementReport/BDBChildMeasurementReport.asmx'; // Aktiveres i test, proxy

Result := WebService.CreateChildMeasurementReport(CreateChildMeasurementReportType1);
UUIDOutputEdit.Text := Result;

end;

end.

.


Quantcast