Web Dynpro访问用NWDS创建的Web Service.docx
- 文档编号:891773
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:27
- 大小:910.54KB
Web Dynpro访问用NWDS创建的Web Service.docx
《Web Dynpro访问用NWDS创建的Web Service.docx》由会员分享,可在线阅读,更多相关《Web Dynpro访问用NWDS创建的Web Service.docx(27页珍藏版)》请在冰点文库上搜索。
WebDynpro访问用NWDS创建的WebService
WebDynpro访问用NWDS创建的WebService
一、用NWDS创建WebService
使用NWDS可以为三种来源创建WebService,它们是:
•为EJB创建WebService
•为Java类创建WebService
•为PortalService创建WebService
在本文中,我们将讨论如何通过Java类创建WebService。
1.1.步骤
(一)准备好Java类。
HelloWebService.java
publicclassHelloWebService
{
publicStringhelloWebService(StringuserName){
returnuserName+",欢迎你进入WebService的世界!
";
}
}
(二)创建VirtualInterface。
进入WebService透视图,在JavaExplorer上选择Java类,如HelloWebService.java。
然后在上下文菜单里面选择NewVirtualInterface。
VirtualInterfacee是WebService对外的可见部分。
通过VI,可以定义一个implementation的多个Views并将它们分别发布成WebService。
当你创建一个VirtualInterface时,可以隐藏或者更名operations和parameters。
例如,可以将描述名称替代技术名称。
可以为parameters定义defaultvalues,或者转换parametertypes。
弹出VirtualInterface向导。
给出VirtualInterface名。
选择所要暴露的方法。
Field:
Procedure:
NewName
给参数一个新的名字
NewTypeName
选择一个新的数据类型。
可以为原始数据类型做一个标准转换。
是Java的原始数据类型啊。
Fixedvalue
可以固定初始值
完成后得到VI:
(三)在刚生成的VI上选择NewWebServiceDefinition。
给出WebServiceDefinition名。
(四)在项目鼠标右键选择NewWebServiceDeploymentDescriptor,如HelloWebService。
我们可以看到打开WSDeploymentDescriptorEditor。
(五)选择WebServiceConfigurations节点,然后点击下面的Add按钮。
选择WSD,给出WebService的名字。
完成后生成WebService。
(六)添加WSConfiguration。
选择刚才生成的WebService节点,如HelloWebService,然后点击下面的Add按钮。
输入数据就可以了。
/HelloWebService/HelloWS是WebService的路径。
(七)打包成EAR文件。
(八)部署EAR文件。
1.2.在浏览器中查看WebService
在浏览器中输入http:
//10.21.17.3:
50000/HelloWebService/HelloWS。
打开下面页面:
点击Test链接。
打开下面页面:
点击helloWebServiceJavaLangString链接。
在打开的页面中输入信息,然后点击Send按钮,就可以看到测试结果,如下图所示:
可以看到测试结果。
二、WebDynpro访问WebService
利用WebDynpro提供的Model来访问WebService。
所访问的WebService是先前我们创建的HelloWebService。
WebDynpro有两种模型用来访问WebService,它们是:
•AdaptiveWebServiceModel
•WebServiceModel
SAP推荐使用AdaptiveWebServiceModel,但是现在我还不会,本文使用WebServiceModel做WebDynpro与WebService的连接。
2.1.步骤
(一)创建WebDynpro项目。
创建名为HelloWebServiceComp的Component。
创建相应的View、Windows和Application。
(二)创建Model。
在WebDynproModels上右键选择CreateModel。
弹出NewModel向导:
选择ImportWebServiceModel。
然后下一步:
输入ModelName和ModelPackage,并且选择WSDL的源,在这里我们是通过URL获得的,因此选择LocalFileSystemorURL。
这里需要注意的是ModelPackage指定的时候,包中必须为空,很奇怪,不知道为什么。
下一步:
输入Wsdl,这里输入的值可以在通过浏览器访问WebService时可以看到。
继续下一步:
完成。
WebDynproModels中有变化:
(三)创建组件Context并且将其绑定到Model上。
用
添加刚才创建的Model到UsedModels中,在这里要在弹出的对话框中选择所要添加的Model,我们这里的是HelloWSModel。
在组件控制器上右键选择TemplateApply:
弹出对话框,选择ServiceController:
下一步:
选择那么一长串东西,下一步:
全选,请注意,这里可以为Context节点改名字,建议改短点,好看。
改名的结果为:
继续下一步:
如果需要执行该Model,就要生成该方法,需要给定方法名,在这里输入方法名。
完成,搞定。
看,这里有变化:
多了个从组件控制器到模型的箭头,这就是绑定关系。
双击箭头,查看绑定关系:
组件控制器中也有变化,看:
多了一些Context,这里的Context与模型中的结构是一样的。
组件控制器中代码也有变化,如:
wdDoInit方法变化啦:
publicvoidwdDoInit()
{
//@@beginwdDoInit()
//$$beginServiceController(-182154393)
wdContext.nodeHelloWSRequest().bind(newRequest_HelloWebServieViDocument_helloWebServiceJavaLangString());
//$$end
//@@end
}
生成了executeHelloWSRequest方法:
//@@beginjavadoc:
executeHelloWSRequest()
/**Declaredmethod.*/
//@@end
publicvoidexecuteHelloWSRequest()
{
//@@beginexecuteHelloWSRequest()
//$$beginServiceController(-1899710666)
IWDMessageManagermanager=wdComponentAPI.getMessageManager();
try
{
wdContext.currentHelloWSRequestElement().modelObject().execute();
wdContext.nodeHelloWSResponse().invalidate();
}
catch(Exceptione)
{
manager.reportException(e.getMessage(),false);
}
//$$end
//@@end
}
(四)创建ViewContext与组件控制器之间的映射
创建映射后成这样了:
(五)在View中创建输入框。
打开HelloWebServiceView,在Outline中,弹出上下文菜单,选择ApplyTemplate:
选择Form:
下一步:
选择所有的Context,下一步:
将userName挪到上面去,Result到下面了。
点击完成。
成这样了:
继续这样的过程添加按钮,不同的是选择Template时,选择的是ActionButton:
下一步:
定义好Action和Event的名字,请注意,这些定义的名字会在代码中出现。
其中onActionExeButton是当点击按钮的动作发生时处理事件的EventHandler。
动作为ExeButton。
下一步:
在选择第三步定义的方法,使点击该按钮后自动执行这个方法。
完毕后点击完成。
页面成这样了:
请注意,这里为Button改了一下文字。
HelloWebServiceView中生存了onActionExeButton方法:
//@@beginjavadoc:
onActionExeButton(ServerEvent)
/**Declaredvalidatingeventhandler.*/
//@@end
publicvoidonActionExeButton(com.sap.tc.webdynpro.progmodel.api.IWDCustomEventwdEvent)
{
//@@beginonActionExeButton(ServerEvent)
//$$beginActionButton(-708658474)
wdThis.wdGetHelloWebServiceCompController().executeHelloWSRequest();
//$$end
//@@end
}
从代码可知,该方法调用了组建控制器中的executeHelloWSRequest方法。
(六)将WebDynpro工程部署到服务器中即可完成。
运行结果如下:
输入userName,点击按钮:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Web Dynpro访问用NWDS创建的Web Service Dynpro 访问 NWDS 创建