哪个网站做宣传比较好,免费crm网络版,成都展示型网页制作公司,网站重新备案需要多长时间文章目录一、idea快速搭建web项目二、xfire 服务方搭建1. pom依赖2. web.xml3. 创建一个entity4. 创建一个接口5. 创建接口实现类6. 在WEB-INF创建一个META-INF的目录7. 在META-INF创建一个xfire的目录8. 在xfire创建一个services.xml的目录二、xfire客户端搭建1. 创建xfire客户…
文章目录一、idea快速搭建web项目二、xfire 服务方搭建1. pom依赖2. web.xml3. 创建一个entity4. 创建一个接口5. 创建接口实现类6. 在WEB-INF创建一个META-INF的目录7. 在META-INF创建一个xfire的目录8. 在xfire创建一个services.xml的目录二、xfire客户端搭建1. 创建xfire客户端企业版本2. xfire客户端调用依赖名称依赖版本spring4.3.10.RELEASExfire1.26
一、idea快速搭建web项目 二、xfire 服务方搭建
1. pom依赖 propertiesspring.version4.3.10.RELEASE/spring.versionxfire-all.version1.2.6/xfire-all.version/properties!--spring start--dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion${spring.version}/version/dependency!--spring end--dependencygroupIdorg.codehaus.xfire/groupIdartifactIdxfire-all/artifactIdversion${xfire-all.version}/version/dependency2. web.xml
?xml version1.0 encodingUTF-8?
web-app version2.5 xmlnshttp://java.sun.com/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsdwelcome-file-listwelcome-fileindex.jsp/welcome-file/welcome-file-list!-- webservices 接口 XFire 需要引入的 Servlet Start --servletservlet-nameXFireServlet/servlet-nameservlet-classorg.codehaus.xfire.transport.http.XFireConfigurableServlet/servlet-class/servlet!-- 区配前缀 Start --servlet-mappingservlet-nameXFireServlet/servlet-nameurl-pattern/servlet/XFireServlet/*/url-pattern/servlet-mappingservlet-mappingservlet-nameXFireServlet/servlet-nameurl-pattern/xfireUser/services/*/url-pattern/servlet-mapping!-- 区配前缀 End --!-- webservices 接口 XFire 需要引入的 Servlet End --
/web-app3. 创建一个entity
Data
AllArgsConstructor
NoArgsConstructor
Builder
public class User implements Serializable {private Long id;private String name;private Integer age;private String email;
}4. 创建一个接口
package com.gblfy.service;public interface IXfireService {/*** 测试传递json类型 的User对象 类型的信息 获取户信息接口** param jsonUser* return*/public String getUser(String jsonUser);}
5. 创建接口实现类
package com.gblfy.service.impl;import com.gblfy.service.IXfireService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;Service
Slf4j
public class IXfireServiceImpl implements IXfireService {/*** 测试传递User对象 类型的信息 获取户信息接口*/Overridepublic String getUser(String jsonUser) {log.info(接收的到 纽约 发送的报文 {}, jsonUser);return jsonUser;}
}
6. 在WEB-INF创建一个META-INF的目录
7. 在META-INF创建一个xfire的目录
8. 在xfire创建一个services.xml的目录
services.xml 配置内容如下
?xml version1.0 encodingUTF-8?
beansservice xmlnshttp://xfire.codehaus.org/config/1.0!--1. 暴露的服务名2. 自定义命名空间3. 接口路径4. 接口实现类路径 --nameIXfireService/namenamespaceCustomNamespaces/namespaceserviceClasscom.gblfy.service.IXfireService/serviceClassimplementationClasscom.gblfy.service.impl.IXfireServiceImpl/implementationClass/service
/beans
项目截图
启动项目验证测试 浏览器访问
http://localhost:8081/XFireTest/services/HelloService?wsdl注
格式http://ip地址:端口号/项目名/区配前缀/暴露的服务名名称说明协议http://ip地址localhost端口号8081项目名XFireTest区配前缀/services/和/servlet/XFireServlet/暴露的服务名HelloService服务后缀?wsdl部署服务器tomcat9
命名空间和方法名已标注 浏览器访问
http://localhost:8081/XFireTest/servlet/XFireServlet/HelloService?wsdl这样服务端就用哪个xfire发布服务成功了。
二、xfire客户端搭建
1. 创建xfire客户端企业版本
package com.gblfy.utils;import lombok.extern.slf4j.Slf4j;
import org.codehaus.xfire.client.Client;
import org.springframework.stereotype.Repository;import java.net.MalformedURLException;
import java.net.URL;Repository
Slf4j
public class WSXfireClientUtils {/*** WSXfire 客户端** param url 代用地址* param nameSpace 命名空间* param method 方法名* param tReqXml 请求报文* return tResXml 响应报文* throws MalformedURLException* throws Exception*/public static String wSXfireClient(String url, String nameSpace, String method, String tReqXml) throws Exception {long forStrTime 0L;long endToStart 0L;Client client new Client(new URL(url));client.setProperty(nameSpace, method);log.info(开始转发请求报文******************************* {}, tReqXml);forStrTime System.currentTimeMillis();Object[] result client.invoke(method, new Object[]{tReqXml});log.info(响应报文: {}, result[0]);long forEndTime System.currentTimeMillis();endToStart (long) (forEndTime - forStrTime);log.info(转发消耗的时间: {} 毫秒, endToStart);String tResXml (String) result[0];return tResXml;}
}2. xfire客户端调用
package utils;import com.fasterxml.jackson.databind.ObjectMapper;
import com.gblfy.entity.User;
import com.gblfy.utils.WSXfireClientUtils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;Component
Slf4j
public class WSXfireClientTest {//引入json工具类private static final ObjectMapper MAPPER new ObjectMapper();Autowiredprivate WSXfireClientUtils wsXfireClient;Testpublic void testXfireStrType() throws Exception {String url http://localhost:8080/xfireUser/services/IXfireService?wsdl;String nameSpace CustomNamespaces;String method getUser;String tReqXml ?xml version\1.0\ encoding\UTF-8\?\r\n bookstore\r\n book id\1\\r\n name方国军/name\r\n author乔治马丁/author\r\n year2014/year\r\n price89/price\r\n /book\r\n book id\2\\r\n name安徒生童话/name\r\n year2004/year\r\n price77/price\r\n languageEnglish/language\r\n /book \r\n /bookstore;
// String tReqXml Xfire客户端调用成功;String message wsXfireClient.wSXfireClient(url, nameSpace, method, tReqXml);log.info(返回报文 {}, message);}Testpublic void testXfireObjToJsonStrType() throws Exception {String url http://localhost:8080/xfireUser/services/IXfireService?wsdl;String nameSpace CustomNamespaces;String method getUser;User user new User().builder().id(1l).age(2).email(gblfy163.com).name(gblfy).build();// 1. 数据对象转jsonStr处理 易快速解析处理String tReqXml MAPPER.writeValueAsString(user);String message wsXfireClient.wSXfireClient(url, nameSpace, method, tReqXml);log.info(返回报文 {}, message);}
}
本文项目源码https://gitee.com/gb_90/webserice-column