JAXWS Web 服务入门.docx

上传人:b****5 文档编号:30739647 上传时间:2023-08-20 格式:DOCX 页数:27 大小:604.46KB
下载 相关 举报
JAXWS Web 服务入门.docx_第1页
第1页 / 共27页
JAXWS Web 服务入门.docx_第2页
第2页 / 共27页
JAXWS Web 服务入门.docx_第3页
第3页 / 共27页
JAXWS Web 服务入门.docx_第4页
第4页 / 共27页
JAXWS Web 服务入门.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

JAXWS Web 服务入门.docx

《JAXWS Web 服务入门.docx》由会员分享,可在线阅读,更多相关《JAXWS Web 服务入门.docx(27页珍藏版)》请在冰豆网上搜索。

JAXWS Web 服务入门.docx

JAXWSWeb服务入门

JAX-WSWeb服务入门

JavaAPIforXMLWebServices(JAX-WS)2.0,JSR224是JavaEE5平台的一个重要组成部分。

作为JavaAPIforXML-basedRPC1.1(JAX-RPC)的后续发行,JAX-WS使用Java技术简化了Web服务的开发任务。

它解决了JAX-RPC1.1中存在的一些问题,提供了对SOAP1.1、SOAP1.2和XML等多个协议的支持,并提供了一个工具专门支持HTTP等其他协议。

JAX-WS使用JAXB2.0进行数据绑定,并支持通过定制控制生成的服务端点接口。

通过其对注释的支持,JAX-WS简化了Web服务开发并减少了运行时JAR文件的大小。

本文档将简要介绍如何使用IDE开发JAX-WSWeb服务并在三个不同的客户机中使用它——JavaSE应用程序中的Java类以及Web应用程序中的servlet或JSP页面。

本文档所创建的三个客户机都是单独的应用程序,他们都使用相同的Web服务。

有关客户机的高级教程,请参阅JAX-WSWeb服务客户机入门。

目录

∙创建Web服务

∙设计Web服务

∙部署和测试Web服务

∙在以下应用程序中使用Web服务

oJavaSE应用程序中的Java类

oWeb应用程序中的servlet

oWeb应用程序中的JSP

 

本教程所需要的软件

开始之前,需要在您的计算机中下载并安装以下软件:

∙NetBeansIDE6.0Web&JavaEE(下载)。

∙JavaStandardDevelopmentKit(JDK)版本5.0或版本6.0(下载)。

∙GlassfishV2或TomcatWebServer,两者都可在NetBeansIDE6.0安装程序中选择安装。

创建Web服务

本练习的目标是创建一个适合所选部署容器的项目。

然后,我们将在项目中创建一个Web服务。

选择容器

可以将Web服务部署在Web容器或EJB容器中。

这由实现的选择决定。

比如说,如果计划部署到TomcatWebServer中且其中只有一个Web容器,则应该选择创建一个Web应用程序,而不是EJB模块。

1.选择File>NewProject(Ctrl-Shift-N)选项。

选择Web类别中的WebApplication选项,或者选择Enterprise类别中的EJBModule。

2.将项目命名为CalculatorWSApplication。

3.根据所使用的部署服务器,执行以下操作:

o对于GlassFish,将JavaEEVersion设置为JavaEE5.

o对于TomcatWebServer,取消选中SetSourceLevelto1.4复选框。

4.单击Finish按钮。

通过学习Java类创建Web服务

1.右键单击CalculatorWSApplication节点,然后选择New>WebService选项。

2.将Web服务命名为CalculatorWS,并在Package字段中键入org.me.calculator,然后单击Finish按钮。

Projects窗口将显示新Web服务的结构,并且可视化设计器将显示在编辑器区域。

比如说对于Web应用程序,IDE应如下所示:

设计Web服务

本练习的目标是使用IDE所生成的文件和代码执行一些有意义的任务。

我们将添加一个操作。

该操作将添加两个从客户机接收的数字。

在Web服务中添加业务逻辑

1.单击可视化设计器中的AddOperation按钮。

此时将出现一个对话框,我们可以在其中定义新操作。

2.在AddOperation对话框的上部,在Name字段中键入add并在ReturnType下拉列表中键入int。

在AddOperation对话框的下部,单击Add按钮并创建一个int类型的参数,将其命名为i。

