热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在Java中高效构建WebService

本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的JavaSOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。

    XFire Java SOAP框架概述 (摘自:http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml )

 

    MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的, XFire是一款开源的Java SOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在Web Services下的简单API,支持POJO和schema开发. XFire支持 Web Services standards,Spring 整合, 支持JBI , 支持 JAXB ,XMLBeans,Java 5 和JAX-WS.并支持HTTP, JMS, XMPP, In-memory传输协议

 

一、环境配置:MyEclipse7.0

                     JDK1.6

二、创建Web Service Project

      1)在MyEclipse中选择File—>New—>Other,选择Web Service Project 

      2)Project Name:WebServiceServer,Framework:XFire,其他选项默认

      3)Next,这一步保持默认值

     4)Project Library选择,选择XFire 1.2  Core Libraries

     5)Finish,创建成功后看到的工程目录如下:

     6)完成以上5步后,查看WebRoot/WEB-INF/web.xml

         这里指明了当遇到/services/*请求时,将选用XFireConfigurableServlet来处理   

 

 

三、创建Web Service Code

 

    1)通过File—>New—>Other—>Web Services—>Web Service wizard创建JAVA CODE

 

 

     2)选择通过JAVA CLASS创建Web Service

 

 

 

     3)创建HelloWebService.java,通过New创建com.service package,向导将为工程自动创建对应的接口类与实现类

 

 

 

     创建成功后查看WebServices/services.xml,发现配置文件多了以下内容:

 

 

 

    4)修改HelloWebServiceImpl.java

 

    package com.service;

    //Generated by meteorWJ

 

   public class HelloWebServiceImpl implements IHelloWebService {

   

     public String example(String message) {

        return getAuthor()+","+message;

     }

     private String getAuthor(){

        return "meteorWJ";

     }

   

   }

 

四、部署并测试WebSericeServer

    1)部署WebServiceServer

 

 

    在部署向导中选择项目、服务器

 

 

 

    2)启动服务器

 

   3)测试WebService

   MyEclipse提供了一个Web Service Explorer来测试Web Service

   选择列表中的Launch SOAP Web Services Explorer

   4)选择WSDL模式

 

 

   5)在Explorer中选择WSDL Main,在右边的URL中输入

 

   http://locahost:9090/WebServiceServer/services/HelloWebService?WSDL,单击"Go"

   其中9090是服务器端口号,services在之前的web.xml中指定

   若在Status中显示成功打开WSDL文件则测试成功 

五、创建WebService客户端

经过以上几步,我们已经成功发布了一个WebService,现在需要创建一个客户端来调用该服务

  1)创建Java Project:WebServiceClient

  2)引入MyEclipse Libraries

       右键WebServiceClient—>Build Path—>Add Libraries

    选择XFire 1.2 HTTP Client Libraries

 

 

   3)创建HelloWebService.java

 

   在src目录下创建com.client.HelloWebService.java

   package com.client;

 

   import java.net.URL;

   import org.codehaus.xfire.client.Client;

 

   public class HelloWebService {

       public static void main(String[] args) throws Exception

       {

        Client client = new Client(new URL("http://localhost:9090/WebServiceServer/services/HelloWebService?wsdl"));

        Object[] results = client.invoke("example", new Object[] {"hello"});

        System.out.println((String) results[0]);

       }

   }

 

   4)在确认服务器启动的情况下,运行HelloWebService.java

   右键点击Run As>Java Application,在控制台中看到如下输出

 

 

截图如下:

 

下一步

 

下一步

Finish

在WebServices/services.xml实际上是接口和实现类,可以自己写java类,也可以自动生成,如:

新建一个Web Service

下一步:关联到前面建的项目HelloWorld

下一步:接口名HelloWorldService,默认的接口为IhelloWorldService,实现类为HelloWorldServiceImpl

完成后如下:

WebServices/services.xml自动生成为:

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

<beans xmlns&#61;"http://xfire.codehaus.org/config/1.0">

    <service>

       <name>HelloWorldServicename>

       <serviceClass>com.service.IHelloWorldServiceserviceClass>

       <implementationClass>

           com.service.HelloWorldServiceImpl

       implementationClass>

       <style>wrappedstyle>

       <use>literaluse>

       <scope>applicationscope>

    service>

beans>

 

 

访问地址&#xff1a;

http://192.168.72.8:8888/HelloWrold/services/HelloWebService?wsdl

 



推荐阅读
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 本文详细介绍了钩子(hook)的概念、原理及其在编程中的实际应用。通过对比回调函数和注册函数,解释了钩子的工作机制,并提供了具体的Python示例代码,帮助读者更好地理解和掌握这一重要编程工具。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 本文介绍 Java 中如何使用 Year 类的 atMonth 方法将年份和月份组合成 YearMonth 对象,并提供代码示例。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 本文深入探讨了 Java 中 LocalTime 类的 isSupported() 方法,包括其功能、语法和使用示例。通过具体的代码片段,帮助读者理解如何检查特定的时间字段或单位是否被 LocalTime 类支持。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 在尝试通过HTTP请求访问位于http://www.xxx.cn/net/Clicked.asmx的Web服务时,发现输入特定参数后,偶尔会接收到不成功的响应,表现为XML格式的空字符串。此现象并非每次发生,其根本原因尚不明确。 ... [详细]
author-avatar
老海文
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有