那么前面已经配置完环境了,如何写服务器端呢?
1.新建一个Dynamic WebProject,假设叫做XFireServer,创建一个包demo,新建一个类HelloService.java,类内容如下:
package demo; public class HelloService { public String sayHello(String name) { return name+" Hello!"; } } |
作用是当客户端调用的时候,传入一个字符串,会打印出**Hello的信息。
2.配置xml文件,这个地方是一个重点,当然这个地方也很容易处错误,xfire就是根据这些信息来发布我们的服务的。我们创建的配置文件叫做service.xml,在WebContent下的META-INF下文件中创建一个文件夹叫做xfire,我们将services.xml放在xfire文件夹下。配置文件的内容如下:
<?xml version="1.0"encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>HelloService</name> <serviceClass>demo.HelloService</serviceClass> </service> </beans> |
当然,service标签的子标签不止这两个,但是其余的都是可选的。
3.这个services.xml的位置并非就在WebContent下,而是应该移动到WEB-INF下,也就是时候,最终结构会变成:
4.web.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/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> xfireWebServiceServer</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>XFireServlet</servlet-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> |
其中蓝色部分是需要添加的.
6. 构建路径,将相应的jar文件拷贝到lib文件夹下,并进行buildpath.
7.此时启动tomcat,运行:http://localhost:8080/XFireServer/services即可显示如下信息,
这表示server端创建成功。
当然,我们这个例子当中,server端创建了一个类,也可以创建多个,比如,我们再在demo包中添加一个类叫做HopeService.java,其中代码如下:
package demo; public class HopeService { |
这样我们需要同时修改配置文件,增加一个service标签即可。修改后的文件为:
<?xml version="1.0"encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>HelloService</name> <serviceClass>demo.HelloService</serviceClass> </service> <service> <name>HopeService</name> <serviceClass>demo.HopeService</serviceClass> </service> </beans> |
当我们再次运行http://localhost:8080/XFireServer/services 时,显示: