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

来源:互联网 发布:上海数据港 待遇 编辑:程序博客网 时间:2024/06/05 19:09
开发环境如下: 
JAVA IDE:       Myeclipse 8.5 
Web server:   Tomcat 6

开发Web service服务程序,需要了解以下相关内容, WSDL,  SOAP, XML。这些是组成Web service 的基础。 

在Myeclipse8.5下开发Web service程序,目前系统支持的开发框架有3个,JAX-WS,REST(JAX-RS),XFire。其中系统建议不要使用XFire 的框架,可能是要被淘汰了(deprecated)。我们选择的是JAX-WS框架。这个需要Java EE 5.0的支持。所以后面选择Web server容器的时候,是要能支持Java EE 5.0的才可以部署成功。 

(一) Web service服务端开发 
1. 新建一个Web service project, 菜单File -> New -> Web Service Project,

在上面的框中输入项目名myWebSvc,框架选择 JAX-WS, J2EE只能选择Java EE 5.0。 
Finish完成项目新建。 

2. 新建一个 Java Bean, 就是一个普通的Class, File –> New -> Class,


包名输入 com.myweb.ws, 类名输入 SayHello, Finish 结束新建类。 

在类中加入一个方法sayHaha如下, 

package com.myweb.ws; 

public class SayHello 

    public String sayHaha(String request) 
    { 
return "Haha, " + request + ", O.K. !"; 



3. 新建一个Web service, 菜单File –> New -> Other -> MyEclipse -> Web Services -> Web Service,



Next 进入下一步, 


选择 Create web  service from java class(Bottom-up scenario),Next进入下一步,



Java class 输入 com.myweb.ws.SayHello, 选中 Generate WSDL in project 选项, 
Finish 结束新建。 

生成新的服务代理类, com.myweb.ws.SayHelloDelegation 
生成WSDL定义文件,WebRoot\WEB-INF\wsdl\SayHelloService.wsdl 
WebRoot\WEB-INF\wsdl\SayHelloService_Schema1.xsd, 

(二) 部署Web service 服务 
deploy myeclipse j2ee project to server

2. 重启Tomcat 在浏览器输入 http://localhost:7001/myWebSvc/SayHelloPort,如果显示正确,则服务发布成功。 


(三) Web service 客户端开发 
1. 新建 Java project, File -> New -> Web Project, 

输入项目名 UseWS, Finish 结束新建。 

2. 新建Web service client程序, File –> New -> Other -> MyEclipse -> Web Services -> Web Service Client,

 

Next 进入下一步,

 

WSDL File 为Web Service 的WSDL文件 
E:\workspace\myWebSvc\WebRoot\WEB-INF\wsdl\SayHelloService.wsdl 
或WSDL URL为Web Service 的地址:
http://192.168.1.14:8080/myWebSvc/SayHelloService?wsdl

使用Myeclipse 8.5开发基于JAX-WS的Web service实例 (转) - 在路上 - 在路上
设置为WSDL URL为Web Service 的地址

 上面的红色框中写,服务名称和wsdl(下图中也有),黄色框中选择一个包,这个包中会放自动生成的代码。

使用Myeclipse 8.5开发基于JAX-WS的Web service实例 (转) - 在路上 - 在路上
 

 

Next进入下一步,



Finish 结束新建。 

3. 新建一个Test类,用来调用 SayHelloService,  File -> New -> Class,



Finish 结束类的新建。 

修改类如下: 
package com.beans;
import com.myweb.ws.SayHelloDelegate; 
import com.myweb.ws.SayHelloService; 

public class TestBean


    public String hello()
    { 
String request = "World"; 
String response = null; 

SayHelloService sayHelloSvc = new SayHelloService(); 
SayHelloDelegate sayHelloDgt = sayHelloSvc.getSayHelloPort(); 

response = sayHelloDgt.sayHaha(request); 
return response;
    } 


4. 编辑index.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="com.beans.TestBean"%>
<%
TestBean a=new TestBean();
%>
<jsp:useBean id="b" class="com.beans.TestBean" scope="page"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
<body>
    <%=a.
hello() %><br>
    <%=b.
hello() %><br>
</body>
</html>


修改后测试,显示成功。 

Haha, World, O.K. !


(全文完)
0 0