Web Dynpro访问用NWDS创建的Web Service.docx

上传人:b****2 文档编号:16914197 上传时间:2023-04-24 格式:DOCX 页数:27 大小:910.54KB
下载 相关 举报
Web Dynpro访问用NWDS创建的Web Service.docx_第1页
第1页 / 共27页
Web Dynpro访问用NWDS创建的Web Service.docx_第2页
第2页 / 共27页
Web Dynpro访问用NWDS创建的Web Service.docx_第3页
第3页 / 共27页
Web Dynpro访问用NWDS创建的Web Service.docx_第4页
第4页 / 共27页
Web Dynpro访问用NWDS创建的Web Service.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Web Dynpro访问用NWDS创建的Web Service.docx

《Web Dynpro访问用NWDS创建的Web Service.docx》由会员分享,可在线阅读,更多相关《Web Dynpro访问用NWDS创建的Web Service.docx(27页珍藏版)》请在冰豆网上搜索。

Web Dynpro访问用NWDS创建的Web Service.docx

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,点击按钮:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1