在C#工程中添加Web服务引用,然后java的webservice就会在C#工程中生成调用webservice的方法,在VS中添加web服务引用的方法如下:
第一步:在VS创建的工程中,选择菜单上的“项目->添加服务引用”
第二步:d出窗口中,选择“高级”
第三步:d出窗口中,选择“添加Web引用”
第四步:输入java程序发布的web services的URL,指定Web引用名点击“确定”即可
Web Services 介绍Web Services 是建立可交互 *** 作的分布式应用程序的新平台 Web Services 平台是一套标准,它定义了应用程序如何在 Web 上进行交互 *** 作 , 你可以用任何你喜欢的语言,在任何你喜欢的平台上写 Web Services, 只要我们可以通过 Web Services 标准对这些服务进行查询和访问。简单的说 Web Service 就是一些模块化的应用程序,这些应用程序能在 Web 上描述、发布、定位和调用。实现 Web Services 的方式也有很多种,本文也不一一介绍了,找几个我认为最常用的几种实现方式来与大家分享,首先介绍用 Axis 来实现 Web Services 的开发,然后介绍用 CXF 来开发 Web Services。对于每一种实现方式,我都以一种 step by step 的方式给大家用实例来讲解,从工程的建立一直到 Services 的交付使用,大家也可到网上搜索下这方面的相关教程,很多,但是大部分都是单单教你怎么来开发一个 Service,怎样来测试?怎样来验证是否可以交付给用户使用了?讲的很少,更不用说项目后期的自动化测试了,闲话少说,下面我们就进入 Service 的具体开发实例讲解,每一个实例都配以详细的分析过程。
本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程:
1.系统条件:
Eclipse Java EE IDE for Web Developers
Java SE 6
Windows XP
2.基本环境搭建:
1)Java SE6 JDK的安装:下载Java SE6 JDK,双击,安装默认选项进行安装即可。
2)Eclipse的安装与配置:
安装时直接解压。
配置处有两点,Window>Preferences>Java>Installed JREs确保如下设置:
安装路径可能略有不同。
Window>Preferences>Java>Compiler 确保如下设置:
3.建立Server端工程和相关包与类:
创建一个Java Project,命名为wsServerHelloWorld:
在这个项目下建立包:org.gnuhpc.wsServer
在这个包下边建立类:SayHello
在SayHello.java文件中输入以下代码:
package org.gnuhpc.wsServer
import javax.jws.WebService
@WebService
public class SayHello {
private static final String SALUTATION = "Hello"
public String getGreeting(String name) {
return SALUTATION + " " + name
}
}
其中注意到@WebService ,这个称作annotation或者metadata,Java SE 5中的Web Services Metadata Specification引入的。Java SE 6中对于Web Services规范的升级以及JAX-WS(Java API for XML Web Services)2.0规范,这些升级使得我们Web Services的创建和调用变得更加容易。使用这些新功能,我们可以仅仅使用简单的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打开,输入以下脚本代码:
<project default="wsgen">
<target name="wsgen">
<exec executable="wsgen">
<arg line="-cp ./bin -keep -s ./src -d ./bin
org.gnuhpc.wsServer.SayHello"/>
</exec>
</target>
</project>
default指定了默认执行的Target为wsgen,wsgen可以创建一个能够使用WebService的类,它生成所有用于WebService发布的源代码文件和经过编译过的二进制类文件。它还生成WSDL和符合规范的该类的WebService。
Target名称为wsgen,具体执行的命令的参数:
-cp 为类路径
-keep后产生的java文件
-s 产生的源文件放在哪
-d 产生的输出问价放在哪
然后使用Ant Build选项运行:
在成功执行的提示后,我们刷新一下Project
我们在Project区域可以看到,结果如下:
5.分布Web Service
org.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.wsClient
9.使用Ant产生Client代码框架:
编写Web service时,可以使用工具来利用WSDL生成进行调用的客户端桩;或者也可以使用底层API来手动编写Web service。前者方便,后者灵活,现在我们通过前者做说明:
新建文件build.xml
New>File>build.xml
<project default="wsimport">
<target name="wsimport">
<exec executable="wsimport">
<arg line="-keep -s ./src -p org.gnuhpc.wsClient
-d ./bin http://localhost:8080/wsServerExample?wsdl"/>
</exec>
</target>
</project>
注意:wsgen 支持从 Java class 创建 Web services,wsimport 支持从 WSDL 创建 Web services,分别对应于 JAX-RPC 方式下的 Java2WSDL 和 WSDL2Java。要根据发布的WSDL进行创建,这也就是为什么要先运行RunServer的原因了。
运行Server的RunService : Run As>Java Application>
运行该Ant脚本,产生Client代码:Run As>Ant Build
运行成功的提示如下:
生成的代码如下:
这一步读取WSDL并生成客户端桩。这些桩是将为我们的代码所用的Java类和接口。这些桩给服务器端功能提供了一个客户端接口。例如,如果我们的服务器提供一个Maths服务,该服务带有一个叫做add的方法。我们的客户端代码将调用桩上的一个方法,而桩实现将对该方法使用参数封装,把Java方法调用变为Webservice请求。这个请求将基于HTTP发送给服务器,而且将使用SOAP作为RPC协议。监听服务器接收该SOAP消息,然后(十有八九)将其转换为服务器处的一次方法调用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)