`

Spring3jdbc架构整合webservice框架cxf

阅读更多
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+spring3+mysql整合的webservice的client端"涉及的技术栈是MyBatis、Spring 3和MySQL,同时提到了CXF框架用于构建Web服务客户端。这个整合过程通常是为了构建一个能够调用Web服务的Java应用程序,...

    CXF Spring Web Service 程序

    【CXF与Spring整合Web服务详解】 在Java世界中,Apache CXF是一个广泛使用的开源框架,用于构建和部署Web服务。它提供了丰富的功能,包括SOAP、RESTful API的支持,以及与Spring框架的深度集成。本篇文章将深入探讨...

    spring3+cxf 整合jar包

    整合Spring3和CXF,可以实现服务的灵活管理和高效的调用,尤其适合构建SOA(Service-Oriented Architecture)架构的应用。这个"spring3+cxf2.7 整合jar包"提供了完整的整合环境,包括所有必要的库文件,使得开发者...

    spring4.1+mybatis+CXF最新webservice DEMO

    在本"spring4.1+mybatis+CXF最新webservice DEMO"中,这三大组件共同构建了一个完整的Web服务解决方案。Spring作为核心框架,负责管理和协调各个组件,提供依赖注入和AOP(面向切面编程)等功能。MyBatis作为数据...

    spring4+cxf3

    本文将详细探讨"spring4+cxf3"整合的相关知识点,包括Spring 4.1.8和CXF 3.1.3的特性、整合过程以及实际应用场景。 **Spring 4.1.8** Spring 4.1.8是Spring框架的一个稳定版本,它引入了诸多改进和新功能。以下是...

    webservice spring与CXF结合实现 实例和jar包都有

    Spring还支持多种数据访问技术,如JDBC、ORM(对象关系映射)框架,以及用于构建RESTful API的Spring MVC。通过Spring,开发者可以将业务逻辑与基础设施代码解耦,提高代码的可测试性和可维护性。 Apache CXF,另一...

    maven-spring-mybatis-webservice整合

    "maven-spring-mybatis-webservice"的整合就是这样一个实例,它涵盖了项目管理、服务层架构、持久层操作以及Web服务通信等多个方面。接下来,我们将深入探讨这些知识点。 首先,Maven是Java开发中的一个项目管理和...

    cxf+spring+tomat开发webservice所需jar包

    在开发Web服务时,CXF、Spring和Tomcat是三个重要的组件。让我们深入探讨这些技术以及它们如何协同工作创建一个有效的Web服务环境。 1. **CXF**:CXF(Code-first eXtended Framework)是一个开源的服务框架,用于...

    spring-3.1.2、cxf-3.1.3、mybaties、mysql 整合实现webservice需要的完整jar文件

    整合这些技术能创建一个高效、灵活的Web服务系统,其中Spring负责业务逻辑和控制流程,CXF处理Web服务通信,MyBatis处理数据库操作,而MySQL作为可靠的后台数据库存储数据。这样的架构使得开发和维护更加容易,并且...

    SSM+cxf+log4j整合框架

    SSM+cxf+log4j整合框架是一种常见的Java企业级应用开发模式,它结合了Spring、SpringMVC、MyBatis以及CXF和Log4j等多个组件,为开发者提供了高效、灵活的开发环境。让我们详细了解一下这些技术及其整合的关键点。 1...

    WebService CXF、 Mybatis简单实例

    3. **CXF与Spring集成**:Spring框架可以用来管理CXF服务的生命周期,例如通过Spring配置文件定义服务和客户端,这样可以在Spring容器启动时自动创建和初始化服务,提高代码的可维护性。 **Mybatis** Mybatis是一...

    spring+srpingmvc+mybatis+cxf

    SSM框架是Java Web开发中常用的三大组件:...通过学习和理解这个项目,开发者可以深入掌握SSM框架的集成使用,以及如何利用CXF发布Web服务,这对于提升Java Web开发技能和理解企业级应用的架构设计具有很高的价值。

    Spring CXF Mybatis 发布 Web Service 实例

    Spring作为一个强大的应用框架,可以很好地整合其他组件,如CXF(用于创建Web服务)和Mybatis(持久层框架)。以下是对这些技术结合使用的详细步骤和知识点的阐述。 1. **Spring框架**:Spring是Java领域最广泛使用...

    Maven+Spring+Spring MVC+MyBatis+MySQL整合SSM框架

    SSM框架,全称为Spring、Spring MVC和MyBatis的集成框架,是Java Web开发中的常见选择。这个框架组合能够有效地实现模型-视图-控制器(MVC)架构,简化项目构建并提供强大的数据访问能力。下面将详细介绍SSM框架的...

    springMVC+cxf+mybatis整合项目

    SpringMVC 是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)架构的 Web 应用;CXF 是一个开源的服务框架,用于创建和消费 Web 服务;而 MyBatis 是一个轻量级的持久层框架,它将 SQL 执行和结果...

    Spring Boot 实现Restful webservice服务端示例代码

    Spring Boot 是一个基于 Java 的框架,用于快速构建生产级别的应用程序。它提供了许多有用的特性,如自动配置、嵌入式容器、生产准备等。下面,我们将探讨如何使用 Spring Boot 实现 Restful Webservice 服务端示例...

    ssm+maven+webService

    3. **MyBatis**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以被看作是一个半自动的ORM(对象关系映射)...

    webservice

    3. **Spring框架**:Spring是Java企业级应用的主流框架,提供了IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)等功能,使得开发更加灵活和模块化,同时支持多种数据访问...

    hibernate_spring_struts框架资料

    2. "基于spring+cxf实现用户文件传输的webservice.docx":这份文档可能讲述了如何利用Spring和CXF框架创建Web服务,实现用户文件的传输。CXF是一个开源的服务框架,用于构建和部署Web服务。 3. "Struts+Hibernate+...

    ssm webservice,新手可以参考,不错的参考价值

    整合SSM与Webservice,首先需要在SpringMVC中添加Webservice的支持,如利用Apache CXF或Axis2等库来创建和消费Webservice。你需要在Spring配置文件中定义WebService的端点(Endpoint)和相应的服务接口。然后,通过...

Global site tag (gtag.js) - Google Analytics