使用xfire搭建webservice服务

举报
经典鸡翅 发表于 2022/02/18 00:03:31 2022/02/18
【摘要】 前言 以前用的都是 apache 的cxf来搞webservice,今天做项目发现这个项目用的是 xfire,于是搭一个,写个demo用一下,在此记录一下过程。 搭建过程 本文使用的是maven形式的web工程。不知道如何搭建web工程的看上一篇博文。 引入xfire的依赖 <dependency>...

前言

以前用的都是 apache 的cxf来搞webservice,今天做项目发现这个项目用的是 xfire,于是搭一个,写个demo用一下,在此记录一下过程。

搭建过程

本文使用的是maven形式的web工程。不知道如何搭建web工程的看上一篇博文。

引入xfire的依赖


   
  1. <dependency>
  2. <groupId>org.codehaus.xfire</groupId>
  3. <artifactId>xfire-all</artifactId>
  4. <version>1.2.6</version>
  5. </dependency>

配置web.xml


   
  1. <servlet>
  2. <servlet-name>XFireServlet</servlet-name>
  3. <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
  4. <init-param>
  5. <param-name>config</param-name>
  6. <param-value>/xfire/services.xml</param-value>
  7. </init-param>
  8. </servlet>
  9. <servlet-mapping>
  10. <servlet-name>XFireServlet</servlet-name>
  11. <url-pattern>/services/*</url-pattern>
  12. </servlet-mapping>

编写接口


   
  1. public interface HelloService {
  2. public String helloService();
  3. }

编写实现类


   
  1. public class HelloServiceImpl implements HelloService {
  2. public String helloService() {
  3. return "1111";
  4. }
  5. }

配置xfire的services的配置文件

该配置文件通过查看源码,默认在META-INF下的xfire的services.xml。我将目录放在了resource下,去掉了META-INF。可通过上方的web.xml配置文件的地址。上方有例子。


   
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans>
  3. <service xmlns="http://xfire.codehaus.org/config/1.0">
  4. <name>webService</name>
  5. <namespace>http://jichi.com/</namespace>
  6. <serviceClass>com.HelloService</serviceClass>
  7. <implementationClass>com.HelloServiceImpl</implementationClass>
  8. </service>
  9. </beans>

编写一个访问webservice的方法


   
  1. public static Object processWsMethod(String url,String methodName,Object ... params){
  2. Object result = null;
  3. try {
  4. if(!url.endsWith("?wsdl")){
  5. url += "?wsdl";
  6. }
  7. URL urls = new URL(url);
  8. Client client = new Client(urls);
  9. Object[] results = client.invoke(methodName,params);
  10. if(results!=null){
  11. if(results.length==1)
  12. result = results[0];
  13. else
  14. result = results;
  15. }
  16. } catch (Exception e) {
  17. e.printStackTrace();
  18. }
  19. return result;
  20. }

编写测试方法


   
  1. @Test
  2. public void testMyWebService(){
  3. String aa = (String) WebServiceUtil.processWsMethod("http://localhost:8080/services/webService", "helloService");
  4. System.out.println(aa);
  5. }

结果

控制台打印111.搭建成功。

文章来源: blog.csdn.net,作者:经典鸡翅,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/hanqing456/article/details/111878881

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。