WEBSERVICE XFIRE 服务器端的创建和客户端调用

开发环境:Windows XP,JDK1.6

开发工具:Myeclipse 6

创建服务器端:

1.新建web service project,命名为“MyService”

2.连续点击“NEXT”,选择“xfire 1.2 core library”、“xfire 1.2 httpclient  library”、“xfire 1.2 jaxb2 library”三个library


3.然后点击“FINISH”,服务器端项目生成。


4.右键单击“MyService”项目,选择“NEW”,在“WebServices”下选择“Web  Service”


5.单击“NEXT”进入下一步,选择“Create new Java bean”


6.单击“NEXT”,在 Web service name 键入功能名称“HelloService”,放在com.guoshuhao.service包下。

同时生成了IHelloService接口和接口实现类HelloServiceImpl


7.点击“FINISH”完成服务端接口开发,项目业务结构如下


查看IHelloService.java

public interface IHelloService {               
    public String example(String message);        
}
查看并修改HelloServiceImpl.java
public class HelloServiceImpl implements IHelloService { 
    public String example(String message) { 
        return "Hello,My Dear! ---->>>> "+message;
    }
}

services.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
        <service>
                <name>HelloService</name>
                <serviceClass>com.guoshuhao.service.IHelloService</serviceClass>
               <implementationClass>
                        com.guoshuhao.service.HelloServiceImpl
                </implementationClass>
                <style>wrapped</style>
                <use>literal</use> 
               <scope>application</scope>
        </service></beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 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.transport.http.XFireConfigurableServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <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>
至此,整个webservice的服务端开发完成,让我们一起测试来看看效果吧。

确认启动服务器后,打开myeclipse的内置浏览器输入url,url为

http://localhost:8080/MyService/services/HelloService?wsdl

可以看到以下效果,那么服务端成功了!


接下来是客户端对服务端接口调用功能的开发(多种方法)

1.首先建一个Web Project,命名为“MyClient”

2.向该项目中添加3个jar包,可参考前面服务端创建第2步,完成后如下图


3.有3种方式创建客户端服务

第一种:通过MyEclipse的Web Service Client自动创建,个人认为这种方式不好,不推荐。


第二种:在src下新建com.guoshuhao.client.HelloClient.java,此种方法简单易用,但不易封装。

public class HelloClient {
        public static void main(String[] args) throws MalformedURLException, Exception {
        Client client = new Client(new URL("http://localhost:8080/MyService/services/HelloService?wsdl"));
        Object[] results = client.invoke("example", new Object[] {"Guoshuhao"});
        System.out.println((String) results[0]); 
       }
}
在确认服务器启动后,运行HelloClient.java,在控制台看到如下输出:


第三种:在src创建IHelloService接口,同服务端接口相同

package com.guoshuhao.client;public interface IHelloService {
        public String example(String message);
        }
在HelloClient.java中如下编辑
public class HelloClient {
        public static final String SERV_URL= "http://localhost:8080/MyService/services/HelloService";
                public static void main(String[] args) throws MalformedURLException {
                Service serviceModel = new ObjectServiceFactory().create(IHelloService.class);
                IHelloService service = (IHelloService) 
                   new XFireProxyFactory().create(serviceModel, SERV_URL); 
               System.out.println(service.example("狼魂")); 
       }
}
在确认服务器启动后,运行HelloClient.java,在控制台看到如下输出:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章