`
农村哥们
  • 浏览: 287180 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在myeclipse下构建简单WebService的例子(xfire引擎)

阅读更多
服务端构建

一、首先创建web工程。
新建->web project

二、在src下新建floder目录结构如下:
    wsxfire
        src
          META-INF
              xfire
                services.xml
    对于services.xml可以从别的地方copy过来,也可以自己写,内容结构如下:
         <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://xfire.codehaus.org/config/1.0">
<service xmlns="http://xfire.codehaus.org/config/1.0">
<serviceClass>
service.OutInterface
</serviceClass>
<implementationClass>
service.OutImpl
</implementationClass>
<serviceFactory>jsr181</serviceFactory>
</service>
          ....
          ....
        </beans>
*上面的目录,包括文件名都要完全一致。

三、创建一个接口,与一个实现类。结构如下
    wsxfire
       src
         com
          OutImpl.java
          OutInterface.java
       META-INF
         xfire
           services.xml
    1.services.xml中serviceClass标签的内容就是包名+接口名,而implementationClass标签的内容就是包名+实现类名。
    2.OutInterface.java写法与普通接口不同的是加上注解,如下:
      import javax.jws.WebMethod;
     import javax.jws.WebParam;
     import javax.jws.WebResult;
     import javax.jws.WebService;

     @WebService
     public interface OutInterface {

@WebMethod
@WebResult(name = "results")
public String open(@WebParam(name = "systemType")String     para);
     }
    对于@WebResult(name = "results") 的name参数的内容results是实现方法的返回值名,(@WebParam(name = "systemType")systemType为实现方法的参数名字。这两个名字是给客户端用的。
    3.OutImpl.java实现类与普通实现类一样没有什么别的说法,如下:
      public String open(String para) {
System.out.print(para);
return para;
     }

四、修改web.xml,增加servlet,如下
         <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>
这些都是xfire平台需要的。
五、引入xfire的jar包
去网上找找xfire包,解压后主要包括 xfire-all-1.2.6.jar,xfire-core-1.2.2.jar,xfire-annotations-1.2.2.jar,xfire-jsr181-api-1.0-M1.jar,
xfire-spring-1.2.2.jar
这样就ok了,发布到tomcat下,然后访问http://127.0.0.1:端口/工程名/services/就可以看到你发布的接口列表就成功了,点击某个wsdl就是可供生成客户端的wsdl的url了。

客户端构建

一、新建web service工程,由于是在myeclipse下搭建,所以按照人家的规范走IDE才能帮你自动创建(无非是帮你创建几个class)。

二、新建web services client,按照向导选择工程,选择wsdl,可以选择文件也可以选择url,这时就可以把刚才建服务端后发布的wsdl的url地址输入进去,选择生成java文件的包名,一路next 就OK了。

三、在生成的文件中有个名字叫*Client.java,这个文件就是客户端工具文件,他会在里边自动创建main方法测试。

OutInterfaceClient client = new OutInterfaceClient();
        OutInterfacePortType service = client.getOutInterfaceHttpPort();

service.后面的东西就是接口定义的方法名,调用接口执行。

虽然这样就可以了,但有个地方大家几乎都会用到,就是返回值不是基本类习惯,而是个javabean对象该怎么办?
服务端返回接口照常写,例如
public VoPojo getVo(){
   .....
   return new VoPojo();
}
按照上面的方法生成客户端时就会自动生成该对象VoPojo类与服务器段对应,原理是他会根据xml定义的javabean生成jaxb的映射文件,然后通过xml解析成对象使用。
在客户端调用即可。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics