二、XFire开发
1、准备开发环境
环境:MyEclipse xx +tomcat6.0+JDK1.5
xfire版本:xifre-1.2.6
XFire所需jar包:
在http://xfire.codehaus.org/下载xfire1.2.6-.zip压缩包,解压后lib下jar包
在MyEclipse下新建一个Web Applications,命名为ws
目录结构
|
2、配置运行环境
WEB-INF目录下新建一个web.xml文件,文件中输入:
xml代码
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>XFireServlet</servlet-name> <display-name>XFire Servlet</display-name> <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> </servlet>
<servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app> |
其中主要就是引入了XFireServlet,用以处理Web Service请求,并且负责提供Web Service的WSDL,如果你发布了一个名为BookService的WebService,则可以通过网址:
http://<服务器>[:端口]/<webapp名>/services/来访问这个WebService,并且通过地址:http://<服务器>[:端口]/<webapp名>/services/BookService?wsdl 来得到这个WebService的WSDL信息。
3、开发应用程序
在src文件夹下新建一个package:com.test.ws,在这个包下面新建一个接口:
业务接口Java代码
package com.test.ws; public interface SayHelloService { //调用的业务方法 public String sayHello(String name); }
|
这个接口是告诉服务器你的WebService哪些方法可以被用户调用的。我们再来写一个SayHelloService的实现类,以完成业务逻辑:
业务Java代码
package com.test.ws; public class SayHelloServiceImpl implements SayHelloService { //业务实现方法 public String sayHello(String name) { if(name==null){ return "你叫什么名字呢?"; } return name+",早上好,还没有上学去吗 ?"; } } } |
这个类实现了sayHello方法,该方法是可以通过WebService调用访问到的。 接下来发布WebService
4、配置部署服务
在目录src下新建目录结构META-INF/xfire,然后在该文件夹下新建一个XML文件:services.xml,文件内容如下:
xml代码
<?xml version="1.0" encoding="UTF-8"?> <!-- START SNIPPET: services --> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>SayHelloService</name> <namespace>http://com.test.ws/SayHelloService</namespace> <serviceClass>com.test.ws.SayHelloService</serviceClass> <implementationClass>com.test.ws.SayHelloServiceImpl</implementationClass> </service> </beans> <!-- END SNIPPET: services --> |
这个文件定义一个WebService: SayHelloService,并同时定义了接口和实现类。将上面创建的 SayHelloService发布成 Web 服务。
其中各元素的功能如下:
service
service 标签和它所包含的 xml 内容为发布成 Web 服务的 POJO 提供完整的描述。
name
Web 服务被发布时所采用的唯一名称。
namespace
Web 服务发布时所使用的命名空间。
serviceClass
Web 服务接口类的全名,包括包名和类名。
implemetationClass
Web 服务实现类的全名,包括包名和类名。
把工程ws部署到tomcat下
<!--EndFragment--><!--EndFragment-->
<!--EndFragment-->