WebService开发和调用原创
6人赞赏了该文章
1,787次浏览
编辑于2022年06月07日 16:30:04
本案例使用 idea进行开发,是开发环境。
如果迁移至生产环境,需要把class文件打包成jar,并把案例中的xml文件也打进jar包里面。
把应用打成补丁包,然后在导出页面中上传jar包。
开发步骤
编写接口
实例化接口
编写xml配置文件
MC上配置第3步的xml文件
开发步骤详情
1.编写接口
package kd.ecos.webservice; import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface WrxWebService { String helloWrx(@WebParam(name = "yourname")String name); }
2.实例化接口
package kd.ecos.webservice; public class WrxWebServiceImpl implements WrxWebService{ @Override public String helloWrx(String name) { return name + " say hi kingdee!"; } }
3.编写xml文件
resources下面新建wrx_kwsconfig.xml文件
<?xml version="1.0" encoding="utf-8"?> <root> <service name="helloWrx" class="kd.ecos.webservice.WrxWebServiceImpl"> </service> </root>
整体文件目录结构如下图:
4.MC配置
进入管理中心,即MC。进入环境公共配置。
搜索kws,找到kws.filepath.config。如果没有找到,就在/root/config/common/prop/pjtest.properties路径下面,手动新增一个 编码为 kws.filepath.config ,值为 /wrx_kwsconfig.xml 的配置项。
/wrx_kwsconfig.xml这个配置项就是第3步时,新增的那个xml文件
配置之后,需要发布集群:
5.效果
发现已经有了新增的webservice服务。
调用WebService
代码使用axis1.4来调用webservice,这里仅作为一个例子,关于webservice的调用方式有很多种,其他调用方式请开发者自行搜索。
代码如下
package kd.bos.debug.mservice; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.encoding.XMLType; import org.apache.axis.client.Call; import org.apache.axis.client.Service; public class TestKwsAxis { public static void main(String[] args) { callMyCustomWebService(); } /* * 使用axis框架调用WebService接口,我用的是axis1.4 * jar包可以在mvnrepository下载:mvnrepository.com/artifact/org.apache.axis/axis/1.4 */ private static void callMyCustomWebService () { try { // 金蝶云苍穹的WebService基于SOAP、WSDL String endpoint = "http://172.20.14.63:8080/ierp/kws/helloWrx?wsdl"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(endpoint); String parametersName = "yourname"; // 参数名//对应的是 String helloWrx(@WebParam(name = "yourname")String yourname); // call.setOperationName("helloWrx"); // 调用的方法名//当这种调用不到的时候,可以使用下面的,加入命名空间名 call.setOperationName(new QName("http://webservice.ecos.kd/", "helloWrx"));// 调用的方法名 call.addParameter(parametersName, XMLType.XSD_STRING, ParameterMode.IN);//参数名//XSD_STRING:String类型//.IN入参 call.setReturnType(XMLType.XSD_STRING); // 返回值类型:String String message = "WoWrx"; String result = (String) call.invoke(new Object[] { message });// 远程调用 System.out.println("TestKws result: " + result); } catch (Exception e) { System.err.println(e.toString()); } } }
调用结果
打印日志,调用成功!
赞 6
6人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读