中易网

如何写一个简单soap webservice实例

答案:2  悬赏:70  
解决时间 2021-02-17 02:14
如何写一个简单soap webservice实例
最佳答案
本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打开,输入以下脚本代码:




org.gnuhpc.wsServer.SayHello"/>




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 {

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




-d ./bin http://localhost:8080/wsServerExample?wsdl"/>




注意: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消息,然后(十有八九)将其转换为服务器处的一次方法调用。
全部回答
本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;
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
打官司律师受贿该怎么处理呢?
租房小白求教一般有什么租房陷阱
我想找个干一天歇一天的工作
i3 3200和金奔腾g5400哪个好
关于LOL周首胜领取奖励的问题。
静已思己之过而勿再犯之
内经50f8公差是多少
宛城区南阳市文物考古研究所文物钻探队在哪里
掰手腕应该练什么肌肉啊
朝阳广场沃尔玛到704路公交站怎么走
别在说你爱着我这首歌里,易欣和哪位女歌手合
怎样彻底卸载风行,包括注册表
想找读书使人开阔眼界的事例
普加乔夫眼镜蛇机动
95年的违反和解除劳动合同的赔偿办法有没有废
推荐资讯
哪种pp材料做出的产品耐热可以达到140度
用手机能看到有人在所联电脑上做什么吗
用三个字形容独霸一方的人
乡村早点地址在哪,我要去那里办事
圆规是什么样的
已知x=-1是方程ax2+bx=40=0的一个解,且a不等
手写的发票盖发票专用章和财务专用章以外的章
新文化运动诗歌 风筝
热电偶的作用
哪里有饺子学,学做饺子在哪里能学
紫鹃为什么对黛玉这么好
臭水箐怎么去啊,有知道地址的么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?