`
lijunlong
  • 浏览: 20701 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • rxin2009: lz你这样就可以看到局部变量的值呢?或者是方法参数的名称?? ...
    HashMap的resize

cxf webservice配置(带超时)

 
阅读更多
1.spring配置文件方式测试
<!-- 客户端密码配置Bean定义 -->
<bean id="passwordCallback" class="com.creditease.core.ws.client.ClientValidateCallback">
<property name="userMap">
<map>
<entry key="abc" value="abc" />
</map>
</property>
</bean>

<jaxws:client id="testService" serviceClass="com.creditease.core.ws.client.UserService"
address="http://localhost:8080/project/services/testService">
      <jaxws:outInterceptors>
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
<property name="properties">
<map>
<entry key="action" value="UsernameToken" />
<entry key="user" value="admin" />
<entry key="passwordType" value="PasswordText" />
<entry key="passwordCallbackRef" value-ref="passwordCallback" />
</map>
</property>
</bean>
</jaxws:outInterceptors>
</jaxws:client>
用户名密码验证类
public class ClientValidateCallback implements CallbackHandler {

	private Map<String, String> userMap = null;

	public void setUserMap(Map<String, String> userMap) {
		this.userMap = userMap;
	}

	public void handle(Callback[] callbacks) throws IOException,
			UnsupportedCallbackException {
		for (int i = 0; i < callbacks.length; i++) {
			WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
			int usage = pc.getUsage();
			if (!userMap.containsKey(pc.getIdentifier()))
				throw new WSSecurityException("user not exists ");
			String pass = userMap.get(pc.getIdentifier());
			if (usage == WSPasswordCallback.USERNAME_TOKEN && pass != null) {
				pc.setPassword(pass);
				return;
			}
		}
	}
}

@Autowired
private TestService testService;
2.客户端java代码测试
JaxWsProxyFactoryBean userClient = new JaxWsProxyFactoryBean();
		userClient.setServiceClass(UserService.class);
		userClient.setAddress("http://localhost:8080/project/services/testService");
		// 设置用户名密码
		Map<String, Object> outProps = new HashMap<String, Object>(); 
		outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN); 
		outProps.put(WSHandlerConstants.USER, "abc"); 
		outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT); 
		outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, ClientPasswordCallback.class.getName()); 
		
		WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps); 
		userClient.getOutInterceptors().add(wssOut); 
		userClient.getOutInterceptors().add(new SAAJOutInterceptor()); 

		TestService testService = (TestService) userClient.create();
// 超时设置
Client proxy = ClientProxy.getClient(testService);
		HTTPConduit conduit = (HTTPConduit) proxy.getConduit(); 
		HTTPClientPolicy httpClientPolicy =  new  HTTPClientPolicy();   
		httpClientPolicy.setConnectionTimeout(360000);   
		httpClientPolicy.setAllowChunking( false );   
		httpClientPolicy.setReceiveTimeout(320000);   
		conduit.setClient(httpClientPolicy);

用户名密码验证类
public class ClientPasswordCallback implements CallbackHandler {

	public void handle(Callback[] callbacks) throws IOException,
			UnsupportedCallbackException {

		WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];
		pc.setIdentifier("admin");
		pc.setPassword("admin");
	}

}



分享到:
评论

相关推荐

    cxf webservice 文件分块上传

    【标题】:“CXF Webservice 文件分块上传” 在IT领域,CXF是一个广泛使用的开源框架,用于构建和部署Web服务。它支持多种Web服务规范,包括SOAP、RESTful等。"文件分块上传"是一种处理大文件的技术,通常用于优化...

    springboot整合CXF发布webservice和客户端调用

    - 官方文档:Apache CXF和SpringBoot的官方文档提供了详细的配置和使用指南。 - 社区论坛:Stack Overflow和其他技术社区有很多关于SpringBoot+CXF整合的问题和解答,可以作为参考。 6. **调试与测试** - 使用`...

    cxf超时设置

    "cxf超时设置"这个主题是关于如何在使用CXF框架时,对网络通信的超时时间进行配置,以优化服务的稳定性和性能。 首先,理解超时的概念至关重要。在计算机网络中,超时是指等待某个操作完成的时间限制。当这个时间...

    cxf webService客户端

    在文件列表中的"WebServiceClient"可能是一个示例项目,包含了创建和运行CXF Web服务客户端的源代码和配置文件。通过分析这个项目,你可以更好地理解如何在实际开发中应用上述概念。 总之,CXF为Java开发者提供了一...

    使用cxf wsdl2java生成webservice客户端

    使用cxf wsdl2java生成webservice客户端命令

    CXF动态webservice客户端demo

    7. **配置和优化**:CXF支持多种配置,例如设置超时、安全认证、日志等,这可以通过Spring配置文件或编程式方式进行。 在"DynamicClientDemo"项目中,你可以看到如何将这些步骤整合到实际应用中,包括如何初始化...

    cxf生成webservice客户端

    在标题和描述中提到的“cxf生成webservice客户端”是指利用CXF的工具从WSDL文件自动生成Java客户端代码,以便于调用Web服务。 生成Web服务客户端的步骤如下: 1. **获取WSDL文件**:Web服务通常会公开一个WSDL文件...

    Spring+cxf请求webService

    - 在Spring配置文件中,定义一个`jaxws:client` bean,指定服务地址、服务接口和代理类,配置连接超时、重试策略等参数。 3. **XML请求与响应处理** 在Spring+CXF的环境中,XML请求通常是通过Java对象转换得到的...

    cxf调用c#的webservice

    - 可以通过调整CXF客户端的配置,例如设置连接超时、重试策略等,来优化性能和稳定性。 总之,使用Apache CXF,Java开发者可以方便地调用C#编写的Web服务,实现跨语言的通信。这个过程涉及到了WSDL解析、Java代理...

    webservice cfx客户端配置所需的jar包

    标题中的“webservice cfx客户端配置所需的jar包”指的是一组必要的库文件,这些文件对于创建和运行CXF Web服务客户端至关重要。CXF客户端允许程序与通过SOAP或RESTful协议暴露的Web服务进行交互。这些jar包包含了...

    cfx webservice 入门 详细步骤

    在 `web.xml` 文件中,你需要配置 CXF 的 Servlet,以便服务器能够识别并处理 CXF 请求。这里定义了一个名为 `cxf` 的 Servlet,用于启动 CXF 终端点,并将 `/services/*` 作为 CXF 的 URL 模式,这意味着所有以 `/...

    webservice远程调用与cxf框架共26页.pdf

    在CXF中,`org.apache.cxf.endpoint.Client`类是客户端API的核心,它负责管理服务的调用,包括创建和配置客户端,执行请求,处理响应等。 `org.apache.cxf.endpoint.Client`类位于CXF的`cxf-api.jar`中,这是CXF...

    Webservice远程调试及超时操作原理解析

    在.NET开发环境中,WebService远程调试是一项重要...如果你需要在其他编程语言如Python、Java或使用特定库如CXF、Suds等调用或实现WebService,也可以参考相关的技术文档和示例代码,以了解如何在不同环境中进行操作。

    Java调用WebService接口的方法

    在Java编程中,调用Web服务接口是一种常见的任务,尤其是当需要实现跨平台...在实际开发中,可能还需要处理认证、超时和其他网络相关的问题。理解并熟练掌握这些步骤,对于构建可扩展、可维护的分布式系统至关重要。

    客户端编程方式调用webservice

    3. **实例化客户端代理**:在Java代码中,我们需要创建代理类的实例,并可能设置一些配置,比如连接超时、HTTP头等。 4. **调用服务**:通过代理对象,我们就可以调用WebService的方法,传入参数并获取返回值。例如...

    eclipse中使用webservice远程服务 超详细教程

    - 可以通过Maven或者手动添加依赖的方式引入WebService相关的库文件,例如Apache CXF、Apache Axis2等。 3. **编写WebService接口和服务实现类**: - 创建一个Java接口,定义所需的方法。 - 实现该接口,编写...

    webservice客户端开发

    3. 配置CXF客户端:在Spring的配置文件中,通过`&lt;jaxws:client&gt;`标签配置CXF客户端。这里可以指定服务地址、服务接口、以及任何其他必要的属性,如服务端点地址、QName、缓存策略等。 4. 使用Spring的bean注入:...

    Java调用Webservice服务,简单实用

    在实际开发中,你可能还需要处理异常、设置连接超时、配置SSL等细节。同时,对于大型项目,可能会使用Spring等框架来更优雅地管理Web Service客户端。 总的来说,Java调用Web Service服务是一个相对简单的过程,...

    独立运行的webservice服务

    此外,可以通过调整Jetty服务器的配置来优化性能,例如增加线程池大小、设置超时时间等。 在提供的压缩包`cxfdemo`中,可能包含了实现上述步骤的示例代码,你可以参考这些代码来快速理解和实践Apache CXF创建独立...

    Axis2教程和java调用webservice的各种方法总结

    3. "java 调用webservice的各种方法总结 - 比较详细且简单的.mht":这个文件应该汇总了多种Java调用Web服务的方法,比如使用JAX-WS、Apache CXF或Axis2等库,可能包括代码示例和优缺点分析。 4. "java调用...

Global site tag (gtag.js) - Google Analytics