WebService(4)_标准JDK发布WebService

使用JDK原生发布WebService,十分方便快捷.

附上项目工程代码

WebService使用JDK发布...


接口

@WebService这个注解,说明该接口是一个WebService接口

package com.jdk.ws;

import javax.jws.WebService;

@WebService
public interface HelloService {
	
	public String sayHello(String name);
	
}

实现方法

package com.jdk.ws;

import javax.jws.WebService;

@WebService
public class HelloServiceImpl implements HelloService {

	public String sayHello(String name) {
		return "hello : "+name;
	}

}


main方法

public class WS_JDK_Main {
	
	/**
	 * 使用JDK提供的javax.xml.ws.Endpoint即可发布WebService.
	 * 不过需要提供一个WebService的地址(address).
	 * @param args
	 */
	public static void main(String[] args) {
		String address = "http://localhost:8080/jdkws/HelloSerice";
		HelloService helloService = new HelloServiceImpl();
		
		Endpoint.publish(address, helloService);
		System.out.println("WebService is start~ address : "+address);
	}
	
}

然后直接run运行就好...



然后打开浏览器 , 输入自己设置的address地址,末尾追加"?wsdl"



看到这个wsdl文档 , 就说明你的Server端已经发布成功,可以被其他客户端调用了...


然后我们编写客户端调用代码.

首先,使用jdk自带的工具,根据wsdl文档,生成代码.

我们先创建一个空的Client工程项目.

然后获取src的路径.

在cmd命令行中,进入这个目录.


接下来,调用JDK工具,生成客户端代码. 对了,忘记说了.. 一定要配置好,JDK环境变量!!!!!

而且 , 发布的服务端程序,不要关闭...让它一直跑着...

现在我们执行命令... 

后面的那个url就是浏览器中发布的地址.


接着我们去Client工程的src下刷新一下.. 会发现有自动生成的代码在里面.

提示 : 有时候自动生成的代码,会报错,这个大部分情况是JDK版本引起的(至少我遇到的都是JDK版本问题)..尝试,切换JDK版本试试...

这个是自动生成的代码



然后我们编写一个Test方法 , 去调用服务端.

客户端代码

package com.jdk.client;

import com.jdk.ws.HelloServiceImpl;
import com.jdk.ws.HelloServiceImplService;

public class TestClient {
	
	public static void main(String[] args) {
		
		HelloServiceImplService helloServiceImpl = new HelloServiceImplService();
		HelloServiceImpl helloService = helloServiceImpl.getHelloServiceImplPort();
		
		String responseStr = helloService.sayHello("CYX");
		System.out.println(responseStr);
	}
	
}

run运行一下...



下面这个图 , 对应了WSDL文档和客户端调用代码之间的关系.



OK...JDK发布WebService结束...


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值