然后,再次单击Add按钮并创建一个int类型的参数,将其命名为j。

 

IDE应如下所示:

3.单击AddOperation对话框底部的OK按钮。

 

此时,可视化设计器中将显示以下内容:

4.单击Source按钮可以查看前面步骤中生成的源代码,如下所示:

 

5.在编辑器中,将框架add操作扩展为以下内容(修改以粗体显示):

@WebMethod

publicintadd(@WebParam(name="i")inti,@WebParam(name="j")intj){

intk=i+j;

returnk;

}

从以上代码可以看出,Web服务将接收两个数字并返回他们的和:

在下一节中,我们将使用IDE测试刚才创建的Web服务。

部署和测试Web服务

将Web服务部署到Web容器时,我们可以使用IDE测试Web并查看其功能是否符合预期。

IDE中集成了GlassFish所提供的Tester应用程序,可以实现此目的。

对于TomcatWebServer,它也提供了一个类似的工具。

但是,GlassFish的Tester页面允许用户输入值并进行测试,而TomcatWebServer却不支持此功能。

在后者中,我们只能看到所部署的Web服务,而不能输入值进行测试。

目前,用于测试EJB模块是否已成功部署的工具还不可用。

测试是否成功部署到Web容器

1.右键单击项目并选择Run选项。

IDE将启动应用服务器,编译应用程序并在浏览器中打开。

2.展开WebServices节点,右键单击代表该Web服务的节点,然后选择TestWebService选项。

IDE将在浏览器中打开测试程序页面,前提是在GlassFish中部署了一个Web应用程序。

对于TomcatWebServer和EJB模块的部署,情况则有所不同。

o如果部署到GlassFish,在测试程序页面中键入两个数字,如下所示:

此时,将显示这两个数字的和:

o对于部署到TomcatWebServer情况,您将看到以下页面,其中显示Web服务已成功部署:

o右键单击项目节点,选择Properties选项,然后单击Run按钮。

根据所使用的部署服务器,执行以下操作:

▪对于GlassFish,在RelativeURL字段中键入/CalculatorWSService?

Tester。

▪对于TomcatWebServer,在RelativeURL字段中键入/CalculatorWS?

Tester。

注意:

由于已部署EJB模块的结果并未显示在浏览中,我们无法采用上述步骤处理EJB模块。

使用Web服务

部署好Web服务后,我们需要创建一个客户机来使用Web服务的add方法。

在本文中,我们将创建三个客户机:

分别为JavaSE应用程序中的一个Java类,一个servlet和Web应用程序中的一个JSP页面。

注意:

有关客户机的高级教程,请参阅JAX-WSWeb服务客户机入门。

客户机1:

JavaSE应用程序中的Java类

在本节中,我们将创建一个标准的Java应用程序。

我们将使用创建应用程序的向导再创建一个Java类。

然后,我们将在一些IDE工具中使用本教程开始部分中所创建的Web服务。

1.选择File>NewProject(Ctrl-Shift-N)选项。

选择General类别中的JavaApplication选项。

将项目命名为CalculatorWS_Client_Application。

单击Finish按钮。

2.右键单击CalculatorWS_Client_Application节点,然后选择New>WebServiceClient选项。

3.在Project窗口中,单击Browse按钮。

浏览到要使用的Web服务:

选择Web服务之后,单击OK按钮。

4.输入org.me.calculator.client作为包名,然后单击Finish按钮。

Projects窗口将显示新建的Web服务客户机,其中有一个节点为所创建的add方法。

5.双击Main.java节点在SourceEditor中打开它。

删除TODO注释,然后将上面的add节点拖动到空行中。

应该能看到以下内容:

publicstaticvoidmain(String[]args){

try{//CallWebServiceOperation

org.me.calculator.client.CalculatorWSServiceservice=neworg.me.calculator.client.CalculatorWSService();

org.me.calculator.client.CalculatorWSport=service.getCalculatorWSPort();

//TODOinitializeWSoperationargumentshere

inti=0;

intj=0;

//TODOprocessresulthere

intresult=port.add(i,j);

System.out.println("Result="+result);

}catch(Exceptionex){

//TODOhandlecustomexceptionshere

}

}

注意:

除了拖动add节点之外还有另外一种方法:

