package cn.itcast.cxf; /** * 通过wsdl2java生成客户端代码调用Webservice服务 * */ public class App { public static void main(String[] args) { /** * <wsdl:service name="IHelloServiceService"> */ IHelloServiceService hss = new IHelloServiceService(); /** * <wsdl:portType name="IHelloService"> */ IHelloService hs = hss.getIHelloServicePort(); /** * <wsdl:operation name="sayHello"> */ String ret = hs.sayHello("aa"); System.out.println(ret); } }
服务端代码:
1_接口类
package cn.itcast.cxf; import javax.jws.WebService; import javax.xml.ws.BindingType; import javax.xml.ws.soap.SOAPBinding; @WebService @BindingType(value=SOAPBinding.SOAP12HTTP_BINDING) /** * 通过@BindingType(value=SOAPBinding.SOAP12HTTP_BINDING)转换为实现SOAP1.2 */ public interface IHelloService { public String sayHello(String name); }
2_接口实现类
package cn.itcast.cxf; import java.text.SimpleDateFormat; import java.util.Date; public class HelloServiceImpl implements IHelloService { public String sayHello(String name) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("sayHello()... name:" + name); return sdf.format(new Date()) + " hello " + name; } }
3_服务发布类
package cn.itcast.cxf; import org.apache.cxf.interceptor.LoggingInInterceptor; import org.apache.cxf.interceptor.LoggingOutInterceptor; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; /** * * 使用JaxWsServerFactoryBean发布CXF的Web服务 * 必须加入WebService注解,如果不加,虽然不报错,但是所有的方法都暴露不出来 */ public class Server { public static void main(String[] args) { JaxWsServerFactoryBean bean = new JaxWsServerFactoryBean(); bean.setAddress("http://"+IpUtils.localIp()+":7788/hello"); //提供服务的类的类型或接口类型 bean.setServiceClass(IHelloService.class); bean.setServiceBean(new HelloServiceImpl()); //加入请求的消息拦截器 bean.getInInterceptors().add(new LoggingInInterceptor()); //加入请求的消息拦截器 bean.getOutInterceptors().add(new LoggingOutInterceptor()); bean.create(); System.out.println("Hello Service ready..."); } }
4_工具类
package cn.itcast.cxf; import java.net.InetAddress; import java.net.UnknownHostException; public class IpUtils { @SuppressWarnings("static-access") public static String localIp(){ //服务的地址 InetAddress address; String localIp = ""; try { address = InetAddress.getLocalHost(); localIp = address.getLocalHost().getHostAddress(); } catch (UnknownHostException e) { e.printStackTrace(); } return localIp; } }
相关推荐
5. **生成客户端代码**:使用CXF的wsdl2java工具,根据服务的WSDL生成客户端代码。 6. **编写客户端**:使用生成的客户端代码,创建服务代理并调用`sayHello`方法。 通过这个"Hello World"实例,你将理解如何使用...
2. **CXF配置**:在服务端,你需要将生成的证书和私钥添加到服务器的Keystore中,并在CXF的服务器配置中指定Keystore路径和密码。在客户端,需要将信任的证书添加到Truststore,并配置Truststore信息。 3. **安全...
本文将深入探讨如何使用Ksoap2在Android客户端实现与使用Apache CXF和WSS4J安全框架的Web服务的认证过程。 **Ksoap2库** Ksoap2是一个轻量级的开源库,专门用于Android平台,它允许Android应用通过HTTP/HTTPS协议...
2. **强大的绑定和数据转换**:CXF支持多种协议和数据格式,如HTTP、JMS、SMTP等,并能自动将Java对象与XML消息进行转换。 3. **集成工具**:CXF提供了代码生成器,可以自动生成服务客户端和服务端代码,简化开发...
2. **CXF库**:如cxf-rt-frontend-jaxws、cxf-rt-transports-http等,这些库用于处理Web服务的生成、调用以及HTTP传输。 3. **Spring与CXF集成库**:如spring-cxf、spring-ws等,这些库提供了一组Spring Bean定义,...
2. **src/main/java**:源代码目录,通常包含Web服务接口(JAX-WS或JAX-RS)定义、服务实现类以及可能的业务逻辑代码。这里展示了如何使用CXF注解来定义服务和端点。 3. **src/main/resources**:资源文件夹,可能...
2. Apache CXF: Apache CXF是一个开源的Java服务框架,它允许开发者创建和部署不同类型的Web服务,包括SOAP和RESTful服务。在本项目中,CXF被用来实现Webservice接口,使应用能够对外提供服务。开发者可以通过CXF...
2. **CXF_Spring源码分析** 在`CXFSpring`目录中,可能包含了CXF与Spring整合的示例代码。通常,这会涉及到以下关键部分: - **Spring配置文件**:`applicationContext.xml`或类似的文件,用于定义CXF服务的...
2. **cxf-rt-core-2.7.12.jar**: CXF运行时核心组件,包含了执行Web服务请求和响应处理的基础设施。它包括了消息处理、协议支持、以及与WS-*规范相关的功能。 3. **cxf-rt-frontend-jaxws-2.7.12.jar**: JAX-WS...
2. **多种协议和绑定**:CXF支持多种传输协议,如HTTP、HTTPS、JMS等,并且可以绑定到不同的数据格式,如XML、JSON、Plain Old Java Objects (POJOs)等。 3. **WS-*规范实现**:CXF实现了诸如WS-Security、WS-...
2. 配置CXF服务:创建服务接口和服务实现,使用JAX-WS注解来定义服务。 3. 配置Spring:在Spring配置文件中声明CXF服务,包括端点地址、服务类等信息。 4. 启动服务:通过Spring启动CXF服务,使其对外提供服务。 ...
在实际操作中,开发者会定义一个服务接口和对应的实现,然后通过CXF的wsdl2java工具生成相应的Java绑定类。服务接口会通过Spring的bean定义暴露为Web服务,而客户端则可以通过CXF的客户端API来消费这个服务。此外,...
2. **JAR文件**:Java Archive (JAR) 文件是Java平台特有的归档格式,用于打包Java类库和资源。在这个场景中,这些JAR文件可能包括CXF的核心库、扩展模块以及相关的依赖库。 3. **Web服务**:Web服务是一种通过网络...
2. **配置文件**:如CXF的wsdl2java生成的XML配置文件,以及Tomcat的server.xml配置,用于设置CXF服务的端点和部署信息。 3. **Maven或Gradle构建文件**:如pom.xml或build.gradle,用于管理项目依赖和构建流程。 4....
Apache CXF 是一个开源的Java框架,主要用于构建和开发服务导向架构(Service-Oriented Architecture, SOA)和Web服务。本学习笔记旨在提供对Apache CXF的基本理解、功能特性和实际操作指导。 **1. CXF 简介** 1.1...
2. `cxf-rt-transports-http.jar`:CXF的HTTP传输模块,用于通过HTTP协议发送和接收Web服务请求。 3. `cxf-rt-wsdl.jar`:CXF的WSDL处理模块,用于生成和解析WSDL文件。 4. `spring-beans.jar`:Spring框架的beans...
在IT行业中,Spring、CXF和Hibernate是三个非常重要的开源框架,它们分别在不同的领域有着广泛的应用。Spring作为全面的企业级应用开发框架,CXF用于构建和整合Web服务,而Hibernate则是Java领域中最流行的持久层...
2. **Service**:服务是CXF中的高层次抽象,它代表了一个业务逻辑的集合,可以被不同的协议(如SOAP或REST)暴露和消费。 3. **Endpoint**:端点是服务的具体实例,它知道如何处理特定的地址和消息格式。端点包含了...
2. **配置CXF**:在Spring配置文件中,我们需要配置CXF的Servlet或JAX-RS的Provider,以便处理HTTP请求。这可能包括设置服务地址、端点、数据绑定等。 3. **创建Web服务**:利用CXF提供的注解,如`@WebService`和`@...
2. **配置CXF**:在Spring配置文件中,定义CXF的Bus实例,配置服务端点(Endpoint)和服务器(Server)。 3. **服务发布**:通过Spring的`jaxws:endpoint`或`jaxrs:endpoint`标签,将Java类映射为Web服务。 4. **...