eclipse下开发简单的Web Service
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的更多相关文章
- 【Java学习笔记】如何写一个简单的Web Service
本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程: 1.系统条件: Eclipse Java EE IDE for Web De ...
- C#开发和调用Web Service
http://blog.csdn.net/h0322/article/details/4776819 1.1.Web Service基本概念 Web Service也叫XML Web Service ...
- idea/eclipse下Maven工程集成web服务(tomcat、jetty)
idea/eclipse下Maven工程集成web服务 转载请注明出处:http://www.cnblogs.com/funnyzpc/p/8093554.html 应用服务器最常用的一般有这哥仨: ...
- Python接口测试实战5(下) - RESTful、Web Service及Mock Server
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- 用Spring MVC开发简单的Web应用程序
1 工具与环境 借助Eclipse4.3 + Maven3.0.3构建Java Web应用程序.使用Maven内置的servlet 容器jetty,不需手工集成Web服务器到Eclipse.还帮我们自 ...
- 最简单的Web Service实现
概述 这里提供一个最简单的Web Service的实现,基于JAX-WS.除了jdk不需要任何其他jar包,使用Eclipse提供的Web Services Explorer访问服务. 服务端的实现 ...
- 4-1eclipse & 4-2在eclipse下开发Java
ecplise是一款继承的开发工具,可以开发我们的java程序. 下载地址: https://www.eclipse.org/downloads/ 视频中ecplise的版本 安装Ecplise: 默 ...
- 使用JDK自带功能,实现一个简单的Web Service接口发布
万事开头难,本篇文章的目的就是使用JDK自带的功能,实现一个最简单的Web Service接口的发布. 下图是项目的组成,主要有三个部分,一个接口(WS),一个接口的实现类(WSImp),还有一个接口 ...
- 在javaEE下学习web(在eclipse中开发动态的WEB工程,servlet的环境搭建,及servlet的一些方法)
一个简便的方法实现javaee版的eclipse开发动态的WEB工程(javaWEB项目)1.把开发选项切换到javaEE2. 可以在window->shou view 中找到package e ...
随机推荐
- C蛮的全栈之路-序章 技术栈选择与全栈工程师
目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 博主背景 985院校毕业,至今十年C++开发工作经验, ...
- javascript——归并方法
<script type="text/javascript"> //ECMAScript5 还新增了2个归并数组的方法:reduce()和reduceRight(). ...
- Java学习笔记——动态代理
所谓动态,也就是说这个东西是可变的,或者说不是一生下来就有的.提到动态就不得不说静态,静态代理,个人觉得是指一个代理在程序中是事先写好的,不能变的,就像上一篇"Java学习笔记——RMI&q ...
- JqGrid自定义toolbar
1.设置toolbar参数为[true,"top"],其意思是toolbar显示在Grid顶部,且其id为t_+Grid的id.e.g.: Grid的id为myGrid,toolb ...
- Extjs打开window窗口自动加载html网页
Window inherits the autoLoad config option from Panel. Note that I included all config options below ...
- animate基础
用JQUERY做动画是很方便的,已经看过大牛们做出不逊色于FLASH的各种效果. 其中的基本功就有animate这个方法的使用.于是,从零开始,训练基本功: <body> <div ...
- sql server 发布时提示'dbo.sysmergepublications'无效的解决办法
对数据库进行数据库复制.订阅时经常会出现各种奇怪的问题 如果你对数据库进行多次发布.删除发布操作时可能会提示“dbo.sysmergepublications”无效的问题, 可以使用以下方法解决: U ...
- TinyMCE下载及使用
1.TinyMCE下载 官方下载网址:http://www.tinymce.com/ 简体中文语言包下载:http://www.tinymce.com/i18n/index.php?ctrl=lang ...
- 执行计划中常见index访问方式(转)
近期有朋友对于单个表上的index各种情况比较模糊,这里对于单个表上,单个index出现的大多数情况进行了总结性测试,给出了测试结果,至于为什么出现这样的试验结果未做过多解释,给读者留下思考的空间.本 ...
- js中的Call与apply方法
看到同行写得不错,直接转载了...0.0 祝大家天天开心! 例子来源http://uule.iteye.com/blog/1158829