`

JAX-WS(java api xml webservice)

 
阅读更多

创建服务器端

1.创建一个接口

IMyService.java

package com.test.service;

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

// SEI(Service Endpoint Interface)
@WebService
public interface IMyService {
	@WebResult(name = "addResult")
	public int add(@WebParam(name = "a") int a, @WebParam(name = "b") int b);
}

 

2.创建实现接口的类

MyServiceImpl.java

package com.test.service;

import javax.jws.WebService;

// SIB(Service Implemention Bean)
@WebService(endpointInterface = "com.test.service.IMyService")
public class MyServiceImpl implements IMyService {
	@Override
	public int add(int a, int b) {
		return a + b;
	}
}

 

3.开启服务

MyServer.java

package com.test.service;

import javax.xml.ws.Endpoint;

public class MyServer {
	public static void main(String[] args) {
		String address = "http://localhost:9999/server";
		// 发布服务的实现类
		Endpoint.publish(address, new MyServiceImpl());
	}
}

 

在浏览器中输入:http://localhost:9999/server?wsdl就可以访问webservice所提供的服务

客户端访问

MyClient.java

package com.test.service;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class MyClient {
	public static void main(String[] args) {
		try {
			// 创建访问wsdl服务地址的url
			URL url = new URL("http://localhost:9999/server?wsdl");
			// 通过QName指明服务的具体信息
			QName qName = new QName("http://service.test.com/", "MyServiceImplService");
			// 创建服务
			Service service = Service.create(url, qName);
			// 实现接口
			IMyService ms = service.getPort(IMyService.class);
			System.out.println(ms.add(12, 13));
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
}

 

这里有个问题:service获取实现接口的类时,要依赖于IMyService接口

这里,通过java提供的wsimport命令把wsdl导成.java.class,就不需要依赖于IMyService接口了,如下图:

 

-d:指定生成的目录;

-keep:指定是否生成java的源代码,如果没有-keep,只能生成.class二进制文件;

-verbose:显示生成的详细过程;其后跟着网络中wsdl的文件;

-p:指定生成的包;(很少用到)

生成文件如下图:



 

接着创建独立的java项目,把这些java文件拷贝到src下面,再次创建客户MyClient.java

package com.test.service;

public class MyClient {
	public static void main(String[] args) {
		MyServiceImplService msis = new MyServiceImplService();
		IMyService ms = msis.getMyServiceImplPort();
		System.out.println(ms.add(12, 13));
	}
}

 

这个时候service获取实现接口的类时,就不需要依赖于IMyService接口了

  • 大小: 14.9 KB
  • 大小: 15.4 KB
分享到:
评论

相关推荐

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

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和消费Web服务。本篇将深入讲解如何基于JAX-WS开发一个WebService实例。 首先,让我们了解JAX-WS的基本概念。JAX-WS提供了一种简单的方式...

    JAX-WS2.0 API

    `jaxws-2_0-pfd-spec-api.jar`可能包含了JAX-WS 2.0规范的API类库,供开发者在应用中导入并使用。在实际开发中,还需要相应的实现库,如`metro.jar`,来处理具体的Web服务交互。 **使用场景:** 1. **企业级应用...

    jax-ws api jar包

    在给定的压缩包文件"jax-ws api jar包"中,包含的是JAX-WS 2.2.1版本的API库,即`jaxws-api-2.2.1.jar`。这个jar文件是开发基于JAX-WS的Web服务所必需的依赖之一。以下是关于JAX-WS的一些核心知识点: 1. **服务端...

    Jax-ws所需要的JAR包

    2. **jaxb-api.jar**:Java Architecture for XML Binding (JAXB) API,用于XML和Java对象之间的转换,是JAX-WS的重要依赖。 3. **cxf-rt-frontend-jaxws.jar** 和 **cxf-rt-transports-http.jar**:Apache CXF是一...

    webservice之jax-ws

    【标题】:Web服务之Java API for XML Web Services (JAX-WS) 【内容详解】 JAX-WS,全称为Java API for XML Web Services,是Java平台上的一个标准,用于构建和部署基于SOAP(Simple Object Access Protocol)的...

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

    【JAX-WS】:全称Java API for XML Web Services,是Java平台上用于构建和消费Web服务的标准API。JAX-WS是取代了早期的JAX-RPC,它以更现代的方式处理Web服务,支持WSDL(Web服务描述语言)2.0,SOAP(简单对象访问...

    JAX-WS_Java API for XML Web Services

    **JAX-WS: Java API for XML Web Services** JAX-WS(Java API for XML Web Services)是Java平台上用于创建Web服务和Web服务客户端的核心API。这个标准由Java社区进程(JCP)制定,旨在简化面向服务架构(SOA)的...

    jax-ws实现webservice调用

    **Java API for XML Web Services (JAX-WS)** 是一种由Java SE和Java EE平台支持的用于构建Web服务的标准API。它使得开发人员能够轻松地创建、部署和使用基于SOAP(简单对象访问协议)的Web服务。在本教程中,我们将...

    jax-ws发布webservice

    Java API for XML Web Services(JAX-WS)是Java平台上的一个标准,用于构建和部署Web服务。它简化了Web服务的开发,使得Java开发者能够更方便地创建、调用和部署SOAP(Simple Object Access Protocol)服务。在这个...

    Jax-ws RI.zip

    Java API for XML Web Services (JAX-WS) 是Java平台上的一个标准,用于构建和部署Web服务。JAX-WS RI(Reference Implementation)是这个规范的官方参考实现,它提供了开发、测试和运行基于SOAP(Simple Object ...

    jax-ws webservice简单demo

    Java API for XML Web Services(JAX-WS)是Java平台上的一个标准,用于构建和部署Web服务。它简化了Web服务的开发,使得开发者能够使用Java编程语言来创建、调用和部署SOAP(Simple Object Access Protocol)服务。...

    jax-ws2.1.zip

    **标题:“jax-ws2.1.zip”**指的是一个包含Java API for XML Web Services(JAX-WS)2.1版本的压缩包。JAX-WS是Java平台标准版(Java SE)和企业版(Java EE)的一部分,用于构建基于SOAP(Simple Object Access ...

    metro-jax-ws-jaxws221x.zip

    【标题】"metro-jax-ws-jaxws221x.zip" 提供的是一个关于JAX-WS(Java API for XML Web Services)的开发示例,其中包含了JAX-WS 2.2.1版本的相关组件和库文件。这个压缩包是针对Java开发者设计的,用于帮助他们理解...

    jax-ws WebService客户端与服务端工程.rar

    Java API for XML Web Services (JAX-WS) 是Java平台上用于构建Web服务和客户端的API。这个"jax-ws WebService客户端与服务端工程.rar"压缩包文件包含了一个完整的示例,展示了如何使用JAX-WS创建和消费Web服务。让...

    webservice Demo注解+jax-ws

    在这个“webservice Demo注解+jax-ws”示例中,我们将深入探讨Web服务的注解使用以及基于Java API for XML Web Services (JAX-WS)的实现。 首先,让我们了解一下JAX-WS。它是Java平台的标准组件,用于创建和处理Web...

    java WebService Jax-WS创建

    JAX-WS(Java API for XML Web Services)是Java EE 5及更高版本中提供的标准API,用于简化Web服务的开发。 在【MyEclipse中创建WebService的方法文档】中,主要步骤如下: 1. **新建Web Service Project**:首先...

    jax-ws创建webservice

    Java API for XML Web Services(jax-ws)是Java平台标准版(Java SE)和企业版(Java EE)的一部分,它为开发者提供了一种创建和消费Web服务的标准方式。jax-ws允许开发人员通过简单的编程模型来实现基于SOAP的Web...

Global site tag (gtag.js) - Google Analytics