BOS_WebService开发指南
- 格式:doc
- 大小:1.83 MB
- 文档页数:16
1 BOS WebService开发指南
LE开发部 冯侃 2014-05-19
一. 建立Façade或者Entity,本案例中以Façade为例,Entity可以参考
在BOS Studio工具中建立façade,在façade加入相应的调用方法,可以加入多个。将新建的facade发布,生成相应的JAVA代码 (注意:发布时要勾选“生成配臵文件”)。
详细操作,及需要注意的地方,如下面所示:
1、如下图所示,在路径com.kingdee.eas.custom.webinterface.app下,新建方法façade:PublicServiceFacade.façade。
2、如下图所示,进入到PublicServiceFacade.façade方法页签中,点击右侧的“增加”按钮,在“详细信息”分类下面填入:名称(inputData)、别名(inputData)、描述(inputData)、返回值类型(String),其它为默认值。在“参数”分类下面填入:名称(StringXML)、数据类型(String)、别名(StringXML)、描述(StringXML)。此时方法添加完毕,保存PublicServiceFacade.façade。
二.在BOS Studio中选择Façade发布WebService 2
1、如下图所示,在“金蝶BOS设计开发工具透视图”模式中,选中PublicServiceFacade.façade右击鼠标,弹出下拉框,选择“发布WebService”操作,会弹出下图二中的对话框:“请选择要发布的方法”。这里:勾选“全选”复选框、勾选“追加到配臵文件”复选框、在“JAVA发布目录”中填入D:\Tmps路径、在“WSDL发布目录”中填入D:\Tmps路径。点击“完成”按钮。在控制台中会打印出相关提示语句,见本组图三显示的内容。
2、“发布WebService”操作成功后,会在上面图二的路径中,自动生成一个.wsdd后缀的文件。如下 3 图中所示的为:D:\Tmps\PublicServiceFacade.wsdd。
3、如下图所示,在“金蝶BOS设计开发工具透视图”模式中,选中PublicServiceFacade.façade右击鼠标,弹出下拉框,选择“发布”操作,见下面的图一所示,生成相应的JAVA代码,切换到“Java透视图”模式,刷新该工程,可见生成的JAVA代码,见下面图二。
4
4、代码整理工作一:由于BOS7.0.1自身的BUG缺陷引导致,无法发布生成一重要接口方法,这里我们只能手工添加,其包路径为:com.kingdee.eas.custom.webinterface.app.webservice,注意:该包路径的由来是在PublicServiceFacade.façade路径:com.kingdee.eas.custom.webinterface.app的基础上加上 webservice包而成。所以这里新建包:com.kingdee.eas.custom.webinterface.app.webservice,在其中新建类:WSPublicServiceFacadeSrvProxy.java,详细的代码如下(注意:代码中红色标注单词的对应关系,其它都为通用的,其它webservice接口程序该类的新建,直接可以将标红处,换成新接口的定义的类名即可):
public class WSPublicServiceFacadeSrvProxy {
public void inputData(String StringXML) throws WSInvokeException {
try{ 5 getController().inputData(StringXML);
}catch (Throwable e) {
throw new WSInvokeException(e);
}
}
private IPublicServiceFacade getController(){
try {
if ((WSConfig.getRomoteLocate() != null) && (WSConfig.getRomoteLocate().equals("false"))) {
Message message = MessageContext.getCurrentContext().getRequestMessage();
SOAPEnvelope soap = message.getSOAPEnvelope();
SOAPHeaderElement headerElement = soap.getHeaderByName(WSConfig.loginQName, WSConfig.loginSessionId);
String SessionId = headerElement.getValue();
return (IPublicServiceFacade)BOSObjectFactory.createBOSObject(SessionId,
"com.kingdee.eas.custom.PublicServiceFacade");
}
return (IPublicServiceFacade)BOSObjectFactory.createRemoteBOSObject(WSConfig.getSrvURL(),
"com.kingdee.eas.custom.PublicServiceFacade", IPublicServiceFacade.class);
}catch (Throwable e) {
}
return (IPublicServiceFacade)ORMEngine.createRemoteObject(WSConfig.getSrvURL(),
"com.kingdee.eas.custom.PublicServiceFacade", IPublicServiceFacade.class);
}
private BeanConvertHelper getBeanConvertor() {
return new BeanConvertHelper();
}
}
5、代码整理工作二:将路径为com.kingdee.eas.custom.webinterface下,PublicServiceFacade.java文件复制一份,粘贴至路径:com.kingdee.eas.custom下,可以让程序调用得到该接口程序,如下图所示:
6
二. 配置服务器相关配置文件
1、服务器端配臵文件:主要更新服务器目录D:\Kingdee\eas\server\deploy\eas.ear下,web.war中的相关调用配臵文件,web.war文件见下面所示:
2、web.war包文件增加.wsdd应用:打开web.war压缩文件,进入到WEB-INF目录下,将生成的wsdd格式文件PublicServiceFacade.wsdd放在该目录下,详见下图所示:
3、web.war包文件增加应用关联关系:打开web.war压缩文件,进入到WEB-INF目录下,将配臵文件server-config.wsdd拷贝出来,由于该文件格式的需要,所以此处用UltraEdit32工具打开,加入相关配臵文件。
具体方法为:用UltraEdit32工具打开步骤2中添加的PublicServiceFacade.wsdd文件,将其中自动生成的标准配臵文件拷贝出来,具体代码见下图一所。示然后粘贴至server-config.wsdd文件中的指定 7 地方,具体见下图二所示(为了保证编码的统一性,此处全部都应该用UltraEdit32工具进行编辑)。
修改完毕server-config.wsdd文件。将修改完毕的server-config.wsdd覆盖web.war中WEB-INF目录下的配臵文件server-config.wsdd,完成其web.war包增加配臵关联。
value="com.kingdee.eas.custom.webinterface.app.webservice.WSPublicServiceFacadeSrvProxy"/>
languageSpecificType="java:com.kingdee.bos.webservice.WSBean"/>
xmlns:myNS="urn:client.publicservicefacade"
languageSpecificType="java:com.kingdee.bos.webservice.WSInvokeException"/>
4、元数据打包,放臵于服务器端:打包成,sp-bim-metas_PublicWebservice.jar压缩文件。具体细节为以下三点所示:
(1)元数据打包:注意,此处严格遵守打包的路径一一对应的关系。 8
(2)配臵参数打包:此处是应该注意的,一般的情况下容易忘记,方法façade和实体一样也要加入相关的注入文件,这里我们在工程文件路径D:\EASWorkspaces\demo\deployed_metas中找到对应的配臵文件facade_pkmapping.properties。将该文件打包至sp-bim-metas_PublicWebservice.jar包中,具体的见下图所示:
(3)放臵服务器路径:将做好的补丁包sp-bim-metas_PublicWebservice.jar放于以下服务器,文件路径中:
D:\Kingdee\eas\server\deploy\fileserver.ear\easWebClient\metas\sp
D:\Kingdee\eas\server\metas\sp
5、代码打包,放臵于服务器端:打包成,eas_sp_PublicWebservice.jar文件,具体细节为以下二点所示:
(1)代码打包:注意,此处严格遵守打包的路径一一对应的关系。