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>
分享到:
相关推荐
完整可用的spring整合CXF示例项目,包括服务发布端和调用端两个项目,包括CXF拦截器的实现的简单的授权校验
WebService的CXF整合Spring有源码和jar包
springboot整合webservice采用CXF技术,springboot整合webservice采用CXF技术
基于spring4+mybatis技术搭建web服务,该服务以soap协议提供webservice接口。 webservice接口基于cxf框架实现。
简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar...
webserivce.、cxf整合spring,用的是spring3和cxf3。欢迎大家下载尝试
WebService框架CXF开发WebService需要的jar包(重点:解决gbk编码错误问题)
cxf与spring整合webservice所需jar
现在主流的webService框架,一个是axis2,一个是cxf,本资源是基于cxf框架的简单例子
Web项目中基于Maven与Spring整合的WebService之cxf的实现⬇️ 详情请参考如下链接: https://locqi.github.io/locqi.com/2018/09/05/Eclipse+Maven+Spring+CXF-create-WebService/
基于spring和CXF发布webservice,包含java本地发布和调用及web发布和调用。
CXF WebService整合Spring示例工程代码demo可以直接导入eclipse。参照网页http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html 完成的webService服务提供。 大致步骤: 1.引入cxf和其他需要的jar包,(本...
mybatis+spring+cxf webservice服务 项目框架代码例子,绝对是可以参考的,信不信,只有下载之后才知道
webservice地址 http://localhost:8080/springCxf/HelloWorld?wsdl
webservice cxf spring整合返回list,bean,string,json,xml项目完整实例
webservice-CXF-spring 实现server+client
基于CXF的WebService服务端和客户端示例,CXF+Spring,希望能为WebService开发者提供帮助。WebService,CXF,Spring.
WebService_CXF_x509
webservice cxf spring jar包大全,下载,超好用的
开发环境jdk1.7,cxf版本3.1.17。 spring整合CXF开发webService所需jar包。