客户使用sqlxml 3.0暴露了sql server2000中的存储过程为web服务,已经可以在IE 中访问生成的wsdl文件。
客户端需要使用java,我采用了JBuilder2006,基本有关soap代码如下:
String endpoint = "Http://localhost/ICollector/alarmsupdate?wsdl";
                 //直接引用远程的wsdl文件                //以下都是套路
                 Service service = new Service();
                  Call call = (Call) service.createCall();                 call.setTargetEndpointAddress(endpoint);                 call.setOperationName("GetSoap");
                 call.addParameter("InsertSql", org.apache.axis.encoding.XMLType.XSD_STRING,
                               javax.xml.rpc.ParameterMode.IN);//接口的参数                 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
                
                 String temp = "select getdate()";
                 call.invoke(new Object[]{temp});
运行时提示:
soap aname 后不能有路径或参数。getSoap存储过程代码如下(用作测试的):
create procedure getSoap
(
@insertsql varchar(800)
)
as
begin
exec(@Insertsql)
end我查看WSDL,定义的getSoap方法有一个
type="sqlresultstream:SqlResultStream"的返回值,sqlxml配置存储过程时自己创建的。我怀疑是返回值类型的问题。不知如何解决!
盼高手指点!不胜感激!
急盼!