MyEclipse6Java开发中文教程 调试 Java web service实现 152基于代码方式创建 Web service项目 从 MyEclipse50起引入了一种新的项目名为 Web Services Project。这种项目对 MyEclipse Web Project进行了扩展,来支持更多的概念包括 web services配置,开发和 发布。本节内容将会展示如何使用 MyEclipse Web Services Project向导来创建和配置新 的 web service项目。我们将会进行下列步骤的操作 创建 Web Services Project 在项目的 web. xm|文件中配置 XFire Servlet ●创建 XFire配置文件 services. xml 将 MyEclipse-XFire类库添加到项目的构造路径中 ·在项目文件 project中添加特殊的 MyEclipse web项目构造器,这样能够发布项 目时自动将文件 services. xm发布到正确的位 <webrooteeb-INF/classes/META-INF/xfire/ ●创建 Web service客户端 1521系统需求 本章内容的练习仅需要 MyEclipse6即可,测试发布时需要 Tomcat服务器。另外必须 使用1.5或者更高版本的JDK,并且项目的编译版本需要设置成Java5或者更高。 1522创建 Helloworldservice项目 首先要启动 Web Service Project向导。该向导由三个页面组成,第一页设置Web 项目配置的详细信息;第一页设置 XFire的配置详细信息;第三页配置需要添加到项目构造 路径中的 XFire类库。 1.启动 Web Services Project向导 首先确保使用的透视图是 My Eclipse Java Enterprise,接着选择菜单File>New>Web Service Project,稍后即可启动创建项目的向导对话框。注意不要选成创建 Web Project 的菜单项。 2在第一页完成 Web Project信息的设置然后选择Next按钮继续 在弹出的对话框的 Project Name中输入 Helloworld service,然后选中J2 EE Specification Level下面的 Java ee50单选钮,接着点击对话框底部的Next按钮进入下一页。此页设 置如图154所示。 3.在向导的第二页可以设置 XFire servlet和 service. xm配置文件的详细信息。可以 完全保持默认值然后点击Next按钮进入最后一页的设置即可。 XFre这个 Servlet专门用来根据 servIce. Xn中的配置来生成WSDL并提供 Web service 服务功能,而且支持多种整合方式,例如在 Servlet class下面有五种可以选择的: a)org.codehaus.xfire.transporthttpXfireConfigurableServlet b)org.codehaus.xfire.transporthttpXfireServlet c)org.codehaus xfire loom. oomXFireServlet 刘长炯著
MyEclipse 6 Java 开发中文教程 6 刘长炯著 • 调试 Java web service 实现 15.2 基于代码方式创建 Web Service 项目 从 MyEclipse 5.0 起引入了一种新的项目名为 Web Services Project。这种项目对 MyEclipse Web Project 进行了扩展,来支持更多的概念包括 web services 配置,开发和 发布。本节内容将会展示如何使用 MyEclipse Web Services Project 向导来创建和配置新 的 web service 项目。我们将会进行下列步骤的操作: z 创建 Web Services Project z 在项目的 web.xml 文件中配置 XFire Servlet z 创建 XFire 配置文件 services.xml z 将 MyEclipse-XFire 类库添加到项目的构造路径中 z 在项目文件.project 中添加特殊的 MyEclipse web 项目构造器,这样能够发布项 目时自动将文件 services.xml 发布到正确的位置,例如: <webroot>/WEB-INF/classes/META-INF/xfire/ z 创建 Web Service 客户端 15.2.1 系统需求 本章内容的练习仅需要 MyEclipse 6 即可,测试发布时需要 Tomcat 服务器。另外必须 使用 1.5 或者更高版本的 JDK,并且项目的编译版本需要设置成 Java 5 或者更高。 15.2.2 创建 HelloWorldService 项目 首先要启动 Web Service Project 向导。该向导由三个页面组成,第一页设置 Web 项目配置的详细信息;第二页设置 XFire 的配置详细信息;第三页配置需要添加到项目构造 路径中的 XFire 类库。 1. 启动 Web Services Project 向导 首先确保使用的透视图是 MyEclipse Java Enterprise,接着选择菜单 File > New > Web Service Project,稍后即可启动创建项目的向导对话框。注意不要选成创建 Web Project 的菜单项。 2. 在第一页完成 Web Project 信息的设置然后选择 Next 按钮继续 在弹出的对话框的Project Name中输入HelloWorldService,然后选中J2EE Specification Level 下面的 Java EE 5.0 单选钮,接着点击对话框底部的 Next 按钮进入下一页。此页设 置如图 15.4 所示。 3. 在向导的第二页可以设置 XFire servlet 和 service.xml 配置文件的详细信息。 可以 完全保持默认值然后点击 Next 按钮进入最后一页的设置即可。 XFire 这个 Servlet 专门用来根据 service.xml 中的配置来生成 WSDL 并提供 Web Service 服务功能,而且支持多种整合方式,例如在 Servlet class 下面有五种可以选择的: a) org.codehaus.xfire.transport.http.XFireConfigurableServlet b) org.codehaus.xfire.transport.http.XFireServlet c) org.codehaus.xfire.loom.LoomXFireServlet
MyEclipse6Java开发中文教程 d)org.codehaus xfire plexus. PlexusXFire Servlet e)org.codehausxfire spring XFire SpringServlet 分别支持不同类型的 Web service整合策略,不过默认情况下是和 Spring整合的。此页 的设置如图155所示。同时在这一页还可以修改的有配置文件目录和配置文件名字 a Hew Web Services Project New Web Service Project New web service project creati on details Web Project Details Project Name HelloworldService cati on 回 Use default1 ocation Directory E: \ workspace \HelloWorldservice Source folder src Web root folder WebRoot Context root URL /Helloworldservice J2EE Specificati on Level ⊙ Java EE5.0○J2E1.4○JzE21.3 图154新建 Web service项目向导的第一页设置 Hew eb Services Project 回区 New Web Services Project Create xfire servlet and services, xml Create fire servlet ervlet name Fireservlet Servletclass:orgcodehaus.xfire,transporthttpXFIreconFigurableservlety Servlet mapping: services/* Fire Web Services Confi guration Configuration Folder WebServices Configuration File Name: services. xml 图155新建 Web Service项目向导的第二页: XFire Servlet和 service.xml 4.向导的第三页是选择添加到项目构造路径中的类库。我们可以根据实际自己的需要 来添加类库。不过默认情况下必须选中 XFire Core Library,除非你想自己下载XFie 类库然后手工加入。如果计划开发一个使用 XFire的客户端应用,那么还需要选中 XfirehttpclientLibraries 向导结束后这些类库将会添加到项目的构造路径中去,不会复制任何JAR文件到项目的目 录中。按照图156那样进行设置,最后点击 Finish按钮结束向导 稍等片刻后,项目就创建完成了。图157展示了新创建好的Web服务项目的目录结构 刘长炯著
MyEclipse 6 Java 开发中文教程 7 刘长炯著 d) org.codehaus.xfire.plexus.PlexusXFireServlet e) org.codehaus.xfire.spring.XFireSpringServlet 。分别支持不同类型的 Web Service 整合策略,不过默认情况下是和 Spring 整合的。此页 的设置如图 15.5 所示。同时在这一页还可以修改的有配置文件目录和配置文件名字。 图 15.4 新建 Web Service 项目向导的第一页设置 图 15.5 新建 Web Service 项目向导的第二页:XFire Servlet 和 service.xml 4. 向导的第三页是选择添加到项目构造路径中的类库。我们可以根据实际自己的需要 来添加类库。不过默认情况下必须选中 XFire Core Library,除非你想自己下载 XFire 类库然后手工加入。如果计划开发一个使用 XFire 的客户端应用,那么还需要选中 XFire HTTP Client Libraries。 向导结束后这些类库将会添加到项目的构造路径中去,不会复制任何 JAR 文件到项目的目 录中。按照图 15.6 那样进行设置,最后点击 Finish 按钮结束向导。 稍等片刻后,项目就创建完成了。图 15.7 展示了新创建好的 Web 服务项目的目录结构
MyEclipse6Java开发中文教程 可以注意到这个项目和标准的 MyEclipse Web项目的结构非常的像,只是额外加了些 XFire 的配置信息。 d Rev eb Services Project project Library Configuration Add MyEclipse XFire and User libraries to project Select the libraries to add to project buildpath Show:回 MyEclipse Libraries□ User Libraries XFire 1.2 Core Libraries -<MyEclipse-Library) B XFire 1. 2 JAXB2 Libraries -CMyEclipse-Library ary) XfiRe 1.2 HttP Client liBraries -yeclipse-lib D XFire 1.1 JAXB1 Libraries (deprecated)-MMyEclipse-Library> d XFire 1.2 XMLBeans Libraries - MyEclipse-Library> J XFire 1.2 Security Libraries-MyEclipse-Library> View and edit libraries 图156向导最后一页的设置信息《 d HelloWorldservice bs +)E JRE System Library [MyEclipse60] +)E Java EE 5 Librari t-a XFire 1.2 Core Libraries 冒 eboot +-C META-INF 日@WEB-工F web. xml 日 WebServices 图157 Web service项目的目录结构 接下来让我们看看 web. xm的代码清单: <?xmlversion="1.0 encoding="UTF-8?> <web-appxmlns="http://java.suncom/xml/ns/javaee xmlns:xsi=http://www.w3.org/2001/xmlschema-instance"version="2.5" schemalocation="http://iava.suncom/xml/ns/javaee http://java.suncom/xml/ns/javaee/web-app25.xsd" <servlet-name>XFireServlet</servlet-name> <servlet-class>org. codehaus xfire spring. XFireSpring Servlet</servlet class> <load-on-startup>0</load-on-startup> </servlet> 刘长炯著
MyEclipse 6 Java 开发中文教程 8 刘长炯著 可以注意到这个项目和标准的 MyEclipse Web 项目的结构非常的像,只是额外加了些 XFire 的配置信息。 图 15.6 向导最后一页的设置信息 图 15.7 Web Service 项目的目录结构 接下来让我们看看 web.xml 的代码清单: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servletclass> <load-on-startup>0</load-on-startup> </servlet>
MyEclipse6Java开发中文教程 <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index. jsp</welcome-file> </welcome-file-list> </web-app> 。此文件定义了一个监听地址为/ services/的Web服务监听地址,将来的Web服务都会发 布到这个子目录下。再来看看 services. xm的代码清单: <?xml version="1.0"encoding="UTE-8"? <beansxmlns="http://xfire.codehaus.org/config/1.0"> 。其实,这是一个和 Spring的配置文件很相似的结构。 1523创建 Web service 本小节将创建一个简单的 Web service。首先,需要启动创建 Web service的向导。点 击工具栏上的碰新建 Web service按钮,即可启动向导。或者选择菜单Fie>New > Other.,在New对话框中展开 MyEclipse> Web services> Web service,之后也可 以启动创建向导。启动的向导对话框第一页如图158所示。在这一页有两种开发模式 种是从底到上的,也就是从 Java bean生成的方式;另一种则是从顶到下的,从WSDL文 档生成的方式。那么本例中选中单选钮 Create web service from java bean并选中复选 框 Create new Java bean,然后点击Next按钮进入第二页的设置。因为手工编写WSDL 文件相当的困难,所以对于Java开发人员来说使用第一种方式比较简便, Hey eb Service 回囟 New Web Service Web services project: HelloworldService Web Service Creation scenario Create web service from Java bean (Bottom-up scenario) 回 Create new Java bean CReate web service from WSDL document (Top-down scenario ⑦ < Back Next EinishCancel 图158新建 Web service向导第一页 在第二页,用来设置 Web Service的详细信息,这一页需要修改的地方。第一个是在 刘长炯著
MyEclipse 6 Java 开发中文教程 9 刘长炯著 <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 。此文件定义了一个监听地址为/services/*的 Web 服务监听地址,将来的 Web 服务都会发 布到这个子目录下。再来看看 services.xml 的代码清单: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> </beans> 。其实,这是一个和 Spring 的配置文件很相似的结构。 15.2.3 创建 Web Service 本小节将创建一个简单的 Web Service。首先,需要启动创建 Web Service 的向导。点 击工具栏上的 新建 Web Service 按钮,即可启动向导。或者选择菜单 File > New > Other...,在 New 对话框中展开 MyEclipse > Web Services > Web Service,之后也可 以启动创建向导。启动的向导对话框第一页如图 15.8 所示。在这一页有两种开发模式,一 种是从底到上的,也就是从 Java Bean 生成的方式;另一种则是从顶到下的,从 WSDL 文 档生成的方式。那么本例中选中单选钮 Create web service from Java bean 并选中复选 框 Create new Java bean,然后点击 Next 按钮进入第二页的设置。因为手工编写 WSDL 文件相当的困难,所以对于 Java 开发人员来说使用第一种方式比较简便。 图 15.8 新建 Web Service 向导第一页 在第二页,用来设置 Web Service 的详细信息,这一页需要修改的地方。第一个是在
MyEclipse6Java开发中文教程 Web service name:处输入 Helloworld,第二个地方是点击 Java package一行末尾的 New.按钮,在弹出的新建包对话框中输入 bellows,然后点击OK按钮返回(也可以直接 输入现有的包名)。这一页的其它地方包括设置Java源代码目录( Java source folder),以 及服务接口名( Service interface,会自动根据输入的服务名生成),服务实现类( Service impl cass),还有SOAP的风格( SOAP style/use)以及 Servlet的作用域( Servlet scope,可 用值包括app| ication, request, session)。当一切设置完毕后,点击 Finish按钮即可完成 向导并生成代码 Hey eb service New Web Service- Bottom-up Scenaric eb service from Ja Web service proiect: HelloWorldservice ervI ce nam HelloWorld Java Implementation Java source folder: src Java package bellows onse New Service interface:IHelloWorld Service impl. class: HelloWorldImpl SOAP Servlet Confi gurati SOAP style/use: wrapped/literal 191点击此接按钮输入包 图159新建Web服务向导第二页 此时我们看看所发生的变化,首先是 services. xM发生了改变: beansxmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>Helloworld/name> <serviceclass>bellows. /Hello world</serviceclass> implementation class> hellos. HelloworldImpl </implementation <style>wrapped</style> <use>litera/</use> <scope>application</scope> </service> 这就给了我们一种提示,那就是我们可以自己手工修改这个文件来加入更多的Web Service,无非就是需要一个接口和一个实现类,然后在此配置文件中加入更多的 service 标签即可。再来看看在src/ bellows目录下多了两个Java类,分别是 Helloworlo和 Helloworld。源代码非常简单,先看接口 THelloworld 刘长炯著
MyEclipse 6 Java 开发中文教程 10 刘长炯著 Web service name:处输入 HelloWorld,第二个地方是点击 Java package 一行末尾的 New...按钮,在弹出的新建包对话框中输入 hellows,然后点击 OK 按钮返回(也可以直接 输入现有的包名)。这一页的其它地方包括设置 Java 源代码目录(Java source folder),以 及服务接口名(Service interface,会自动根据输入的服务名生成),服务实现类(Service impl. class),还有 SOAP 的风格(SOAP style/use)以及 Servlet 的作用域(Servlet scope,可 用值包括 application,request,session)。当一切设置完毕后,点击 Finish 按钮即可完成 向导并生成代码。 图 15.9 新建 Web 服务向导第二页 此时我们看看所发生的变化,首先是 services.xml 发生了改变: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>HelloWorld</name> <serviceClass>hellows.IHelloWorld</serviceClass> <implementationClass> hellows.HelloWorldImpl </implementationClass> <style>wrapped</style> <use>literal</use> <scope>application</scope> </service> </beans> 。这就给了我们一种提示,那就是我们可以自己手工修改这个文件来加入更多的 Web Service,无非就是需要一个接口和一个实现类,然后在此配置文件中加入更多的 service 标签即可。再来看看在 src/hellows 目录下多了两个 Java 类,分别是 IHelloWorld 和 HelloWorld。源代码非常简单,先看接口 IHelloWorld: