日期:2014-05-18  浏览次数:20634 次

java通过soap开发sqlxml公布的web服务!(急,如果可以解决,可以再多给1000分)
客户使用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配置存储过程时自己创建的。我怀疑是返回值类型的问题。

不知如何解决!
盼高手指点!不胜感激!
急盼!


------解决方案--------------------
运行时报错:
soap vname 后不能有路径或参数。
------解决方案--------------------
应该是endpoint = "Http://localhost/ICollector/alarmsupdate ";
------解决方案--------------------
是吗?
这个我试一下,还有什么其他的可能吗?