1.下载cxf全部jar包引入项目
2.src下新建spring-cxf.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">
<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="dsst" class="com.dh.dsstinterface.DtInterfaceImpl" />
<jaxws:endpoint id="dtInterface" implementor="#dsst" address="/DtInterface" />
</beans>
3.修改web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<!--spring配置文件放在WEB-INF目录下-->
<param-value>classpath*:/spring-cxf.xml,classpath*:/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
4.新建接口和接口实现
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface DtInterface {
/**
* 彩信发送接口
*
* @param emsxml
* 客户端传入XMl
* @return
* code(标记,0、失败;1成功);message1(出错字段名,成功时为返回短信字段信息);message(描述信息
* )
*/
public String sendEms(String emsxml);
}
import javax.jws.WebService;
import org.apache.commons.io.FileUtils;
import org.dom4j.DocumentHelper;
import org.dom4j.Document;
import org.dom4j.Element;
import java.util.Iterator;
import java.io.File;
import com.dh.dsstinterface.DsstInterface;
import com.dh.util.DateUtil;
import com.dh.util.FileUtil;
import com.dh.util.SendMessageUtil;
import com.dh.util.Util;
import java.io.File;
import java.net.URL;
/**
* Created by MyEclipse. User: szj Date: 2011-10-12 Time: 09:52 To change this
* template use File | Settings | File Templates.
*/
@WebService
public class DtInterfaceImpl implements DtInterface {
/**
* 彩信发送接口
*
* @param emsxml
* 客户端传入XMl
* @return code(标记,0、失败;1成功);message1(出错字段名,成功时为返回短信字段信息);message(描述信息 )
*/
public String sendEms(String emsxml) {
Document doc = null;
String message = "";
String message1 = "";
int code = 0;
String content = "";
String fileurl="";
String moblienumber = "";
try {
doc = DocumentHelper.parseText(emsxml); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
Iterator<Element> iter =rootElt.elementIterator("sendems"); // 获取根节点下的子节点sendems
// 遍历节点
while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
moblienumber = recordEle.elementTextTrim("moblienumber"); // 手机号码
if (("").equals(moblienumber) || moblienumber == null) {
message1 = message1 + "moblienumber,";
message = message + "手机号码不可为空,";
}
content = recordEle.elementTextTrim("content"); // 内容
if (("").equals(content) || content == null) { message1 =
message1 + "content,"; message = message + "短信内容不可为空,";
}
fileurl = recordEle.elementTextTrim("file"); // file1 文件1
}
} catch (Exception ex) {
message = message + "传入xml格式错误,";
}
Object object = new Object();
synchronized (object) {
if (message1 == "") {
code = 1;
try {
boolean b =true;
if (!("").equals(fileurl) || fileurl != null) {
FileUtil fileUtil=new FileUtil();
File file0=fileUtil.downLoadImg(fileurl);
File[] files = new File[1];
files[0] = file0;
// b =SendMessageUtil.EmsSend(moblienumber, content, files);
} else{
// b =SendMessageUtil.EmsSend(moblienumber, content, null);
}
if(b){
message = message + "发送成功";
}else{
message = message + "发送失败";
}
} catch (Exception e) {
code = 0;
message = message + "发送失败";
}
} else {
message1 = message1.substring(0, message1.length() - 1);
message = message.substring(0, message.length() - 1);
}
}
String returnxml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><head>"
+ "<code>"
+ code
+ "</code>"
+ "<message1>"
+ message1
+ "</message1>"
+ "<message>"
+ message
+ "</message>"
+ "</head></root>";
return returnxml;
}
}
5.访问http://localhost:8080/项目名/DtInterface?wsdl 可以看到wsdl xml文件则表示webservice服务正常
6.新建测试类
测试方法1.
// 创建WebService客户端代理工厂
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
// 注册WebService接口
factory.setServiceClass(DtInterface.class);
// 设置WebService地址
String url = "http://localhost:8080/dsscinterface/DtInterface";
factory.setAddress(url);
DsstInterface dssi = (DsstInterface) factory.create();
System.out.println("invoke webservice...");
StringBuffer reXML = new StringBuffer();
reXML.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><root>");
reXML.append("<sendems>");
reXML.append("<moblienumber>18969076865</moblienumber>");
reXML.append("<content>测试短信</content>");
reXML.append("<file>http://www.baidu.com/img/baidu_sylogo1.gif</file>");
reXML.append("</sendems></root>");
System.out.println("message context is:" + dssi.sendEms(reXML.toString()));
测试类2
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"spring-client.xml");
DsstInterface client = (DsstInterface) ctx.getBean("client");
String result = client.sendEms(reXML.toString());
System.out.println(result);
spring-client.xml:
<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-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd">
<!-- 这个class的包路径和类名和服务端提供web服务的接口一致-->
<bean id="client" class="com.dh.dtinterface.DtInterface" factory-bean="clientFactory" factory-method="create"/>
<bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<!-- 这个class的包路径和类名和服务端提供web服务的接口一致-->
<property name="serviceClass" value="com.dh.dsstinterface.DtInterface"/>
<!-- 这个address一定要注意,正确的-->
<property name="address" value="http://127.0.0.1:8080/ems/DtInterface"/>
</bean>
</beans>
分享到:
相关推荐
【标题】"mybatis+spring3+mysql整合的webservice的client端"涉及的技术栈是MyBatis、Spring 3和MySQL,同时提到了CXF框架用于构建Web服务客户端。这个整合过程通常是为了构建一个能够调用Web服务的Java应用程序,...
【CXF与Spring整合Web服务详解】 在Java世界中,Apache CXF是一个广泛使用的开源框架,用于构建和部署Web服务。它提供了丰富的功能,包括SOAP、RESTful API的支持,以及与Spring框架的深度集成。本篇文章将深入探讨...
整合Spring3和CXF,可以实现服务的灵活管理和高效的调用,尤其适合构建SOA(Service-Oriented Architecture)架构的应用。这个"spring3+cxf2.7 整合jar包"提供了完整的整合环境,包括所有必要的库文件,使得开发者...
在本"spring4.1+mybatis+CXF最新webservice DEMO"中,这三大组件共同构建了一个完整的Web服务解决方案。Spring作为核心框架,负责管理和协调各个组件,提供依赖注入和AOP(面向切面编程)等功能。MyBatis作为数据...
本文将详细探讨"spring4+cxf3"整合的相关知识点,包括Spring 4.1.8和CXF 3.1.3的特性、整合过程以及实际应用场景。 **Spring 4.1.8** Spring 4.1.8是Spring框架的一个稳定版本,它引入了诸多改进和新功能。以下是...
Spring还支持多种数据访问技术,如JDBC、ORM(对象关系映射)框架,以及用于构建RESTful API的Spring MVC。通过Spring,开发者可以将业务逻辑与基础设施代码解耦,提高代码的可测试性和可维护性。 Apache CXF,另一...
"maven-spring-mybatis-webservice"的整合就是这样一个实例,它涵盖了项目管理、服务层架构、持久层操作以及Web服务通信等多个方面。接下来,我们将深入探讨这些知识点。 首先,Maven是Java开发中的一个项目管理和...
在开发Web服务时,CXF、Spring和Tomcat是三个重要的组件。让我们深入探讨这些技术以及它们如何协同工作创建一个有效的Web服务环境。 1. **CXF**:CXF(Code-first eXtended Framework)是一个开源的服务框架,用于...
SSM+cxf+log4j整合框架是一种常见的Java企业级应用开发模式,它结合了Spring、SpringMVC、MyBatis以及CXF和Log4j等多个组件,为开发者提供了高效、灵活的开发环境。让我们详细了解一下这些技术及其整合的关键点。 1...
3. **CXF与Spring集成**:Spring框架可以用来管理CXF服务的生命周期,例如通过Spring配置文件定义服务和客户端,这样可以在Spring容器启动时自动创建和初始化服务,提高代码的可维护性。 **Mybatis** Mybatis是一...
SSM框架是Java Web开发中常用的三大组件:...通过学习和理解这个项目,开发者可以深入掌握SSM框架的集成使用,以及如何利用CXF发布Web服务,这对于提升Java Web开发技能和理解企业级应用的架构设计具有很高的价值。
整合这些技术能创建一个高效、灵活的Web服务系统,其中Spring负责业务逻辑和控制流程,CXF处理Web服务通信,MyBatis处理数据库操作,而MySQL作为可靠的后台数据库存储数据。这样的架构使得开发和维护更加容易,并且...
Spring作为一个强大的应用框架,可以很好地整合其他组件,如CXF(用于创建Web服务)和Mybatis(持久层框架)。以下是对这些技术结合使用的详细步骤和知识点的阐述。 1. **Spring框架**:Spring是Java领域最广泛使用...
SSM框架,全称为Spring、Spring MVC和MyBatis的集成框架,是Java Web开发中的常见选择。这个框架组合能够有效地实现模型-视图-控制器(MVC)架构,简化项目构建并提供强大的数据访问能力。下面将详细介绍SSM框架的...
SpringMVC 是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)架构的 Web 应用;CXF 是一个开源的服务框架,用于创建和消费 Web 服务;而 MyBatis 是一个轻量级的持久层框架,它将 SQL 执行和结果...
Spring Boot 是一个基于 Java 的框架,用于快速构建生产级别的应用程序。它提供了许多有用的特性,如自动配置、嵌入式容器、生产准备等。下面,我们将探讨如何使用 Spring Boot 实现 Restful Webservice 服务端示例...
3. **MyBatis**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以被看作是一个半自动的ORM(对象关系映射)...
3. **Spring框架**:Spring是Java企业级应用的主流框架,提供了IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)等功能,使得开发更加灵活和模块化,同时支持多种数据访问...
2. "基于spring+cxf实现用户文件传输的webservice.docx":这份文档可能讲述了如何利用Spring和CXF框架创建Web服务,实现用户文件的传输。CXF是一个开源的服务框架,用于构建和部署Web服务。 3. "Struts+Hibernate+...