1. 一个客户端用户名密码回调类
package org.demo.ws.client;
import java.io.IOException;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import org.apache.ws.security.WSPasswordCallback;
public class ClientPasswordCallback implements CallbackHandler
{
@Override
public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException
{
WSPasswordCallback pwCallback = (WSPasswordCallback)callbacks[0];
pwCallback.setIdentifier("user1");
pwCallback.setPassword("password1");
}
}
2. src/ws-client.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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" >
<bean id="clientPasswordCallback" class="org.demo.ws.client.ClientPasswordCallback" />
<bean id="wSS4JOutInterceptor" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken" />
<entry key="passwordType" value="PasswordText" />
<entry key="user" value="cxfClient" />
<entry key="passwordCallbackRef">
<ref bean="clientPasswordCallback" />
</entry>
</map>
</constructor-arg>
</bean>
<jaxws:client id="helloWorld" serviceClass="org.demo.ws.HelloWorld"
address="http://localhost:8080/spring/services/hello">
<jaxws:outInterceptors>
<ref bean="wSS4JOutInterceptor" />
</jaxws:outInterceptors>
</jaxws:client>
</beans>
3. 一个客户端测试类
package org.demo.ws.client;
import org.demo.ws.HelloWorld;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class WsClient
{
/**
* @param args
*/
public static void main(String[] args)
{
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("ws-client.xml");
HelloWorld bean = (HelloWorld)ctx.getBean("helloWorld");
String result = bean.sayHi("xiao ming");
System.out.println("result is " + result);
}
}
//
分享到:
相关推荐
- 对于客户端调用,可以使用CXF的`JaxWsProxyFactoryBean`创建服务代理对象,然后调用其方法进行服务调用。 4. **项目结构** - `.classpath`和`.project`是Eclipse IDE的项目配置文件。 - `pom.xml`是Maven的...
3. **调用服务**:一旦客户端准备好,就可以通过CXF客户端API来调用服务方法,传递必要的参数并接收响应。 Apache Camel 是一个强大的集成框架,它提供了一种声明式的方式来定义和路由消息流。camel-cxf是Camel的一...
Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...
在这个“cxf的webservice的客户端代码”主题中,我们将深入探讨如何使用CXF框架来构建一个能够与Web服务交互的客户端。 首先,创建CXF Web服务客户端的核心在于理解服务代理的生成。CXF提供了WSDL2Java工具,可以从...
本教程将详细介绍如何利用Spring Boot与CXF进行集成,以发布Web服务并实现用户和密码验证的客户端调用。 首先,我们需要在Spring Boot项目中引入CXF的依赖。这通常通过在`pom.xml`文件中添加对应的Maven依赖来完成...
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
本篇文章将详细探讨如何利用CXF框架开发一个Web服务客户端,以及如何进行测试。 一、CXF简介 CXF全称CXF CXF (Continued eXtensible Framework),它是一个Java框架,提供了创建和消费Web服务的能力。CXF支持WS-*...
1. 发布和调用WebService: 使用CXF2.4(http://cxf.apache.org)和spring 2. 调用安全性: 使用简单的USERNAME_TOKEN 3. 服务程序中取得调用者身份 ------------------------- 接口 ------------------------- intf....
它提供了强大的服务实现和客户端调用能力,支持多种协议和规范,如JAX-WS、JAX-RS等。本指南将详细介绍如何使用CXF进行Web服务开发。 **一、CXF WebService 准备工作** 1. **官方网址**:[http://cxf.apache.org/]...
在使用CXF框架进行Web服务客户端调用时,需要依赖一系列的JAR包来确保功能的正常运行。这些JAR包包含了CXF框架的核心组件、XML处理库、数据序列化工具、缓存机制、消息队列通信以及Spring框架的支持。 1. `cxf-core...
这个"CXF动态webservice客户端demo"是为了演示如何使用CXF库创建一个动态调用Web服务接口的客户端应用程序。 首先,我们需要了解Web服务的基本概念。Web服务基于SOAP(Simple Object Access Protocol)协议,通过...
- **客户端代理**:CXF自动生成客户端代码,方便调用服务。 **2. 创建Web服务端** 在CXF中,服务端的开发通常涉及以下步骤: 1. 定义服务接口:使用Java接口定义服务方法。 2. 实现服务接口:编写具体的业务逻辑...
用CXF作为客户端调用webService的demo:本人亲测可用,eclipse工程项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。
客户端调用这部分,IDEA提供了方便的工具——"Java Enterprise"中的"Web Services Client"。通过这个功能,我们可以导入服务的WSDL(Web Service Description Language)文件,自动生成对应的客户端代理类。这些代理...
在CXF中,动态地址客户端是指能够根据运行时的信息(如服务器地址、端口等)动态改变服务调用目标的能力。这种功能在分布式系统和云环境中非常有用,因为服务的IP或端口可能会发生变化。 以下是对CXF Webservice...
这里提到的jar包是CXF运行时环境的一部分,用于支持Web服务的发布、调用以及相关的功能。 1. **CXF-2.6.1.jar**:这是Apache CXF的核心库,包含了Web服务开发所需的主要组件和类。这个版本的CXF提供了WS-*标准的...
cxf开发webservice客户端和服务器端 cxf(Apache CXF)是一款开源的WebService框架,用于开发webservice客户端和服务器端。它提供了许多有用的功能,如自动生成服务桩、客户调用桩和WSDL文档等,使得开发webservice...
总的来说,CXF的jar包集合是构建高效、可靠Web服务的关键组件,它们共同构成了一个强大的工具链,帮助开发者轻松实现服务的创建、发布、调用以及与其他Web服务的交互。正确理解和使用这些jar包,能够提升开发效率,...
在给定的压缩包文件中,"WebService_Server"可能包含了SpringBoot与CXF集成的服务器端代码示例,而"Webservice_Client"则可能包含CXF客户端调用服务的示例代码。这两个部分可以作为学习和实践SpringBoot发布和消费...