在编辑器中单击鼠标右键,然后选择WebServiceClientResources>CallWebServiceOperation选项。

6.使用有意义的数字初始化这两个int类型的变量,比如说3和4。

只需将上面的两个int变量的值从0修改为其他数字。

7.右键单击项目节点并选择Run选项。

此时,Output窗口将显示两个数字之和:

compile:

run:

Result=7

BUILDSUCCESSFUL(totaltime:

1second)

客户机2:

Web应用程序中的Servlet

在本节中,我们将创建一个新的Web应用程序,然后再创建一个servlet。

然后,我们将通过servlet来使用本教程开始部分中所创建的Web服务。

1.选择File>NewProject(Ctrl-Shift-N)选项。

选择Web类别中的WebApplication选项。

将项目命名为CalculatorWSServletClient。

单击Finish按钮。

2.右键单击CalculatorWSServletClient节点,然后选择New>WebServiceClient选项。

此时将出现NewWebServiceClient向导。

3.在Project窗口中,单击Browse按钮。

浏览到要使用的Web服务:

选择Web服务之后,单击OK按钮。

4.在Package字段中,输入org.me.calculator.client。

IDE应如下所示:

单击Finish按钮。

Projects窗口中的WebServiceReferences节点将显示新建客户机的结构,其中包括本教程前面所创建的add方法。

5.右键单击CalculatorWSServletClient项目节点,然后选择New>Servlet选项。

将servlet命名为ClientServlet,并在Package下拉菜单中键入org.me.calculator.client。

单击Finish按钮。

6.要使用servlet成为应用程序的入口点,右键单击项目节点并选择Properties选项,然后单击Run按钮并在RelativeURL中输入/ClientServlet。

单击OK按钮。

7.在SourceEditor中,删除processRequest方法主体中的注释行。

该行如下所示:

/*TODOoutputyourpagehere

接下来,删除代码注释的结束部分:

*/

在该行后面添加一些空行:

