一个简单的webService演示(入门)

                             创建服务器端:

 1:加载的jar如下:

           一个简单的webService演示(入门)_第1张图片

        一个简单的webService演示(入门)_第2张图片

 

备注:

          包的来源可以从这里去下载:http://xfire.codehaus.org/Download

 

             一个简单的webService演示(入门)_第3张图片

 

           解压后将lib里面所以的包以及xfire-all-1.2.6.jar导入到项目中去。

 

2:新建一个web project,然后创建一个接口类和一个实现该接口的类

    结构图如下所示:

                                           

    

     演示代码如下:

         IBasic.java

                package org.baicai.ws.basic;

 

                public  interface IBasic {

   

                publicint saveNumber(int i,int j);

 

                 }

        BasicImpl.java

                package org.baicai.ws.basic;

 

               publicclass BasicImpl implements IBasic {

 

              @Override

              publicint saveNumber(int i, int j) {

               return i+j;

              }

           }

 

 

  3:创建一个service.xml文件,并对其进行设置

      3.1:在src目录下新建一个WETA-INF文件

      3.2:在WETA-INF文件中再新建一个xfire文件夹

      3.3:在xfire文件夹中创建一个service.xml文件

              目录结构如下:

                                                        

 

     3.4:对services.xml文件进行配置

            文件配置如下:

                                        <?xml version="1.0" encoding="UTF-8"?>

                                                            <beans xmlns="http://xfire.codehaus.org/config/1.0">

                                                            <service>

                                                                 <name>TestService</name>

                                                                  <namespace>http://org/baicai/ws/basic/IBasic</namespace>

                                                                   <serviceClass>org.baicai.ws.basic.IBasic</serviceClass>

                                                                  <implementationClass>org.baicai.ws.basic.BasicImpl</implementationClass>

                                                           </service>

                                                  </beans>

 

4:对web.xml文件进行配置

    Web.xml配置如下:

                                         <?xml version="1.0" encoding="UTF-8"?>

                                           <web-app version="2.5"

                                                  xmlns="http://java.sun.com/xml/ns/javaee"

                                                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

                                                 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

                                                http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

                                       <welcome-file-list>

                                             <welcome-file>index.jsp</welcome-file>

                                      </welcome-file-list>

 

                                      <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>

               </web-app>

 

5:服务器端部署

     5.1:部署你的应用。

     5.2:访问http://ip:port/projectName /services

     5.3:  点击查看wsdl,能看到一串xml代码就表示服务程序有及部署通过

              结果如下:

                                一个简单的webService演示(入门)_第4张图片                    

                               一个简单的webService演示(入门)_第5张图片

 

 

                                                   创建客户端:

 1:将服务端的应用打包成jar:

      打包方式可见:http://blog.csdn.net/christine_ruan/article/details/7491559

 

2:加载的jar:服务端应用所用的jar和新打的服务端jar

 

3:新建一个客户端项目

 

4:测试服务端提供的接口

         4.1:新建一个测试类

        4.2:调用服务端提供的接口

        4.3:测试是否调用成功

                客户端项目结构如下:

                                                                              一个简单的webService演示(入门)_第6张图片

测试类如下:

package org.baicai.ws.test;

 

import java.net.MalformedURLException;

 

import org.baicai.ws.basic.IBasic;

import org.codehaus.xfire.client.XFireProxyFactory;

import org.codehaus.xfire.service.Service;

import org.codehaus.xfire.service.binding.ObjectServiceFactory;

 

publicclass MyClient {

   

    publicstaticvoid main(String[] args) {

                         //参数说明:调用接口类,服务端项目名称(service.xml文件中的name),表空间

                        Service serviceModel=new ObjectServiceFactory().create              (IBasic.class,"TestService","http://org/baicai/ws/basic/IBasic",null);

       try {

                          //参数说明:服务对象,访问路径(http://ip:port/projectName/services/服务端项目名称)

                          IBasic service=(IBasic) new XFireProxyFactory().create                                     (serviceModel, "http://192.168.104.35:8088/TestXFire/services/TestService");

           System.out.println(service.saveNumber(2,3));

       } catch (MalformedURLException e) {

           e.printStackTrace();

       }

    }

}

 

 附录:可能会遇到的问题以及解决方案

服务端:

     1:java.io.FileNotFoundException: class path resource [META-INF/xfire/services.xml] cannot be opened because it does not exist

  原因:services.xml文件不存在或者是services.xml文件存放路径错误。

  解决方案:见创建服务端第三步

 

 

客户端:

  1:404 错误。

      Caused by: org.codehaus.xfire.XFireRuntimeException: Server returned error code = 404 for URI :……

   原因:提供代理类的URL不正确

   解决方案:给代理类正确的URL。这里是没有指定服务端名称……/services/ TestService

 

2:无法连接,导致信息不能发送。

Caused by: org.codehaus.xfire.XFireException: Couldn't send message.

Caused by: java.net.ConnectException: Connection refused: connect

  原因:服务端没有部署

  解决方案:部署服务端,也就是可以正常的访问http://ip:port/projectName /services 。

 

 

 

你可能感兴趣的:(一个简单的webService演示(入门))