使用这些新功能,我们可以仅仅使用简单的Annotations注释从一个Java类创建Web Services 。开发者将其类和方法之前用该annotations指定,类告诉runtime engine以Web Service的方式和操作来使能该类和方法 。
这个annotations可以产生一个可布署的Web Service,是一个WSDL映射annotations,将Java源代码与代表Web Service的WSDL元素连接在了一起 。4.使用Ant产生Server端代码:首先在项目中新建一个文件:build.xml,然后使用OpenWith>AntEditor打开,输入以下脚本代码:
它还生成WSDL和符合规范的该类的WebService 。Target名称为wsgen,具体执行的命令的参数:-cp 为类路径-keep后产生的java文件-s 产生的源文件放在哪-d 产生的输出问价放在哪然后使用Ant Build选项运行:在成功执行的提示后,我们刷新一下Project我们在Project区域可以看到,结果如下:5.分布Web Serviceorg.gnuhpc.wsServer下建立一个类RunService:package org.gnuhpc.wsServer;import javax.xml.ws.Endpoint;public class RunService { /** *@paramargs */ public static void main(String[] args) { System.out.println("SayHello Web Service started."); Endpoint.publish("http://localhost:8080/wsServerExample" , new SayHello()); } }运行Run As>Java Application 。
我们得到结果,说明这个web service的Server端已经启动 。6.查看WSDL:Window>Show View>Other>General>Internal Web Browser,在其中输入:http://localhost:8080/wsServerExample?wsdl你可以看看到底WSDL都记录了哪些信息 。
看完后可以停止该Server 。7.监测Server我们创建完Server可以用过Eclipse Web Services Explorer监测Server,Window>Open Perspective>Other >JavaEE打开Eclipse Web Services Explorer点击右上角的WSDL Page按钮: 单击WSDL Main,在URL中输入:http://localhost:8080/wsServerExample?wsdl 按Go按钮后出现一下视图:我们可以触发一个Web Service操作:点击getGreetings,添加一个参数,比如gnuhpc,然后点击Go按钮:8.创建Client端 工程和相关包与类:创建一个Java Project,命名为wsClientHelloWorld,在这个项目下建立包:org.gnuhpc.wsClient9.使用Ant产生Client代码框架:编写Web service时,可以使用工具来利用WSDL生成进行调用的客户端桩;或者也可以使用底层API来手动编写Web service 。
前者方便,后者灵活,现在我们通过前者做说明:新建文件build.xmlNew>File>build.xml
运行Server的RunService : Run As>Java Application>运行该Ant脚本,产生Client代码:Run As>Ant Build运行成功的提示如下:生成的代码如下:这一步读取WSDL并生成客户端桩 。这些桩是将为我们的代码所用的Java类和接口 。
这些桩给服务器端功能提供了一个客户端接口 。例如,如果我们的服务 。
6. 请教这个JAVAwebservice如何写 Java 中的 Web Service 分为基于 SOAP 的和基于 REST 的两种,下面简单说一个基于 SOAP 的例子 。要使用 JDK6u4 之后的版本才能编译通过 。
先编写一个 Web Service 的接口:
@WebService
@SOAPBinding(style = Style.RPC)
public interface TimeServer {
@WebMethod String getTimeAsString();
@WebMethod long getTimeAsElapsed();
}
再编写 Web Service 实现:
import java.util.Date;
import javax.jws.WebService;
@WebService(endpointInterface = "test.TimeServer")
public class TimeServerImpl implements TimeServer {