BOS创建facade,发布webservice,idea 解析wsdl文件成Java,配置wsdl文件在服务端。原创
金蝶云社区-Heaven
Heaven
9人赞赏了该文章 585次浏览 未经作者许可,禁止转载编辑于2023年08月25日 10:26:21
  1. 创建facade

    切换到金蝶BOS设计开发工具视图,在app包下右键新建功能

    image.png

    双击新建的功能,点击方法,新增方法和参数

    image.png

    右键新增功能,点击发布成Java代码

    image.png

    查看生成的Java代码,转到Java开发视图

    image.png

    回到金蝶BOS设计开发工具视图,右键新增功能,点击发布webservice

image.png

选中要发布的方法,填入发布的位置(位置随便写,后面配置即可)

image.png


2.配置,将生成的Java代码以及wsdl文件放到指定位置,并配置config文件


(适用集群端口和实例端口,推荐)

  •        启用安全模式

1)修改eas\Server\eas\server\profiles\server*\config\webservice.propetties文件,另起一行,添加参数如下:(注意参数名和值不要写错)

2)isRomoteLocate=false

3)在服务端server-config.wsdd(路径:eas/server/deploy/eas.ear/web.war/WEB-INF, 如果缓存更新不及时,手动删除web的缓存目录/apusic/domains/server*/deploy/EAS/tmpfiles)全局参数部分,添加scope的范围:

<parameter name="scope" value="session"/>

        保证服务端返回设置jsessionid的cookie

4)在项目存储目录:中,新建webservice文件夹,将生成的Java文件放在其中

image.png

这样刷新BIM中Java视图的包,便可生成新的目录以及文件

image.png


3.BIM切换到金蝶BOS业务建模工具,选中项目,运行测试

image.png

4.网址输入:

localhost:56898/ormrpc/services


下载两个文件

image.png


5.打开idea,新建Java项目,拷贝这两个文件到项目中

image.png


6.将wsdl文件解析成Java文件

1)右键项目,选择add Framework support(增加框架支持)

image.png


2)

image.png

3)选中两个wsdl文件

image.png

7.编写测试类(测试类中的内容遍是调用发布的功能,代码在下面)

image.png


public static void main(String[] args) throws Exception {
        //调用登陆接口
        Service s=new Service();
        Call call=(Call)s.createCall();
        call.setOperationName("login");
        call.setTargetEndpointAddress("http://localhost:56898/ormrpc/services/EASLogin?wsdl");

        call.setReturnType(new QName("urn:client","WSContext"));
        call.setReturnClass(WSContext.class);
        call.setReturnQName(new QName("","loginReturn"));
//超时
        call.setTimeout(Integer.valueOf(1000*600000*60));
        call.setMaintainSession(true);
//登陆接口参数
        WSContext rs=(WSContext)call.invoke(new Object[]{"user", "lingy123", "eas", "SFdemo01", "l2",
                Integer.valueOf(0)});
        if(rs. getSessionId() == null){
            throw new Exception("login fail");
        }
        System.out.println("session:"+rs.getSessionId());

        WSMytestFacadeSrvProxy wsesProxy = null;
        try {
            wsesProxy = new WSMytestFacadeSrvProxyServiceLocator().getWSMytestFacade();
            ((Stub)wsesProxy).setHeader("http://login.webservice.bos.kingdee.com","SessionId",
                    rs.getSessionId());
            String  test =  wsesProxy.myFunction("琳琳");
            System.out.println("test"+test);
        } catch (AxisFault axisFault) {
            axisFault.printStackTrace();
        } catch (RemoteException e) {
            e.printStackTrace();
        } catch (ServiceException e) {
            e.printStackTrace();
        }
    }

结果:

image.png

小贴士:里面的参数说明可参考EAS登录接口说明文档

赞 9