参数与返回值不固定的方法如何发布成webservice

J2EE 码拜 10年前 (2015-04-12) 1244次浏览 0个评论

有如下的一个方法,如何发布成一个webservice,可以方便的让客户端调用,或者在这个方法之上如何封装,发布成一个方便使用,可维护的webservice?
      /**
 * 执行算法
 * @param arithmeticId 算法Id,指定要调用的算法
 * @param marameterMap 参数map,键-参数名,值-参数值(参数值可能有int,String……)
 * @return 算法的执行结果(可能是单个值,可能是数组,也可能是对象List)
 */
public Object calaculate(String arithmeticId, Map<String, Object> marameterMap){
//1.根据算法ID找到算法的公式
//2.将参数代入运行得到结果
//3.返回运行结果

return null;
}

参数与返回值不固定的方法如何发布成webservice
20分
发布成基于soap协议的webservice可以先定义wsdl文件及xsd文件然后通过axis2自动去生成jar包,打包成aar包然后启动服务,把地址发布出去就可以了
参数与返回值不固定的方法如何发布成webservice
引用 1 楼 shanhexiaohe 的回复:

发布成基于soap协议的webservice可以先定义wsdl文件及xsd文件然后通过axis2自动去生成jar包,打包成aar包然后启动服务,把地址发布出去就可以了

普通的参数类型和返回类型都固定的,我自然是知道怎么写的,我举例的这个方法是没有固定类型的,怎么写xsd和wsdl?

参数与返回值不固定的方法如何发布成webservice
50分
webservice一般是跨语言或应用支持强类型的,你这个不固定类型,我束手无策,坐等高手解答!
参数与返回值不固定的方法如何发布成webservice
引用 楼主 waf116 的回复:

有如下的一个方法,如何发布成一个webservice,可以方便的让客户端调用,或者在这个方法之上如何封装,发布成一个方便使用,可维护的webservice?
      /**
 * 执行算法
 * @param arithmeticId 算法Id,指定要调用的算法
 * @param marameterMap 参数map,键-参数名,值-参数值(参数值可能有int,String……)
 * @return 算法的执行结果(可能是单个值,可能是数组,也可能是对象List)
 */
public Object calaculate(String arithmeticId, Map<String, Object> marameterMap){
//1.根据算法ID找到算法的公式
//2.将参数代入运行得到结果
//3.返回运行结果

return null;
}

补充一下,我数据库里存的是有这个算法的参数类型的,根据arithmeticId可以得到这个算法的详细信息,但是各个算法的参数个数、类型都不一样,返回值也未知,所以有没有什么方法可以将这些信息自动组装成wsdl,然后在服务端实际接收到后在自己做处理?

参数与返回值不固定的方法如何发布成webservice
10分
我只用过apache的cxf, 你这情况客户端强转应该能得到真实类型吧。
参数与返回值不固定的方法如何发布成webservice
20分
要不试试<xs:any minOccurs=”0″/>
这个any不限制类型,但是没有具体实验过。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明参数与返回值不固定的方法如何发布成webservice
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!