1、我现在做一个项目,要用到SOAP、Webservice、Corba,因为要求效率,我就做了个ISAPI DLL 型的Webservice程序(这个动态链接库里用到了Corba),已经编译成功生成了DLL,而且发布到了IIS下的虚拟目录下,在访问本机(http://localhost/corbawebservice/PCorbaWebservice.dll/wsdl/IIChenjieYJ)时可以看到生成接口的XML文件,但是在访问http://localhost/corbawebservice/PCorbaWebservice.dll/soap/IIChenjieYJ时,就显示出错,提示“XML文件必须要有一个顶层元素”,不知是什么问题?
2、而且我根据这个发布的接口,又用WSDL Importer做了一个客户端后,只要是访问这个接口的时候,就提示错误为“Access Violation in PCorbaWebservice.dll,Read Address 00000000”等等之类。研究了好几天,始终不得其解,请各位高手指教!
2、而且我根据这个发布的接口,又用WSDL Importer做了一个客户端后,只要是访问这个接口的时候,就提示错误为“Access Violation in PCorbaWebservice.dll,Read Address 00000000”等等之类。研究了好几天,始终不得其解,请各位高手指教!
解决方案 »
- Asp.net调用 Delphi 编写的 DLL(library)(非COM)
- 100分求一奇怪问题解决办法!
- ◆◆◆问个编写自定义组件的白痴问题?你一定会的!
- 窗体的Destroy和Free过程有什么区别?
- 如何使用xpmenu控件
- Result := FItemClass.Create(Self)//self是什么意思
- 怎么用飞信接口发短信?
- 急死我了,qryOperation.FieldByName('State').AsInteger :=0 这句话为何不行?
- 请问一下如何使一个FORM停留在所有应用程序的最前端
- 三层结构经常出现内存不足,是怎么一回事?
- 关于数据库的一个小小问题,请各位高手指教!
- memo问题
2、只有DEBUG才能知道了
1、在WebModule里加了个ONCreate事件:
procedure TCorbaWebModule.WebModuleCreate(Sender: TObject);
var
i:integer;
begin
CorbaInitialize; //Corba初始化
try
YJSignal:=TCJSignalCorbaHelper.Bind('WUST_CJSignalObject');
//定义并绑定Corba对象
except
Exit;
end;
//设定两个存放数据的二维数组的大小
SetLength(SampleSignal,32);
for i:=0 to 31 do
Setlength(SampleSignal[i],81920);
SetLength(FeatureSignal,6);
for i:=0 to 5 do
SetLength(FeatureSignal[i],6);
end;
2、在Intf文件里声明接口函数
function SendSamplesignal(MySampleIndex:Smallint):TDoubleDynarray; stdcall;
function SendFeaturesignal(MyFeatureIndex:Smallint):TDoubleDynarray;stdcall;
function SendSamplePoint:Integer;stdcall;
function SendFrequence:Integer;stdcall;
3、在Impl文件里定义接口函数,此文件里包含WebModule文件,应该没有问题。
请大虾们帮忙看看我的代码到底是哪里有问题咯,多谢先!
而且改用SOAPDataModule的话,这模块里面又应该加些什么控件,具体又应该怎么实现呢?难道它就可以这么互相引用吗?
YJSignal:CJSignalCorba;
SampleSignal,FeatureSignal:DoubleArray;
samplepoint,frequence:integer;
这三个作为全局变量也是有问题滴,IMPL的实例是多线程的,可能造成访问冲突。
CORBA::ORB_var orb = CORBA::ORB_init(__argc, __argv);
CORBA::BOA_var boa = orb->BOA_init(__argc, __argv);
是不是相当于DELPHI中的:
CorbaInitialize;
?如果是的话,应该没有什么区别了。我这里没有环境(你的那些CORBA的东东),没办法帮你调试,你最好自已按我前面说的,把它改成WAD应用再调试一下看看。估计还是出在CORBA的什么地方。“XML文件必须要有一个顶层元素”一般最常出现的ISAPI出错(比如异常)的情况,反回了一个500出错页面(HTML,不是XML),所以会报这个错。还有我上一贴说的线程访问冲突是一个需要考虑的问题,建议你还是改一下,以避免这种问题。你那个BCB虽然可以执行,但要考虑到以后可能出现的的并发访问,那时它可能就会有问题了。
我也碰到了同样的错误,提示“XML文件必须要有一个顶层元素”,
我用WAD 调试正常,用ISAP就出错,是按照李维的例子试的