out.println("

ServletClientServletat"+request.getContextPath()+"

");

现在,将代表add操作的节点拖动到所创建的空行中。

现在,processRequest方法将如下所示(添加代码以粗体显示):

protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

response.setContentType("text/html;charset=UTF-8");

PrintWriterout=response.getWriter();

out.println("");

out.println("");

out.println("ServletClientServlet");

out.println("");

out.println("");

out.println("

ServletClientServletat"+request.getContextPath()+"

");

try{//CallWebServiceOperation

org.me.calculator.client.CalculatorWSport=service.getCalculatorWSPort();

//TODOinitializeWSoperationargumentshere

inti=0;

intj=0;

//TODOprocessresulthere

intresult=port.add(i,j);

out.println("Result="+result);

}catch(Exceptionex){

//TODOhandlecustomexceptionshere

}

out.println("");

out.println("");

out.close();

}

将i变量和j变量的值修改为比较有意义的数字,比如说3和4。

8.右键单击项目节点并选择Run选项。

 

IDE将启动服务器(如果尚未运行);编译并部署应用程序,然后将在浏览器中打开,其中会显示计算结果,如下图所示:

客户机3:

Web应用程序中的JSP页面

在本节中,我们将创建一个新的Web应用程序,然后在WebApplication向导所创建的默认JSP页面中使用该Web服务。

1.选择File>NewProject(Ctrl-Shift-N)选项。

选择Web类别中的WebApplication选项。

将项目命名为CalculatorWSJSPClient。

单击Finish按钮。

2.右键单击CalculatorWSJSPClient节点,然后选择New>WebServiceClient选项。

3.在Project窗口中,单击Browse按钮。

浏览到要使用的Web服务:

选择Web服务之后,单击OK按钮。

4.在Package字段中,输入org.me.calculator.client。

IDE应如下所示:

单击Finish按钮。

Projects窗口将显示新的Web服务客户机,如下所示:

5.在WebServiceReferences节点中,展开表示该Web服务的节点。

我们希望通过客户机调用的add操作现在已经公开。

6.将add操作拖动到客户机的index.jsp页面中,并将其放置在H1标记下面。

现在,index.jsp页面中已经生成了调用服务操作的代码,如下所示:

<%

try{

org.me.calculator.client.CalculatorWSServiceservice=

neworg.me.calculator.client.CalculatorWSService();

org.me.calculator.client.CalculatorWSport=

service.getCalculatorWSPort();

//TODOinitializeWSoperationargumentshere

inti=0;

intj=0;

//TODOprocessresulthere

intresult=port.add(i,j);

out.println("Result="+result);

}catch(Exceptionex){

//TODOhandlecustomexceptionshere

}

%>

将i变量和j变量的值从0修改为比较有意义的数字,比如说3和4。

7.右键单击项目节点并选择Run选项。

IDE将启动服务器(如果尚未运行);编译并部署应用程序,然后将在浏览器中打开,其中会显示计算结果:

JAX-WSWeb服务客户机入门

在本教程中,我们将使用NetBeansIDE6.0提供的Web服务工具对拼写检查(SpellChecker)Web服务进行分析,然后构建一个Web客户机与之进行交互。

目录

∙使用拼写检查Web服务

o创建客户机

o开发客户机

▪编写JSP页面

▪创建和编写拼写检查servlet

o部署客户机

∙学以致用

 

本教程所需要的软件

开始之前,需要在您的计算机上下载并安装以下软件:

∙NetBeansIDE6.0Web&JavaEE(下载)。

∙JavaStandardDevelopmentKit(JDK)版本5.0或版本6.0(下载)。

∙GlassfishV2或TomcatWebServer,两者都可在NetBeansIDE6.0安装程序中选择安装。

客户机界面如下所示,其中含有从Web服务接收的所有数据:

到本教程结束时,应用程序的功能将包括提供待检查文本、对Web服务调用操作和呈现结果。

IDE将生成联系Web服务及发送文本所需要的所有代码。

拼写检查Web服务将处理其余内容,它将识别拼写错误的单词并提供一个替换词的建议列表。

注意:

本教程所使用的拼写检查Web服务由CDYNECorporation提供。

CDYNE开发和销售一整套综合的数据增强、数据质量和数据分析Web服务及业务智能集成,并为之提供支持。

拼写检查Web服务是CDYNE所提供的Web服务之一。

注意,对于基于一个或多个Web服务的应用程序,其功能取决于这些Web服务的可靠性和可用性。

但是,CDYNE的FAQ指出,其产品的目标为“100%可用性”,并且在“自然灾难、恐怖活动或其他灾难中,Web服务数据流将传递到我们的二级数据中心”。

NetBeans感谢CDYNE为本教程所做的贡献及对其发展的支持。

使用拼写检查Web服务

要使用Web服务,我们需要创建一个Web服务客户机。

针对创建Web服务客户机,NetBeansIDE6.0提供了一个客户机创建工具:

WebServiceClient向导可以生成查找Web服务的代码。

它还提供了一些工具用于开发已创建的Web服务客户机——该工作区域由Projects窗口中的节点组成。

这些工具是标准NetBeansIDE安装的一部分,它们都是直接可以开箱即用的,而不需要任何插件。

创建客户机

在本节中,我们将使用一个向导通过Web服务的WSDL文件生成Java对象。

1.选择File>NewProject(Ctrl-Shift-N)选项。

在Categories列表中,选择Web选项。

在Projects列表中,选择WebApplication选项。

单击Next按钮。

将项目命名为SpellCheckService,并确保指定了合适的服务器作为目标服务器。

有关详细信息,请参见“入门”一节。

单击Finish按钮。

2.在Projects窗口中,右键单击SpellCheckService项目节点并选择New>Other选项。

在NewFile向导中,选择WebServices>WebServiceClient选项。

在WebServiceClient向导中,将以下URL指定给Web服务:

 

如果位于防火墙后面,则需要指定一个代理服务器——否则无法下载WSDL文件。

如果这样的话,单击WebServiceClient向导中的ProxySettings并设置代理主机和端口号。

3.输入beans.end2end.check.client作为包名。

客户机对象将生成到指定的包名中。

IDE应如下所示:

4.单击Finish按钮。

在Projects窗口的WebServiceReferences节点中,您应看到以下内容:

Projects窗口中的内容表示,服务名为check的Web服务提供了一个CheckTextBody操作供应用程序使用。

CheckTextBody操作将检查字符串中的拼写错误,然后返回数据供客户机处理。

在整篇教程

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

当前位置:首页 > 解决方案 > 商业计划

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

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