`
zwm
  • 浏览: 280050 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

WebServices 学习笔记

阅读更多

WebServices
首先,建立一个 web service project ,名称为WS-Server
1.建立一个接口类 IHelloWorld.java
/**
 *
 */
package zz.it.interfs;


/**
 * @author zwm
 *
 */
public interface IHelloWorld {
 public String getHelloWorld(String yourName);
}
2.搞定接口实现类HelloWorldImpl.java
/**
 *
 */
package zz.it.impl;

import org.apache.log4j.Logger;

import zz.it.interfs.IHelloWorld;

/**
 * @author zwm
 *
 */
public class HelloWorldImpl implements IHelloWorld {

 private static final Logger log=Logger.getLogger(HelloWorldImpl.class);
 /* (non-Javadoc)
  * @see zz.it.interfs.IHelloWorld#getHelloWorld(java.lang.String)
  */
 public String getHelloWorld(String yourName) {
  // TODO Auto-generated method stub
  log.info("Server Hello you:>>>Welcome:"+yourName);
  return yourName;
 }

}
3.配置WebServices/下的services.xml文件
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
 <service>
  <name>helloWorld</name> 
  <serviceClass>zz.it.interfs.IHelloWorld</serviceClass>
  <implementationClass>
   zz.it.impl.HelloWorldImpl
  </implementationClass>
  <style>wrapped</style>
  <use>literal</use>
  <scope>application</scope>
 </service>
</beans>
4.因为用到了log4j,那就在弄个配置文件过来吧。
## LOGGERS ##
#define a logger named PP
#Test Used
log4j.rootLogger=info,console,file

## APPENDERS ##
# define an appender named console, which is set to be a ConsoleAppender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.logger.PPLogger=WARN
log4j.logger.rootLogger.childLogger=,file
log4j.logger.rootLogger.jspLogger=,file

# define an appender named file, which is set to be a RollingFileAppender
# log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=pp.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd

 


## LAYOUTS ##
# assign a SimpleLayout to console appender
log4j.appender.console.layout=org.apache.log4j.PatternLayout

# assign a PatternLayout to file appender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
# log4j.appender.file.layout.ConversionPattern=%t %p - %m%n
# log4j.appender.file.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd  HH:mm:ss,SSS}  [%c]-[%-5p] Method: %l%n%m%n 


5.加载相应的jar包。注意几个
xfire-core-1.2.2.jar
log4j-1.2.11.jar
反正俺也不知道哪个需要与不需要,多加几个就是了。俺一次性加了28个jar,感觉是不是硬件性能太好了。

6.差不多了吧,开始着手客户端的编写。
***************************************************
*****************WS-Client**************************
***************************************************
同样建立一个Web service project WS-Client
1.建立与服务端相同的接口IHelloWorld.java
/**
 *
 */
package zz.it.interfs;


/**
 * @author zwm
 *
 */
public interface IHelloWorld {
 public String getHelloWorld(String yourName);
}
2.建立一个过渡文件WSConfig ,目的是为了从XML文件中通过相应webserivce访问的URL地址,感觉是不是有些多余。
package zz.it.test;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

 


import org.w3c.dom.Document;

public class WSConfig {
  String  protocol="";//协议
  String ip="";//IP
  String port="";//端口号
  String serviceName="";//服务名称
 
 public WSConfig() {
  File xmlfile = new File("E:/workspace1/WS-Client/WebRoot/WEB-INF/wsconfig.xml");   
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder = null;
  Document Doc = null;
  try {
  builder = factory.newDocumentBuilder();     
  Doc = builder.parse(xmlfile);
  } catch (Exception e) {
  e.printStackTrace();
  }
  this.protocol = Doc.getElementsByTagName("protocol").item(0).getFirstChild()
  .getNodeValue();
  this.ip = Doc.getElementsByTagName("ip").item(0).getFirstChild()
  .getNodeValue();
  this.port = Doc.getElementsByTagName("port").item(0).getFirstChild()
  .getNodeValue();
  this.serviceName = Doc.getElementsByTagName("serviceName").item(0).getFirstChild()
  .getNodeValue();  
  
  }
  public static void main(String args[]){
   new WSConfig(); 
  }
  public String getIp() {
   return ip;
  }
  public void setIp(String ip) {
   this.ip = ip;
  }
  public String getPort() {
   return port;
  }
  public void setPort(String port) {
   this.port = port;
  }
  public String getProtocol() {
   return protocol;
  }
  public void setProtocol(String protocol) {
   this.protocol = protocol;
  }
  public String getServiceName() {
   return serviceName;
  }
  public void setServiceName(String serviceName) {
   this.serviceName = serviceName;
  }
  

}

上面所使用到的配置文件内容为wsconfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
<!--protocol-->
<protocol>http://</protocol>
<!--IP-->
<ip>localhost</ip>
<!--port-->
<port>8099</port>
<!--serviceName-->
<serviceName>/WS-Server/services/helloWorld</serviceName>
</config>


3.建立差不多像测试的例子(俺对Junit不是特别浓缩)MainTest.java
/**
 *
 */
package zz.it.test;

import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import zz.it.interfs.IHelloWorld;

/**
 * @author zwm
 *
 */
public class MainTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Service servModel = new ObjectServiceFactory()
    .create(IHelloWorld.class);
  //
  XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
    .newInstance().getXFire());
  WSConfig ws = new WSConfig();
  String wsUrl = ws.getProtocol() + ws.getIp() + ":" + ws.getPort()
    + ws.getServiceName();
  try {
   IHelloWorld srvc = (IHelloWorld) factory.create(servModel, wsUrl);
   System.out.println(srvc.getHelloWorld("@author:zwm"));
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 }

}

最好,我们将WS-Server装载到服务器,启动服务,运行MainTest,将会看到@author:zwm的信息。目前是在eclipse IDE下运行,控制台应该是@author:zwm
WS-Server采用是Tomcat,如果日志级别允许,则可以看到Server Hello you:>>>Welcome:@author:zwm

如此而已,不知上述是否正确,多多关照。 

分享到:
评论

相关推荐

    Web Services学习笔记

    Web Services学习笔记,主要内容是Web Services的理论知识。只有掌握了这些理论知识,才能更好的理解如何去部署、发布和调用Web Services。

    Web Service学习笔记

    在本学习笔记中,我们将深入探讨Web服务的核心概念、技术栈以及实际案例。 一、Web服务的核心概念 1. **SOAP (Simple Object Access Protocol)**:SOAP是一种基于XML的协议,用于交换结构化信息,是Web服务的基础...

    Microsoft.Exchange.WebServices

    微软Exchange Web服务(Microsoft.Exchange.WebServices,简称EWS)是一个应用程序编程接口(API),它允许开发者构建能够与Microsoft Exchange Server进行交互的应用程序。EWS是Exchange Server 2007及更高版本的...

    web测试学习笔记

    本篇学习笔记将深入探讨Web测试的关键概念、工具和技术。 首先,让我们从Web服务器说起。Apache HTTP Server是一款广泛使用的开源Web服务器,它支持多种操作系统,包括Windows和Linux。Apache的灵活性和可扩展性...

    Web Services

    Web Services 应用开发学习笔记,非常适合想学习 Web Services 的朋友

    web service学习笔记1

    1. WSDL(Web Services Description Language):这是一种XML格式,用于定义Web Service的接口,包括服务地址、消息格式、操作以及非功能性特性,如安全性、事务处理等。 2. UDDI(Universal Description, Discovery...

    Web Service学习笔记.doc

    WebService学习笔记 Web Service 是一种软件系统,为了支持跨网络的机器间相互操作交互而设计。它通常被定义为一组模块化的 API,它们可以通过网络进行调用,来执行远程系统的请求服务。在传统的程序编码中,存在...

    用axis布置webServices详细步骤

    在这个过程中,"学习笔记.txt"和"简单用JDK发布的web service.txt"可能是详细的操作指南,包含每一步的具体细节和可能出现的问题。"server-config.wsdd"是Axis的配置文件,"web.xml"是Servlet容器的配置文件,而"web...

    webservice学习笔记

    ### WebService 学习笔记详解 #### 一、实验环境搭建与配置 在开始Web Service的学习之前,首先需要搭建一个适合开发的环境。本实验基于以下配置: - 操作系统:Windows 2000 (Win2k) - JDK版本:1.6 - Java EE...

    web service入门学习笔记

    Web Service入门学习笔记 Web Service是一种基于互联网的、平台无关的通信协议,它允许不同系统间的应用程序通过网络互相调用,实现数据交换和服务共享。在本文中,我们将深入探讨Web Service的基本概念,以及如何...

    Axis 开发Web Service(学习笔记)

    **Axis开发Web Service学习笔记** 在信息技术领域,Web服务是一种基于开放标准的互联网通信协议,允许不同的应用程序之间进行互操作。而Axis是Apache软件基金会的一个开源项目,它提供了一个强大的工具集,用于创建...

    Java JDK 6学习笔记.zip

    7. **Web服务支持**:Java API for RESTful Web Services (JAX-RS) 1.0的引入,使得开发RESTful服务变得简单。 8. **Java Management Extensions (JMX)**:增强了JMX,使得监控和管理Java应用更加容易。 9. **Java...

    webservice学习笔记doc文档

    在本学习笔记中,主要介绍了使用Apache Axis2框架来开发和测试Web Service的过程。Apache Axis2是Apache SOAP栈的一个实现,提供了简单且高效的Web Service开发工具。 首先,开发者需要在Eclipse集成开发环境中搭建...

    webservices 资源

    文件名“63535299webservice-example.rar”可能包含了一个Web服务的示例代码,这可能是用Java或C#实现的一个基本服务,可以用来学习如何定义服务操作、处理请求和返回响应。 “105230312stock.rar”可能是一个关于...

    JavaEE学习笔记

    ### JavaEE 学习笔记概览 #### 一、JavaEE 概念及发展历程 JavaEE(Java Platform, Enterprise Edition)是Sun Microsystems公司为简化企业级应用开发而提出的一套标准化平台,它提供了构建分布式系统的基本框架和...

    SAP_BW_学习笔记

    SAP BW,全称为Business Information Warehouse,自3.5版本后被称为SAP Business Intelligence,是SAP Netweaver体系架构中的重要组成部分,...在后续的学习笔记中,会逐步探讨ETL Services中的Extraction等具体模块。

    powerbuider经典学习笔记

    【PowerBuilder经典学习笔记】 PowerBuilder(PB)是一款由Sybase公司推出的强大的数据库应用程序开发工具,以其高效、灵活和易用性在企业级应用开发领域备受推崇。它遵循客户端/服务器架构,支持面向对象编程,并...

    软件测试学习笔记

    ### 软件测试学习笔记知识点详解 #### 一、软件测试基础知识 1. **软件测试定义** - **理解**:软件测试是通过执行软件产品来评估其质量的过程。 - **目的**:确保软件产品能够满足用户的需求并达到预定的质量...

    webService学习笔记

    在本篇WebService学习笔记中,我们将探讨几个关键的概念和技术,包括SOAP协议、JAX-WS、WSDL文档以及一些常用的Web服务框架。 首先,SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在分布式环境...

Global site tag (gtag.js) - Google Analytics