我找到一下一些资料,都是入门级的教程:
WebServices入门:http://www.webasp.net/article/16/15135.htm
Xml WebService完全实例解析(一):
http://www.webasp.net/article/26/25537.htm
Xml WebService完全实例解析(二):
http://www.webasp.net/article/26/25538.htm
WebService初探:
http://www.webasp.net/article/5/4971.htm
这里还有非常多的相关资料:
http://www.webasp.net/article/class32/
原文:http://blog.csdn.net/djy1135/article/details/5610543
JAVA6中开发WebService----快速实践
1.新建一个web工程wstest
用Eclipse,点击右键新建一个web工程即可。
2.创建包
com.test.ws
3.创建服务端类文件 com.test.ws.Hello.java
package com.test.ws;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.Endpoint;
import javax.jws.soap.SOAPBinding.Style;
@WebService
@SOAPBinding(style=Style.RPC)
public class Hello {
/**
* Web服务中的业务方法
* @return 一个字符串
*/
public String sayHi(String name) {
return "hi," + name;
}
public static void main(String[] args) {
// 发布一个WebService
Endpoint.publish("http://localhost:81/hello", new Hello());
}
}
注意:由于JDK版本的关系,我所用的版本必须加上@SOAPBinding(style=Style.RPC)
,否则会报错"Wrapper class com.test.ws.jaxws.SayHi is not found. Have you run APT to generate them?"。
4.测试服务器端程序
(1)运行Hello.java
(2)在浏览器中输入:http://localhost:81/hello?wsdl 即可看到相应的描述信息
5.创建客户端
(一)方式一,自动创建
(1)进入DOS命令行状态,并进入wstest项目的src目录
(2)执行如下命令:
D:/workspace/wstest/src>wsimport -p com.test.ws.client -keep http://localhost:81/hello?wsdl
注意:一定要先运行Hello.java,保持服务先开启,否则会报错
(3)进入Eclipse中,按F5刷新wstest项目,会发现com.test.ws会多了一个目录client,并且client目录下自动创建了四个文件:Hello.class、Hello.java、HelloService.class、HelloService.java
(4)新建一个客户端测试类com.test.ws.client.TestClient.java
package com.test.ws.client; public class TestClient { public static void main(String args[]){ Hello hello = new HelloService().getHelloPort(); String msg = hello.sayHi("tom"); System.out.println(msg); } }
(5)运行TestClient.java, 会输出如下结果:
hi, tom
(二)方式二,手工创建客户端 (简洁,容易看明白)
(1)创建服务端对应的接口com.test.ws.client.HelloInte.java
package com.test.ws.client;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService(name = "Hello", targetNamespace = "http://ws.test.com/")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface HelloInte {
@WebMethod
@WebResult(partName = "return")
public String sayHi(
@WebParam(name = "arg0", partName = "arg0")
String arg0);
}
(2)创建客户端测试类 com.test.ws.client.TestClient.java
package com.test.ws.client;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;
public class TestClient {
public static void main(String[] args) throws Exception{
URL url = new URL("http://localhost:81/hello?wsdl");
// 第一个参数是服务的URI
// 第二个参数是在WSDL发布的服务名
QName qname = new QName("http://ws.test.com/", "HelloService");
// 创建服务
Service service = Service.create(url, qname);
// 提取端点接口,服务“端口”。
HelloInte h= service.getPort(HelloInte.class);
System.out.println(h.sayHi("michael"));
System.out.println(h.sayHi("tom"));
}
}
(3)运行 TestClient, 会出现如下结果:
hi,michael
hi,tom
补充:为了验证服务端与客户端的相关性,停掉Hello.java后,再次执行TestClient.java,则会报错。说明客户端的访问是与服务器端相关的。
6.WEB方式部署
(1)创建com.test.ws.client.servlet.PubServlet.java
package com.test.ws.servlet; import java.io.IOException; import javax.servlet.GenericServlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.xml.ws.Endpoint; import com.test.ws.Hello; public class PubServlet extends GenericServlet { public PubServlet() { super(); } public void destroy() { super.destroy(); } @Override public void init() throws ServletException { super.init(); System.out.println("start run webservice..."); Endpoint.publish("http://localhost:81/hello", new Hello()); System.out.println("Webservice is running..."); } @Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { } }
(2)修改web.xml
<servlet>
<servlet-name>PubServlet</servlet-name>
<servlet-class>com.test.ws.servlet.PubServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>PubServlet</servlet-name>
<url-pattern>/servlet/PubServlet</url-pattern>
</servlet-mapping>
注意:此处要让PubServlet自动启动,所以要设load-on-startup为1。
(3)发布完成,启动web服务
(4)运行TestClient.java测试
7.小结
(1)不管是直接通过main()方法运行,还是通过servlet来发布,其实都是在执行Endpoint.publish()方法
(2)在web中发布时,webservice所用的端口必须跟web容器所用的端口分开
(3)与xfire相比,通过此种方式不用再倒入第三方包,开发起来比较方便。不过,我个人还是比较喜欢xfire的方式。目前这种客户端的实现让我觉得不太爽。另外,它在web容器中的发布也没有xfire方便。
相关推荐
在Java开发中, Axis是一个强大的开源工具,它用于创建和部署Web服务。本文将详细介绍如何使用Axis进行Web服务的发布与调用,以及涉及的相关知识点。 一、Axis简介 Axis是Apache软件基金会的一个项目,主要用于处理...
Java WebService接口开发是将Java应用程序暴露为网络服务的一种方式,允许不同系统间的数据交换和交互。本案例将深入探讨如何使用Java实现Web服务的创建、发布和调用。 一、理解WebService WebService是一种基于...
在Java 6中开发Web服务(WebService)是企业级应用中...同时,通过提供的HTML文档(Java6上开发WebService.html)和相关资源(java6WS、Java6上开发WebService_files),可以更深入地学习和实践Java 6 Web服务开发。
在"WebService02"这个压缩包中,可能包含了与本文相关的示例代码或教程资源,可以帮助读者更直观地学习和实践Java 6中的Web服务开发。通过阅读和运行这些示例,你可以更好地理解上述概念,并熟练掌握JAX-WS的使用。...
【标签】"webservice-sqlserver java_webservice webservice__sgip wsdl_webservice_ wsdl.rar"进一步揭示了技术栈。"sqlserver"表明数据库管理是通过SQL Server完成的,这通常涉及到使用JDBC(Java Database ...
在Java项目开发实践中,网络篇主要涵盖了Web服务(WebService)、Web邮件(WebMail)、工作流(Workflow)、连接池(ConnPool)以及套接字编程(Socket)这五个关键领域。下面将对这些主题进行详细阐述。 首先,Web...
综上所述,WebService-CXF实用手册学习大全主要讲述了WebService的基础知识、Java中的相关规范、CXF框架的应用以及在开发过程中会遇到的一些高级特性和最佳实践。这些知识点对于理解和实施基于Java的WebService开发...
综上所述,"webservice-service-demo.rar"提供了一个基于SpringBoot 2.0和Apache CXF的Webservice服务示例,可以帮助开发者快速理解和实践如何在SpringBoot环境中开发和部署Web服务。通过学习这个示例,可以掌握包括...
Axis2是Apache软件基金会开发的一个高性能、灵活且可扩展的Web Service引擎,它是Apache SOAP项目的后续产品,主要用Java语言实现。 Axis2的核心功能包括: 1. **消息处理**:Axis2能够处理SOAP 1.1和1.2消息,...
综上所述,"wsdl2java源码-actuate-webservice-samples:启动-webservice-samples"这个项目是一个开源的Java Web服务开发示例,它利用Wsdl2Java工具将WSDL文件转化为Java代码,为开发者提供了学习和实践Web服务开发的...
总的来说,这个示例项目是一个学习 JAX-WS 与 Spring 整合的宝贵资源,对于想要提升 Java Web 服务开发技能的开发者来说,这是一个不容错过的实践案例。通过这个例子,开发者可以了解到如何利用 JAX-WS 的优势来构建...
Java WebService应用实例是Java开发中的一个重要组成部分,它允许不同平台和语言的系统之间通过标准接口进行通信。在本实例中,我们主要关注如何在Java环境中实现和使用WebService,特别是结合Spring框架集成XFire...
【标题】: "Web服务(WebService)在JBoss应用服务器上的实现教程" ...这个教程旨在帮助开发者熟悉在JBoss上部署和管理Web服务的基本步骤,通过实践学习,可以提升在企业级环境中开发和维护Web服务的能力。
MyEclipse是基于Eclipse的商业级Java开发工具,它集成了多种功能,如Java EE应用开发、Web开发、数据库管理等。对于Java WebService的开发,MyEclipse提供了一站式的解决方案,包括服务创建、调试和部署。 2. **...
Java与SOAP(Simple Object Access Protocol)以及Web服务的结合是一种常见的技术栈,用于构建分布式系统。本教程将深入探讨如何使用...希望这个概述能帮助你开始你的SOAP Web服务之旅,并在Java开发中取得更大的成就。
Web服务(WebService)是一种基于互联网的、平台独立的交互方式,允许不同的系统之间进行数据交换。...通过学习和实践这个整合,你可以深入理解Web服务的工作原理,提升在企业级应用开发中的能力。
这个小Demo旨在帮助开发者理解并实践基于Axis的WebService开发过程。在本文中,我们将深入探讨WebService和Axis的相关概念,并通过分析提供的文件`webservicTest`来讲解如何运行这个Demo。 首先,让我们了解什么是...
Java Axis WebService 开发实例详解 在Java世界中,开发Web服务时,Axis是一个非常流行的开源工具,它允许开发者创建、部署和使用Web服务。本实例将深入探讨如何使用Axis来构建一个简单的Web服务,并进行调用。这个...
通过这个"java-经典webservice源码"实例,开发者可以深入了解Java中WebServices的工作原理,并快速上手实践。理解这些概念和技术,对于构建分布式、跨平台的系统具有重要意义。在实际项目中,WebServices常用于不同...
**WebService技术概述** WebService是一种基于XML(eXtensible Markup Language)的标准协议,它允许不同系统之间...通过实践和阅读提供的开发指南,开发者可以更熟练地运用WebService技术,提升系统间的集成能力。