Eclipse搭建Web Service服务 之 jax-ws方式

本文详细介绍如何使用Eclipse和JAX-WS技术搭建WebService服务端与客户端。从创建动态Web项目开始,逐步介绍类的编写、WebService的配置及发布,直至最终的客户端调用和服务测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Eclipse搭建Web Service服务 之 jax-ws方式

Eclipse搭建Web Service服务端

1、建立动态Web工程(Dynamic Web Project),工程名为Server。编写类HelloWorld。


package com.mysever;
 
public class HelloWorld {
 
     public String sayHello(String name){
           return name + ",你好";
     }
}

2、新建一个Web Service,在弹出的窗口中找到Service implementation一项:指定要发布的服务。

3、点击“Finish”后,Eclipse会自动添加三方文件或内容。 HelloWorldDelegate.java  WEB-INF/sun-jaxws.xml,WEB-INF/web.xml

package com.mysever;

@javax.jws.WebService(targetNamespace = "http://mysever.com/", serviceName = "HelloWorldService", portName = "HelloWorldPort")
public class HelloWorldDelegate {

    com.mysever.HelloWorld helloWorld = new com.mysever.HelloWorld();

    public String sayHello(String name) {
        return helloWorld.sayHello(name);
    }

}

 WEB-INF/sun-jaxws.xml

<?xml version = "1.0"?>
<endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">
	<endpoint name="HelloWorldPort" implementation="com.mysever.HelloWorldDelegate" url-pattern="/HelloWorldPort"></endpoint>
</endpoints>

 WEB-INF/web.xml

<servlet>
	<description>JAX-WS endpoint - HelloWorldService</description>
	<display-name>HelloWorldService</display-name>
	<servlet-name>HelloWorldService</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>HelloWorldService</servlet-name>
	<url-pattern>/HelloWorldPort</url-pattern>
</servlet-mapping>
<welcome-file-list>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
	<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>

打开Tomcat服务(JDK:1.7,在对应的包下有jaxws文件夹生成。),输入http://localhost:8080/projectName/portName,访问Web Service。

142519_uOmv_3565362.png

可以看到当前类的提供的方法,说明成功。打开对应的接连:http://localhost:8001/aaa/HelloWorldPort?wsdl ,可以看到XML文件说明。

可以使用客户端工具:SOAP工具。

143004_Lavp_3565362.png

142930_pNpr_3565362.png

 

如果不能生成:增加JAR包

135232_VWiw_3565362.png

jaxws文件位文件内容:

sayHello.class:

package com.mysever.jaxws;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlRootElement(name="sayHello", namespace="http://mysever.com/")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="sayHello", namespace="http://mysever.com/")
public class SayHello
{

  @XmlElement(name="arg0", namespace="")
  private String arg0;

  public String getArg0()
  {
    return this.arg0;
  }

  public void setArg0(String arg0)
  {
    this.arg0 = arg0;
  }
}

 

package com.mysever.jaxws;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlRootElement(name="sayHelloResponse", namespace="http://mysever.com/")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="sayHelloResponse", namespace="http://mysever.com/")
public class SayHelloResponse
{

  @XmlElement(name="return", namespace="")
  private String _return;

  public String getReturn()
  {
    return this._return;
  }

  public void setReturn(String _return)
  {
    this._return = _return;
  }
}

 

4、创建工程(Java、Web工程均可),工程名为:client。

Eclipse搭建Web Service客户端

5、创建客户端。创建过程File-->New-->Other->Web Service Client 。

 6、引用服务,在弹出来的对话框中找到Service definition,填写服务端的URL地址,点击“Finsh”,自动导入需要的包和生成代码文件。

 7、新建测试类Test。

package com.test;
 
import java.rmi.RemoteException;
import com.mysever.HelloWorld;
import com.mysever.HelloWorldProxy;
 
public class Test {
   public static void main(String[] args) {
      try {
            HelloWorld service = new HelloWorldProxy();
            System.out.println(service.sayHello("aaa"));
      } catch (RemoteException e) {
            e.printStackTrace();
      }
   }
 
}

 

错误及解决:生成的时候出现

Project must be a JEE 5 or higher web project  解决办法:.mymetadata文件:project-module--》j2ee-spec="6.0"

 

转载于:https://my.oschina.net/spinachgit/blog/1544192

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值