使用JDK原生发布WebService,十分方便快捷. 附上项目工程代码 WebService使用JDK发布... 接口 @WebService这个注解,说明该接口是一个WebService接口 package com.jdk.ws;import javax.jws.WebService;@WebServicepubl
          使用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运行就好...
 
 
 
 
看到这个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结束...
