java 请求webservice_JAVA调用WebService实例

本文详细介绍了如何使用JAVA调用WebService,特别是通过CXF框架实现服务端和客户端的开发。首先,文章讲解了WebService的基本概念,然后展示了CXF集成Spring的配置。接着,提供了服务端接口和实现类的代码示例,以及客户端调用服务的代码。最后,提到了多种测试WebService的方法,包括浏览器直接访问和使用测试工具。
摘要由CSDN通过智能技术生成

WebService是提供特定服务的架构技术,通过标准的Web协议提供服务,其目的是保证不同平台的应用服务可以相互操作。目前比较流行的实现是使用.NET和JAVA两种语言技术,并且两种实现语言可以相互操作;

下面主要围绕通过JAVA语言来介绍Webservice的定义和调用,通过JAVA语言开发WebService的方式又分为Axis、axis2、Xfire、CXF以及JWS。每种方式实现都有各自的特点,由于本人使用CXF的方式比较熟练,而且,CFX和Spring无缝结合,所以下面重点介绍以CXF方式的实现。

由于WebService实现分为服务端和客户端两种开发模式,接下来介绍WebService服务端开发、客户端开发及实例测试。

环境准备

JDK1.6及以上,需要的JAR文件有:commons-logging-1.1.1.jar、cxf-2.4.3.jar、neethi-3.0.1.jar、spring-aop-3.0.5.RELEASE.jar、spring-asm-3.0.5.RELEASE.jar、spring-beans-3.0.5.RELEASE.jar、spring-context-3.0.5.RELEASE.jar、spring-context-support-3.0.5.RELEASE.jar、spring-core-3.0.5.RELEASE.jar、spring-expression-3.0.5.RELEASE.jar、spring-web-3.0.5.RELEASE.jar、wsdl4j-1.6.2.jar、xmlschema-core-2.0.1.jar。

1.服务端开发

自定义接口类

package cn.test.ws.service;

import javax.jws.WebParam;

import javax.jws.WebService;

@WebService

public interface GreetingService {

public String welcome(@WebParam(name="username") String username);

public int getNum(@WebParam(name="number") int number);

}

定义接口实现类

package cn.test.ws.service.impl;

import cn.test.ws.service.GreetingService;

public class GreetingServiceImpl implements GreetingService {

@Override

public String welcome(String username) {

System.out.println("服务端的方法为:greeting()");

return "Hell0 "+username+",欢迎你调用JAVA下的WebService服务!";

}

@Override

public int getNum(int number) {

System.out.println("服务端的方法为:getNum()");

return number;

}

}

Spring.xml配置

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:jaxws="http://cxf.apache.org/jaxws"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://cxf.apache.org/jaxws

http://cxf.apache.org/schemas/jaxws.xsd">

serviceClass="cn.test.ws.service.GreetingService"

address="/GreetingService">

2. web.xml配置

contextConfigLocation

classpath:applicationContext.xml

org.springframework.web.context.ContextLoaderListener

CXF Servlet

CXFServlet

org.apache.cxf.transport.servlet.CXFServlet

1

CXFServlet

/*

3.客户端开发

public static void main(String[] args) {

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();

String wsUrl = "http://127.0.0.1:8080/WS/GreetingService?wsdl";

String method ="welcome";

String method2 =  "getNum";

try {

Client client = dcf.createClient(wsUrl);

Object[] objects =client.invoke(method,"TEST");

Object[] numbers =client.invoke(method2,6);

System.out.println(objects[0].toString());

System.out.println(numbers[0]);

} catch (Exception e) {

e.printStackTrace();

}

}

4.实例测试

WebService测试可以使用上述客户端main方法进行测试,也可通过在浏览器中进行测试,还有专门的webservice测试工具等众多方式进行测试。

在浏览器中输入http://IP:端口/项目名称/GreetingService?wsdl即可看到已发布的服务端信息,并且通过输入制定参数显示服务端返回的信息,如:http://IP:端口/项目名称/GreetingService/welcome?username=test。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值