首页 > 代码库 > JAX-WS

JAX-WS

1.创建一个普通的Java Project,例如叫wsService

2.创建package com.du.ws

3.创建接口 com.du.ws.HelloService.java

3.1 类用@WebService注解

3.2 方法用@WebMethod注解

@WebService 

public interface HelloService {

@WebMethod 

String sayHello(String name);

}


4.创建接口的实现类com.du.ws.HelloService.java

4.1 类用@WebService注解

4.2 方法用@WebMethod注解,如果方法要排除,使用@WebMethod(exclude=true)排除

@WebService

public class HelloServiceImpl implements HelloService {

@WebMethod

public String sayHello(String name) {

return "Hello " + name;

}

}

5.编写发布类com.du.endpoint.HelloServicePublisher.java

5.1 静态main方法 使用EndPoint.publish(URL,NEW_INSTANCE)格式发布

5.2 URL就是WSDL服务的地址,NEW_INSTANCE就是实例类

public class HelloServicePublisher {

public static void main(String[] args) {

Endpoint.publish("http://localhost:8888/helloService", new HelloServiceImpl());

System.out.println("Service is published!");

}

}

6.访问http://localhost:8888/helloService?wsdl如果看到XML格式,表示发布成功.

7.生成*.wsdl文件

7.1编写ANT文件或者借使用wsgen命令,因为项目使用JDK自带的JAX-WS API创建的.

7.2 使用wsgen命令:cmd进入到项目根目录使用命令,

wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl com.du.ws.HelloServiceImpl

使用时如果不清楚可以wsgen,看帮助说明比较重要的有-cp -r -s -d -wsdl

-cp 定义classPath,一般为./bin

-r 生成的wsdl文件存放目录,要创建好目录,否则会报找不到目录

-s 生成发布Web Service的源代码文件目录,一般为./src

-d 生成发布Web Service的对应class文件存放目录,一般为./bin

7.3 使用ANT文件 build_wsdl.xml,右键Run As -> Ant Build

<?xml version="1.0"?>

<project default="wsgen">

<target name="wsgen">

<exec executable="wsgen">

<arg line="-cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl com.du.ws.HelloServiceImpl" />

</exec>

</target>

</project>

8. 执行完成后,项目右键,Refresh.

8.1 会在wsdl目录下生成*Service.wsdl文件和 *Serviec_schema1.xsd校验文件

8.2 在com.du.ws下创建package jaxws存放对应的发布源代码


--根据*.wsdl文件和*.xds生成web service文件 (HelloServiceImplService.wsdl , HelloServiceImplService_schema1.xsd)

1. 创建一个普通java project.例如叫wsServiceClient

2. 将*.wsdl和*.xds文件复制到src目录下

3. 使用wsimport -d表示生成的class文件目录, -s表示源文件目录

3.1直接路径

wsimport -d D:/xxx/workspace/ProjectName/bin -s D:/xxx/workspace/ProjectName/src HelloServiceImplService.wsdl

3.2间接路径 -s后面的点表示当前路径

wsimport -d ../bin -s . HelloServiceImplService.wsdl

3.3通过WSDL服务发布的WSDL link.

wsimport -d ../bin -s . http://localhost:8888/helloService?wsdl

4.上面的命令会根据Web Servie创建时的package接口创建源文件,这样就创建成功了.

5.编写测试类

在静态Mail方法中获取service,创建Port实例,调用相应的方法

public class TestHelloServiceClient {

public static void main(String[] args) {

HelloServiceImplService service = new HelloServiceImplService();

HelloServiceImpl proxy = service.getHelloServiceImplPort();

System.out.println(proxy.sayHello("Chen, Du"));

}

}



JAX-WS