`
horizonhyg
  • 浏览: 58463 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

myeclipse6.5上基于JAX-WS开发Webservice(中文示例)

    博客分类:
  • JAVA
阅读更多
1. Introduction
This document will outline the process of developing a JAX-WS web service and deploying it using MyEclipse 6.5 to the internal MyEclipse Tomcat server. The web service used in this tutorial will be a very simple calculator service that provides add, subtract, multiply and divide operations to the caller.

MyEclipse also supports developing web services using the existing XFire framework from previous MyEclipse releases. For folks needing to develop and deploy WebSphere JAX-RPC or WebSphere JAX-WS web services, please take a look at our MyEclipse Blue Edition of the MyEclipse IDE.

Additional resources covering web service creation using JAX-RPC, JAX-WS or XFire are included in the Resources section of this document.


2. System Requirements
This tutorial was created with MyEclipse 6.5. If you are using another version of MyEclipse (possibly newer), most of these screens and instructions should still be very similar.

If you are using a newer version of MyEclipse and notice portions of this tutorial looking different than the screens you are seeing, please let us know and we will make sure to resolve any inconsistencies.

3.新建一个工程
开始我们新建一个Web Service Project工程File->New->Web Service Project(Optional Maven Support)


Note:A JAX-WS web service can also be generated in any existing Java EE 5 web project.

我们给这个工程取名为WebServiceProject.注意JAX-WS支持只在javaEE5或更高版本的工程中是可行的。如果你需要使用低版本的工程类型(java1.4或者1.3),那么只能使用XFire Web Service代替JAX-WS。

这里我们使用上面的JAX—WS。
4.创建服务类
服务类就是一个普通的java类,负责提供我们想要发布的执行方法。这里我们写一个简单的计算器类,实现几个典型的计算器应用方法,如加减乘除。
首先我们先建一个包,WebServiceProject->src->new->package,取名com.myeclipseide.ws

让后我们在这个包下建一个类,Calculator.java.

根据上面提到的,这个计算器类实现计算器的加减乘除算法,简单实现:
package com.myeclipseide.ws; 

public class Calculator { 
    public int add(int a, int b) { 
        return (a + b); 
    } 

    public int subtract(int a, int b) { 
        return (a - b); 
    } 

    public int multiply(int a, int b) { 
        return (a * b); 
    } 

    public int divide(int a, int b) { 
        return (a / b); 
    } 
} 

可以看出,这个类中的方法是非常简单的,没有用到特殊的注释还有接口,父类之类的东西。
5.创建一个Web Service
在上面的工具条中点击新建Web Service

Note:如果没有的话可以File->New->others->Myeclipse->WebService->webService
点击之后出现的屏幕,在Strategy中选择Bottom-up scenario,因为我们已经建立好了Calculator类而且想根据它建立JAX-WS服务。

下面是创建的最后一个屏幕,你需要选择提供webService方法的javaBean,在我们这个例子中就是我们已经建立好的Calculator类。

填好之后,Myeclipse会自动帮我们填满其他的项,Select Generate WSDL in project and hit Finish.

点击完成之后,Myeclipse会自动生成CalculatorDelegate代理类,还有一些必须的JAX-WS描述符,而且会自动在服务器目录下的web.xml中配置WebService的一些mappings,方便将webService部署到服务器中。

到此web service已经建立好了,我们开始部署它然后进行测试。
6.部署和测试webService。
这里我们不使用用Myeclipse自带的tomcat服务器,使用自己应经在电脑中部署好的tomcat5.5。
在server面板中右击,选择configure

部署自己的tomcat注意选择jdk要跟项目中的相同。


现在要向工程中导入JAX-WS的jar包
在项目名称上右击->properties->Add Library->Myeclipse Libraries->最后面的两个。




点击完成,导入成功。
Note:Myeclipse自带的tomcat中有自带的这两个jar包,可以不用导入。
6.1部署
在部署好的tomcat服务器上右击选择Add Deployment


点击完成。
6.2测试
运行tomcat服务器,在工具栏中点击launch WebService Explorer

打开后,点击右上角的WSDL视图,可以看到下面的屏幕



在WSDL URL中填写路径:http://localhost:8888/WebServiceProject/CalculatorPort?WSDL
解释下路径组成:
http://localhost:8888/是服务器的路径,我的端口号是8888,可以根据自己的更改,一般都是8080。
/WebServiceProject = We know by default the Web Context-root that is used to deploy(部署) web projects matches the name of the projects. (因为我们没有为这个工程自定义我们的Web Context-root,所以他就是这个工程的名字)
/CalculatorPort = As we saw from the last screenshot in Section #5, when our JAX-WS web service was generated, it was bound using a servlet-mapping in the web.xml file to the /CalculatorPort path.
<servlet>
  	<description>JAX-WS endpoint - CalculatorService</description>
  	<display-name>CalculatorService</display-name>
  	<servlet-name>CalculatorService</servlet-name>
  	<servlet-class>
  		com.sun.xml.ws.transport.http.servlet.WSServlet
  	</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>CalculatorService</servlet-name>
  	<url-pattern>/CalculatorPort</url-pattern>
  </servlet-mapping>

?WSDL = This is a universal query string argument that can be added to the end of any web service which will tell the web service to return it's full WSDL to the caller. In this case, the WSDL is returned to our Web Services Explorer tool which loads it up, and displays the web services exposed operations to us.
弄清楚之后,我们开始测试,比如我们选择add方法:
填写args,点击go,在status中就会显示结果。



结果是正确的。
7.创建Webservice Client
现在我们已经部署好Webservice,而且应经测试过了,那我们新建一个Webservice client,来调用Webservice提供的方法。
7.1新建一个java project,给他取个名字。比如我们叫它ClientofWebService


在工具条中点击new Web Service Client


然后按照以下步骤操作:

The last step of the web service client creation is to specify either a WSDL File or a WSDL URL for the wizard to retrieve the web service WSDL from. In our case we are using the URL and generate the client into the new package com.myeclipseide.ws.client:

http://localhost:8888/WebServiceProject/CalculatorPort?WSDL


点击Next知道完成。
可以看到在新建的java project ClientofWebService中,src文件夹下产生了许多的文件,根据名称我们大体可以了解其意思,可以打开看一下源代码,其实不难理解。比如add文件,就是Calculator类中add方法的两个参数的get和set方法。其他类似。
我们在文件夹下见一个类test.java写一个main函数测试
public static void main(String[] args) { 
    /* Create the service instance */ 
    CalculatorService service = new CalculatorService(); 
    CalculatorDelegate delegate = service.getCalculatorPort(); 

    /* Using the web service, perform the 4 calculations */ 
    System.out.println("1. 3+7=" + delegate.add(3, 7)); 
    System.out.println("2. 12-2=" + delegate.subtract(12, 2)); 
    System.out.println("3. 9*9=" + delegate.multiply(9, 9)); 
    System.out.println("4. 40/2=" + delegate.divide(40, 2)); 
} 


运行得到如下结果:
1. 3+7=10
2. 12-2=10
3. 9*9=81
4. 40/2=20
测试完成。
8. Resources
In this section we want to provide you with additional links to resources that supplement the topics covered in this tutorial. While this is not an exhaustive list, we do make an effort to point to the more popular links that should provide you with diverse, high-quality information.

Example Web Service Project & Web Service Client Project
NOTE: The example projects provided are configured to run against WebSphere 6.1. You may need to adjust the Target Server and/or the runtime JRE libraries used to build the projects to more closely match your particular build and deployment environment.




有些地方说的不是很好,但是大体应该能够弄明白,限于能力问题,请大家体谅。











分享到:
评论
12 楼 ddnzero 2013-10-28  
楼主要是接着发一个 Spring 集成webService的文章就更好了
11 楼 ysn003 2012-12-20  
thank you very much!!!
10 楼 past2010yeah 2012-10-12  
g64513767 写道
我都是按照步骤来的 在最后 打wsdl的时候出错了  请问为什么啊?

IWAB0379E Unable to open http://localhost:8080/WebServiceProject/CalculatorPort?WSDL.
IWAB0135E An unexpected error has occurred.
WSDLException
WSDLException: faultCode=OTHER_ERROR: http://localhost:8080/WebServiceProject/CalculatorPort?WSDL






同样错误。晕菜
9 楼 loveinmost 2012-02-14  
相当NB,赞
8 楼 g64513767 2011-11-29  
我都是按照步骤来的 在最后 打wsdl的时候出错了  请问为什么啊?

IWAB0379E Unable to open http://localhost:8080/WebServiceProject/CalculatorPort?WSDL.
IWAB0135E An unexpected error has occurred.
WSDLException
WSDLException: faultCode=OTHER_ERROR: http://localhost:8080/WebServiceProject/CalculatorPort?WSDL



7 楼 horizonhyg 2011-09-01  
maimode 写道
但是我不明白的就是CalculatorService service = new CalculatorService();  中的CalculatorService是哪里的东西?
另外如何在application程序中调用这个web service方法呢?

呵呵太长时间我也忘了,大概你运行一遍就知道从哪里来了
6 楼 maimode 2011-08-19  
但是我不明白的就是CalculatorService service = new CalculatorService();  中的CalculatorService是哪里的东西?
另外如何在application程序中调用这个web service方法呢?
5 楼 maimode 2011-08-19  
谢谢,文章很详尽,我初学web service对我很有帮助。
4 楼 horizonhyg 2010-04-02  
showlee2008 写道
在客户端导入WSDL时报错,错误代码如下:
WS-I: A problem occurred while running the WS-I WSDL conformance check: org.eclipse.wst.wsi.internal.analyzer.WSIAnalyzerException. The WS-I Test Assertion Document(TAD) was either not found or could not be processed. The WSDLAnalyzer was unable to validate the given WSDL file.
LZ能否给点意见,这是怎么回事?

这个你得去问谷老师了,还真么有遇到过~~~
3 楼 showlee2008 2010-04-02  
在客户端导入WSDL时报错,错误代码如下:
WS-I: A problem occurred while running the WS-I WSDL conformance check: org.eclipse.wst.wsi.internal.analyzer.WSIAnalyzerException. The WS-I Test Assertion Document(TAD) was either not found or could not be processed. The WSDLAnalyzer was unable to validate the given WSDL file.
LZ能否给点意见,这是怎么回事?
2 楼 horizonhyg 2010-01-21  
winneryj 写道
谢谢楼主

其实这个是有详细的图的,但是不知道为什么没有了》。。。。
1 楼 winneryj 2009-12-10  
谢谢楼主

相关推荐

    myeclipse6.5上基于JAX-WS开发Webservice(中文示例).doc

    - 如果需要在 WebSphere 平台上开发 JAX-RPC 或 JAX-WS Web 服务,可能需要 MyEclipse 的特定版本,如 MyEclipse Blue Edition。 7. 资源和进一步学习: - 文档的“资源”部分可能包含更多关于使用 JAX-RPC、JAX-...

    MyEclipse6.5上基于JAX-WS开发Webservice

    在 MyEclipse 6.5 中,JAX-WS 是开发 Web 服务的主要框架。 2. MyEclipse 6.5 MyEclipse 是一款集成开发环境(IDE),它是 Eclipse 的扩展,特别为 Java 和 Java EE 应用程序开发提供了额外的支持。在 MyEclipse ...

    MyEclipse6.5基于JAX-WS开发Webservice

    MyEclipse6.5基于JAX-WS开发Webservice

    MyEclipse6_5上基于JAX-WS开发Webservice(中文示例)

    在"浔阳江上 - BlogJava.htm"和"MyEclipse6_5上基于JAX-WS开发Webservice(中文示例) - 浔阳江上 - BlogJava_files"这两个文件中,可能包含了作者在BlogJava网站上分享的具体步骤和示例代码,帮助读者更好地理解和...

    MyEclipse基于JAX-WS开发Webservice+WebserviceClient客户端调用.zip

    在这个压缩包中,"MyEclipse6.5上基于JAX-WS开发Webservice+WebserviceClient客户端调用.doc"很可能是一份详细的步骤指南,涵盖了如何在MyEclipse 6.5版本中使用JAX-WS创建Web服务,以及如何生成和使用客户端代码来...

    如何基于JAX-WS开发一个WebService实例

    本篇将深入讲解如何基于JAX-WS开发一个WebService实例。 首先,让我们了解JAX-WS的基本概念。JAX-WS提供了一种简单的方式来创建SOAP(Simple Object Access Protocol)Web服务,它集成了Java SE和Java EE平台,使得...

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例 - 外衣 - 博客频道 - CSDN_NET.mht

    JAX-WS开发webservice示例详解

    Java API for XML Web Services (JAX-WS) 是Java平台上的一个标准,用于开发基于SOAP协议的Web服务。它简化了Web服务的创建、部署和消费,使得开发者可以使用面向对象的方式来处理Web服务。本篇文章将深入探讨如何...

    jax-ws webservice demo

    基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...

    使用Myeclipse-8.5开发基于JAX-WS的Web-service实例.docx

    使用 Myeclipse 8.5 开发基于 JAX-WS 的 Web Service 实例 本文档主要介绍了使用 Myeclipse 8.5 开发基于 JAX-WS 的 Web Service 实例的步骤,涵盖了 Web 服务程序和客户端程序的基本流程,以及在 Weblogic 10.3.4 ...

    jax-ws创建webservice

    jax-ws允许开发人员通过简单的编程模型来实现基于SOAP的Web服务,从而简化了Web服务的开发流程。 在MyEclipse环境中创建jax-ws Web服务的过程主要包括以下几个步骤: 1. **创建Web服务接口**:首先,你需要定义一...

    使用JAX-WS开发WebService入门教程.pdf

    2. **开发工具**:本教程推荐使用MyEclipse作为开发工具,因为MyEclipse内置了对JAX-WS的支持,能够方便地进行WebService的开发和部署。 3. **JAR包配置**:需要将JAX-WS所需的JAR包添加到项目的classpath中。这些...

    MyEclipse中jax-ws开发教程

    在MyEclipse中使用JAX-WS开发Web服务是一个简单而高效的过程,下面将详细介绍这个过程中的关键步骤和涉及的技术点。 首先,JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和消费Web服务...

    JAX-WS开发的文件生成与部署相关全视频过程

    如果基于一个JAX-WS进行WebService开发,有很多教程,但是具体怎么更自动地生成一些文件,实现客户端与服务端的交互,都讲得不大清楚,为了让大家更方便地部署,我将服务端、客户端文件的生成与部署全过程以及测试...

    学习JAX-WSWebService开发

    在本教程中,我们将深入探讨JAX-WS的核心概念、开发流程以及如何在MyEclipse集成开发环境中实现Web服务。 首先,让我们理解什么是Web服务。Web服务是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的应用程序,允许...

    使用JAX-WS(JWS)发布WebService

    使用JAX-WS(JWS)发布WebService 使用myeclipse开发java的webservice的两种方式 方式一: (此方式只能作为调试,有以下bug:jdk1.6u17?以下编译器不支持以Endpoint.publish方式发布document方式的soap,必须在...

Global site tag (gtag.js) - Google Analytics