`
- 浏览:
4583 次
- 性别:
- 来自:
北京
-
[size=large][size=medium]服务端配置
<?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">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<bean id="address" class="cn.com.pop.service.AddressManager"/>
<bean id="inInter" class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
<bean id="outInter" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
<bean id="myPasswordCallback" class="cn.com.pop.interceptor.ServerPasswordCallback"/>
<bean id="checkSignInter" class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken"/>
<entry key="passwordType" value="PasswordDigest"/>
<entry key="signaturePropFile" value="..."/>
<entry key="passwordCallbackRef">
<ref bean="myPasswordCallback"/>
</entry>
</map>
</constructor-arg>
</bean>
<jaxws:server id="addressServer" serviceClass="cn.com.pop.service.AddressManager" address="/Address">
<jaxws:serviceBean>
<ref bean="address"/>
</jaxws:serviceBean>
<jaxws:inInterceptors>
<ref bean="inInter"/>
<!-- <ref bean="checkSignInter"/> -->
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<ref bean="outInter"/>
</jaxws:outInterceptors>
</jaxws:server>
<jaxws:endpoint id="helloService" implementor="cn.com.pop.service.impl.HelloServiceImpl" address="/HelloService">
<jaxws:inInterceptors>
<ref bean="checkSignInter"/>
</jaxws:inInterceptors>
</jaxws:endpoint>
</beans>
服务类
package cn.com.pop.service.impl;
import javax.jws.WebService;
import cn.com.pop.service.HelloService;
import cn.com.pop.vo.Student;
@WebService(endpointInterface = "cn.com.pop.service.HelloService", serviceName = "helloService")
public class HelloServiceImpl implements HelloService {
public String sayHello(String str) {
return "Hello ".concat(str);
}
public Student getStudentBean() {
Student student = new Student();
student.setName("Jim Green");
student.setSex(1);
return student;
}
}
发布服务:
/**
* 利用CXF中的Jetty来发布自己的WebService
*
* 利用CXF来生成客户端需要的一些文件和WebService接口,命令如下:
* D:\Program Files\Java\apache-cxf-2.2.4\bin>wsdl2java -p cn.com.pop.client.jetty.clientbean -d D:\ http://localhost:9000/helloService?wsdl
*
* wsdl2java是CXF官方的帮助工具,可以下载一个官方的CXF包 本案例用的版本是apache-cxf-2.2.4 ,解压之后可以拷贝到自己的盘符,本案例拷贝到D:\Program Files\Java\目录
* apache-cxf-2.2.4目录下有个bin目录,该目录下有很多官方提供的工具,其中有个wsdl2java,可以用命令wsdl2java -h来查看命令参数,如果感兴趣可以自己找找帮助文件
* 命令:wsdl2java -p com.jd.sop1 -all -d D:\ http://localhost:9000/helloService?wsdl
* 如果WebService换了发布URL之后需要重新生成客户端文件,或者手动修改客户端文件中对应的URL
*
* 还可以用别的方法来生成客户端需要的文件
*
* @author Administrator
*
*/
public class JettyTestCase {
public static void main(String[] arg){
System.out.println("Starting Server");
HelloServiceImpl impl = new HelloServiceImpl();
String addr = "http://localhost:9000/helloService";
//通过CXF提供的Jetty方式发布WebService
Endpoint.publish(addr,impl);
System.out.println("WebServer Register Success");
}
}
客户端:
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<jaxws:client id="helloService" serviceClass="cn.com.pop.client.web.clientbean.HelloService"
address="http://localhost:9000/helloService">
<jaxws:inInterceptors>
<ref bean="logIn"/>
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<ref bean="logOut"/>
<!-- <ref bean="saajOut"/> -->
<ref bean="wss4jOut"/>
</jaxws:outInterceptors>
</jaxws:client>
<bean id="logIn" class="org.apache.cxf.interceptor.LoggingInInterceptor" />
<bean id="logOut" class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
<bean id="saajOut" class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />
<bean id="wss4jOut" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken" />
<entry key="user" value="joe" />
<entry key="passwordType" value="PasswordText" />
<entry key="passwordCallbackClass" value="cn.com.pop.client.web.util.ClientPasswordCallback" />
</map>
</constructor-arg>
</bean>
</beans>
package cn.com.pop.client.web;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.com.pop.client.web.clientbean.HelloService;
/**
* 利用spring配置来获取WebService
*
* @author
*
*/
public class SpringCase {
public static void main(String[] args) {
// 利用spring的上下文来加载我们需要的服务
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(
"classpath:bean-client.xml");
ctx.registerShutdownHook();
HelloService client = (HelloService) ctx.getBean("helloService");
String str = client.sayHello("中国,测试成功");
System.out.println("str=" + str);
// System.exit(0);
}
}
package cn.com.pop.client.jetty;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import cn.com.pop.client.jetty.clientbean.HelloService;
import cn.com.pop.client.jetty.clientbean.Student;
/**
*
* 利用JaxWsProxyFactoryBean来获取WebService
*
*/
public class TestCase {
public static void main(String[] args) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setAddress("http://localhost:9000/helloService");
factory.setServiceClass(HelloService.class);
HelloService obj = (HelloService) factory.create();
System.out.println(obj.sayHello("中国,测试成功"));
Student student = obj.getStudentBean();
System.out.println(student.getName());
}
}
[/size][/size]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
webservice示例 springmvc+maven+cxf发布webservice 博客地址 http://blog.csdn.net/joe_storm/article/details/78839150
本文将深入探讨如何使用Spring和CXF来发布WebService服务。 首先,Spring是一个开源的Java平台,它提供了全面的编程和配置模型,用于简化企业级应用的开发。Spring框架的核心特性包括依赖注入、面向切面编程(AOP)...
当我们谈论“使用CXF发布WebService”时,我们实际上是在讨论如何利用Apache CXF框架创建和部署Web服务。Apache CXF是一个开源的Java框架,专门用于构建和消费Web服务,支持多种协议,如SOAP和RESTful。 首先,我们...
在给定的压缩包文件中,"WebService_Server"可能包含了SpringBoot与CXF集成的服务器端代码示例,而"Webservice_Client"则可能包含CXF客户端调用服务的示例代码。这两个部分可以作为学习和实践SpringBoot发布和消费...
在标题中提到的"用cxf发布webservice所需的基础jar包",这是指运行CXF Web服务所需的最小依赖集合。这些Jar包主要包括以下几个部分: 1. **CXF核心库**:这是CXF框架的核心组件,包含了处理Web服务请求和响应的基本...
当我们谈论"CXF发布WebService加入拦截器"时,这涉及到在CXF服务端和客户端增加拦截器来增强服务功能和控制流程。拦截器是CXF框架中的一个重要组件,它们提供了在消息发送和接收过程中插入自定义逻辑的能力。 一、...
### 一、CXF WebService发布 1. **CXF环境搭建** 在开始之前,确保你已经安装了Java Development Kit (JDK) 和 Maven 或 Gradle(根据项目管理工具选择)。然后,通过Maven或Gradle将CXF库添加到项目的依赖中。 2...
通过这个项目,开发者不仅可以了解SpringBoot和CXF的基本概念,还能掌握两者如何协同工作,发布和调用Web服务。同时,对于SpringBoot应用的打包、部署和测试也有了一定的认识。这个例子是一个理想的实践项目,对于...
eclipse+CXF开发webService 本文档主要介绍了使用eclipse和CXF开发webService的步骤,涵盖了准备工作、配置eclipse上的CXF插件、开发代码和生成WSDL文件等方面的内容。 一、准备工作 在开发webService之前,需要...
CXF方式实现的WebService 接口的发布
本教程将详细介绍如何在Spring Boot项目中集成CXF来发布Web服务接口。 首先,我们需要确保项目中包含了Spring Boot和CXF的相关依赖。在`pom.xml`文件中,我们需要添加以下依赖: ```xml <groupId>org.spring...
本篇文章将详细介绍通过Apache CXF发布Web服务时所需的jar文件以及相关的知识点。 首先,我们需要理解Web服务的本质。Web服务是一种基于互联网的软件应用程序,它能够通过标准协议(如SOAP或REST)与其他应用进行...
该websevice项目发布方式 1、直接运行com.demo.desk包下的各种发布方式,共3种方法(注意way3需要cxf-servlet.xml和wsdl) ...ps:发布到服务器的WebService地址为:http://localhost:8080/CXFDemo/HelloCXF?wsdl
SpringBoot整合CXF发布WebService以及调用的方法 SpringBoot是一款流行的Java框架,而CXF(Apache CXF)是一款开源的WebService框架。今天,我们将介绍如何使用SpringBoot整合CXF发布WebService,以及如何调用它。 ...
【Spring+CXF发布Web服务】是将Spring框架与Apache CXF结合,用于构建和部署Web服务的一个常见实践。在本文中,我们将深入探讨这个主题,了解如何利用这两个强大的工具来创建、配置和运行Web服务。 Spring框架是...
CXF发布Web服务是Java开发中一种常见的方法,它允许开发者将Java接口转换为符合SOAP标准的Web服务。Apache CXF是一个开源的Web服务框架,它提供了丰富的功能,包括SOAP、RESTful API、WS-*协议支持等。在这个过程中...
将下载的demo(包括serviceserverdemo及serviceclientdemo,bat文件在serviceclientdemo的src下)导入eclipse即可运行使用,编译时可能需要修改jdk版本,如果导入有错,可新建web项目,按所下载demo的结构搭建即可,...
Apache CXF和camel-cxf是两个流行的开源框架,它们可以帮助开发者轻松地创建、消费和集成Web服务。本篇文章将详细介绍如何使用CXF和camel-cxf调用Web服务,以及这两个工具的核心功能和使用场景。 Apache CXF是一个...
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
本教程将详细介绍如何利用Spring Boot与CXF进行集成,以发布Web服务并实现用户和密码验证的客户端调用。 首先,我们需要在Spring Boot项目中引入CXF的依赖。这通常通过在`pom.xml`文件中添加对应的Maven依赖来完成...