问题一:Could not find destination factory for transport
需要加入cxf-rt-transports-http-jetty的jar包,以下是maven中的配置
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>2.3.3</version> </dependency>
问题二:No operation was found with the name {。。。} ,原因是在当前默认的命名空间中找不到请求的操作方法;
解决方法:如果报的是找不到接口,那么在实现类上配置
@WebService(endpointInterface = "com.cxf.hello.IHelloService",targetNamespace = "http://hello.cxf.com/" ) public class HelloServiceImpl implements IHelloService{ ...... }其中targetNamespace中的路径为包名的逆序排列;如果报的是找不到相关的javabean类,那么在相关的类上配置
@XmlType(name = "Hello",namespace = "bean.cxf.com") public class Hello{ ...... }该命名空间指向在客户端调用的时候的对应的bean所在包的逆序(用于将当前的命名空间指向接口,需要重新发布公共接口)
问题三:A cycle is detected in the object graph. This will cause infinitely deep XML,原因是在两个对象中又互相引用了彼此,比如:
public class UserLogin{ private int userId; private String userName; private String userPassword; private UserInfo info; ......... } public class UserInfo { private int userId; private String sex; private String address; private UserLogin login; ....... }此时需要在类的一端调用中使用@XmlTransient注解(用于get方法上),该注解的作用是不将该属性解析成Xml文件中的元素
问题四:java.net.SocketTimeoutException: Read timed out
在客户端的spring中的配置如下:
<?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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd" default-autowire="byName"> <http-conf:conduit name="{http://investigation.cxf.spiss.sh.org/}CxfInvestServiceImplService.http--conduit"> <http-conf:client ConnectionTimeout="500000" ReceiveTimeout="600000"/> </http-conf:conduit> </beans>然后在客户端创建了client之后,接着键入如下代码:
HTTPConduit http = (HTTPConduit) client.getConduit(); HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); httpClientPolicy.setConnectionTimeout(600000);//连接超时时间 httpClientPolicy.setAllowChunking(false); httpClientPolicy.setReceiveTimeout(600000);//接收超时时间 http.setClient(httpClientPolicy);即可解决
相关推荐
接口通常使用JAX-WS标准的`@WebService`注解标记,实现类则通过`@WebService(serviceName = "...")`注解。然后,通过CXF的`JaxWsServerFactoryBean`,我们可以将服务注册到CXF服务器上。 4. **服务调用**:在服务...
整合CXF与Spring的主要优点是,Spring可以帮助管理CXF服务的生命周期,并提供依赖注入(DI)功能,使得服务更容易测试和维护。以下是一步一步的整合过程: 1. **环境准备**:确保已安装并配置了Java开发环境,如JDK...
在IT行业中,CXF是一个广泛使用的开源框架,它支持服务导向架构(SOA)并通过SOAP协议提供Web服务。Spring框架则是Java应用开发的核心框架,它提供了丰富的功能来管理bean、处理事务、AOP(面向切面编程)等。将CXF...
Spring和CXF结合使用时,可以统一处理Web Service调用中的异常,将其转化为自定义的业务异常,便于应用层进行适配和处理。 9. **安全考虑**: 整合Spring Security和CXF,可以实现对Web Service调用的安全控制,...
Java 使用 XFire 调用 WebService 接口是一个常见的技术场景,特别是在集成不同系统或者构建分布式服务时。XFire 是一个 Java 框架,它允许开发者快速、容易地创建和消费 Web 服务。本篇文章将详细讲解如何在 Java ...
- **错误处理**:设计合理的错误处理机制,确保服务在遇到异常时能够给出明确的反馈。 #### 五、案例分析与实践 - **案例1:购物车服务**:构建一个简单的购物车服务,用户可以通过Web服务接口添加商品到购物车、...
XFire是Apache CXF项目的前身,它是一个用于构建和开发Web服务的框架。在本文中,我们将深入探讨如何使用Java XFire来调用本地及远程的WebService。 首先,让我们理解什么是Web服务。Web服务是一种基于网络的软件...
在C++中调用Web服务通常需要借助第三方库或框架,如gSOAP、Apache CXF、Qt等,这些工具提供了编译器和运行时支持,帮助开发者处理SOAP消息的序列化和反序列化。 3. gSOAP库 gSOAP是广泛使用的C/C++ Web服务开发...
Web服务(Web Service)是一种基于网络的、分布式的模块化组件,它允许不同的应用程序之间进行交互和数据交换。在Java中,开发Web服务通常使用JAX-WS(Java API for XML Web Services)或Apache CXF、XFire等开源...
它可以与Spring的其他模块集成,如Spring MVC,使得构建和消费WebService变得更加容易。 在实际开发中,选择哪种方式取决于项目的具体需求,如性能、易用性、兼容性等。对于新项目,通常推荐使用RESTful风格,因为...
**WSDL2Java工具**是Apache CXF框架提供的一种工具,它可以将一个WSDL文件转换成Java代码,生成客户端和服务端的 stubs 和 skeletons,使得开发者可以更容易地与Web服务进行交互。这个工具的工作流程如下: 1. **...
使用WebService时只需要直接调用远端的WebService就可以了,这使得各种功能可以很容易地集成到门户站点中,为用户提供一个统一的、友好的界面。此外,可以在应用程序中使用第三方的WebService功能,也可以通过...
XFire是一个早期的Java Web Service框架,它提供了快速、轻量级的方式来创建和消费SOAP服务。而Spring是一个广泛应用的Java企业级应用开发框架,它支持多种服务集成,包括Web服务。 在描述中提到了一个博客链接,...
在PC上,我们通常会使用如XFire、Axis2或CXF等库来访问WebService,但在资源有限的Android设备上,我们需要寻找更适合的解决方案。 KSOAP2是一个适用于Android的轻量级库,专门用于处理SOAP通信。在开始使用KSOAP2...