service部分

在eclipse下新建一个动态web项目

在项目中新建一个service类

编写SayHello类的代码

package org.sunny.service;

//包不要引用错了
import javax.jws.WebService;
import javax.xml.ws.Endpoint; //注解@WebService不能少
@WebService
public class SayHello { //该方法为客户端调用的方法,方法名任意
public String say(String name){
return "Hello " + name + " , this is SayHelloService !" ;
} public static void main(String[] args) {
//第一个参数是访问时的url,9091是任意一个不占用的端口
Endpoint.publish("http://localhost:9091/Service/SayHello", new SayHello());
System.out.println("service success !");
}
}

进行测试:对任意空白处右键

或者

运行后将会调用类中的main方法

运行结果出现如下配置则表示发布成功

访问网页:http://localhost:9091/Service/SayHello?wsdl

注意:‘?wsdl’是必须要添加的。

出现如下页面表示发布成功

client部分

新建客户端类

当然,你也可以新建一个web项目来编写客户端代码,本次client可service放在同一个项目下

打开命令行:win+R打开运行,输入cmd

输入以下命令

  wsimport -s E:\SunnyWen\Data\Java_web\WebServiceDemo\src -p org.sunny.client.config -keep http://localhost:9091/Service/SayHello?wsdl

  -s 后面的是你项目src所在的路径

  -p 后面的是你通过该命令生成的类所在的包

  -keep 表示导出webservice的class文件时是否也导出源代码java文件.

  -verbose表示详细信息。

  -d 表示输出的目录,目录必须事先存在,否则导出失败。

在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,用这些类文件,就可以像调用本地的类一样调用WebService提供的方法。该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生成Java的客户端实现。

其他命令参数请参照:http://download-llnw.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

对client类进行代码编写

package org.sunny.client;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
//包别导错了
import javax.xml.ws.WebServiceClient; //导入两个命令生成的类
import org.sunny.client.config.SayHello;
import org.sunny.client.config.SayHelloService; //注解@WebServiceClient需要加入
@WebServiceClient
public class ClientToSay { public static void main(String[] args) { // 方法一
/*try {
// 服务WSDL Document的地址 URL url = new URL("http://localhost:9091/Service/SayHello?wsdl");
// 1.Qnameqname是qualified name 的简写
// 2.构成:由名字空间(namespace)前缀(prefix)以及冒号(:),还有一个元素名称构成
// 由package-info.java文件可知namespace为http://service.sunny.org/,
QName qname = new QName("http://service.sunny.org/", "SayHelloService");
Service service = Service.create(url, qname);
SayHello sayHello = service.getPort(SayHello.class);
String result = sayHello.say("Sunny01");
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}*/ // 方法二
//通过SayHelloService的getSayHelloPort()方法的奥SayHello接口
SayHello sayHello = new SayHelloService().getSayHelloPort();
//调用SayHello接口的say方法
String result = sayHello.say("Sunny02");
//输出返回内容
System.out.println(result);
} }

运行为java application程序,输出结果

eclipse下开发简单的Web Service的更多相关文章

  1. 【Java学习笔记】如何写一个简单的Web Service

    本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程: 1.系统条件: Eclipse Java EE IDE for Web De ...

  2. C#开发和调用Web Service

    http://blog.csdn.net/h0322/article/details/4776819 1.1.Web Service基本概念 Web Service也叫XML Web Service ...

  3. idea/eclipse下Maven工程集成web服务(tomcat、jetty)

     idea/eclipse下Maven工程集成web服务 转载请注明出处:http://www.cnblogs.com/funnyzpc/p/8093554.html 应用服务器最常用的一般有这哥仨: ...

  4. Python接口测试实战5(下) - RESTful、Web Service及Mock Server

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  5. 用Spring MVC开发简单的Web应用程序

    1 工具与环境 借助Eclipse4.3 + Maven3.0.3构建Java Web应用程序.使用Maven内置的servlet 容器jetty,不需手工集成Web服务器到Eclipse.还帮我们自 ...

  6. 最简单的Web Service实现

    概述 这里提供一个最简单的Web Service的实现,基于JAX-WS.除了jdk不需要任何其他jar包,使用Eclipse提供的Web Services Explorer访问服务. 服务端的实现 ...

  7. 4-1eclipse & 4-2在eclipse下开发Java

    ecplise是一款继承的开发工具,可以开发我们的java程序. 下载地址: https://www.eclipse.org/downloads/ 视频中ecplise的版本 安装Ecplise: 默 ...

  8. 使用JDK自带功能,实现一个简单的Web Service接口发布

    万事开头难,本篇文章的目的就是使用JDK自带的功能,实现一个最简单的Web Service接口的发布. 下图是项目的组成,主要有三个部分,一个接口(WS),一个接口的实现类(WSImp),还有一个接口 ...

  9. 在javaEE下学习web(在eclipse中开发动态的WEB工程,servlet的环境搭建,及servlet的一些方法)

    一个简便的方法实现javaee版的eclipse开发动态的WEB工程(javaWEB项目)1.把开发选项切换到javaEE2. 可以在window->shou view 中找到package e ...

随机推荐

  1. 使用cocoapods管理第三方类库

    前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正确地配置他们有时候是非常繁琐的事情,幸运的是CocoaPods是一个很好的解决方案. 什么是CocoaPods CocoaPods是OS ...

  2. c语言字符数组和指针的经典用法

    1.字符数组 许多情况下,对字符串的处理使用字符数组会更加方便,比如: 我觉得不改变字符串的原有顺序,对字符串进行删除等操作时,使用字符数组效果会更好. eg:给定字符串(ASCII码0-255)数组 ...

  3. poj 1273.PIG (最大流)

    网络流 关键是建图,思路在代码里 /* 最大流SAP 邻接表 思路:基本源于FF方法,给每个顶点设定层次标号,和允许弧. 优化: 1.当前弧优化(重要). 1.每找到以条增广路回退到断点(常数优化). ...

  4. 1.dubbo的安装 quickstart

    按照官网给定的指导,执行下面的步骤即可 1.Import the dubbo source code to eclipse project 在eclipse中安装git插件 egit 直接可以从git ...

  5. Kickstart + http Linux自动化部署服务端

    设备需要开启Network Boot功能.具体PXE技术就另外提,本文主要讲解配置. 在搭建该服务器之前需要关闭SELinux和iptables不然可能dhcp服务都起不来,客户端收不到IP地址,无法 ...

  6. width:100%缩小窗口时背景图片出现空白bug

    页面容器(#wrap)与页面头部(#header )为100%宽度.而内容的容器(#page)为固定宽度960px.浏览窗口缩小而小于内容层宽度时会产生宽度理解上的差异.如下图所示窗口宽度大于内容层宽 ...

  7. jQuery网页加载进度条插件

    jquery.pace.js会自动监测你的Ajax请求,事件循环滞后,记录您的页面上准备状态和元素来决定的进度情况. 将pace.js和主题css的添加到您的网页! pace.js会自动监测你的Aja ...

  8. img超出div width时, jQuery动态改变图片显示大小

    参考: 1. http://blog.csdn.net/roman_yu/article/details/6641911 2. http://www.cnblogs.com/zyzlywq/archi ...

  9. 开源中国iOS客户端学习

    开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客    http://blog.csdn.net/column/details/xfzl-kykhd.html ...

  10. .Echo 命令中经常提到回显,是什么意思?

    C:\>echo on C:\>date /t2006-08-06 星期日 C:\>以上内容是在打开回显的情况下执行的,其实我们想看到的只有2006-08-06 星期日这一行内容,但 ...