学习任务
1、学习java下创建Web Service的方法。
2、实现一个具有加减乘除功能的Web Service,并编写客户端测试。
学习过程
1)搭建环境:eclipse j2ee;cxf 2.0;tomcat 6.0;下载cxf的安装包之后,在Eclipse的菜单栏中,Window --> Preferences --> Web Service --> cxf2 Perferences,在cxf2 runtime location中选择cxf2解压缩包的位置,设置好后,点"OK"即行。
2)new一个dynamic web project;new一个class,包含加减乘除等方法;
代码如下a) 服务代码所示。
3)将编写好的服务发布到网上。在"pro2"项目上new --> other,找到"Web Services"下面的"Web Service"进行设置即可完成发布服务。1’在浏览器中查看服务描述。
在此,http://localhost:8080/pro3/services/calculatPort?wsdl在浏览器中输入这个地址就可以调到刚刚发布的服务的wsdl描述。2’服务发布之后可以进行测试。点launch the web service explore,再点usdl page进入测试。输入参数,可以看到计算结果。
4)编写客户端调用服务。新建一个Dynamic java project,再建一个web service client,选择要调用的服务(即刚刚发布的Calculat服务),其中Calculat_CalculatPort_Client.java是一个示例,可运行,右键run as application,可在控制台中看到运行结果(要记得导入CXF库)。编写客户端代码。新建一个类,编写代码调用服务,运行。
a) 服务代码(其实就是一个类,包含四个方法):
import javax.jws.WebService;
@WebService(targetNamespace = "http://default_package/", portName = "calculatPort", serviceName = "calculatService")
public class calculat{
public float plus(float a,float b)
{
return a+b;
}
public float minus(float a,float b)
{
return a-b;
}
public float multiply(float a,float b)
{
return a*b;
}
public float divide(float a,float b)
{
if(b!=0)
{
return a/b;
}
else
return -1;
}
}
b) 客户端代码:
package default_package;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public final class Client {
private Client() {
}
public static void main(String args[]) throws Exception {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
// factory.getInInterceptors().add(new LoggingInInterceptor());
// factory.getOutInterceptors().add(new LoggingOutInterceptor());
factory.setAddress("http://localhost:8080/pro3/services/calculatPort");
Calculat client = factory.create(Calculat.class);
System.out.println(client.multiply(10, 15));
}
}