日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

IDEA快速 实现 SpringMVC 整合xfire 发布 WebService 服务

發(fā)布時間:2024/9/27 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IDEA快速 实现 SpringMVC 整合xfire 发布 WebService 服务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

          • 一、idea快速搭建web項目
          • 二、xfire 服務(wù)方搭建
            • 1. pom依賴
            • 2. web.xml
            • 3. 創(chuàng)建一個entity
            • 4. 創(chuàng)建一個接口
            • 5. 創(chuàng)建接口實現(xiàn)類
            • 6. 在WEB-INF創(chuàng)建一個META-INF的目錄
            • 7. 在META-INF創(chuàng)建一個xfire的目錄
            • 8. 在xfire創(chuàng)建一個services.xml的目錄
          • 二、xfire客戶端搭建
            • 1. 創(chuàng)建xfire客戶端(企業(yè)版本)
            • 2. xfire客戶端調(diào)用

依賴名稱依賴版本
spring4.3.10.RELEASE
xfire1.26
一、idea快速搭建web項目

二、xfire 服務(wù)方搭建
1. pom依賴
<properties><spring.version>4.3.10.RELEASE</spring.version><xfire-all.version>1.2.6</xfire-all.version></properties><!--spring start--><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><!--spring end--><dependency><groupId>org.codehaus.xfire</groupId><artifactId>xfire-all</artifactId><version>${xfire-all.version}</version></dependency>
2. web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- webservices 接口 XFire 需要引入的 Servlet Start --><servlet><servlet-name>XFireServlet</servlet-name><servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class></servlet><!-- 區(qū)配前綴 Start --><servlet-mapping><servlet-name>XFireServlet</servlet-name><url-pattern>/servlet/XFireServlet/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>XFireServlet</servlet-name><url-pattern>/xfireUser/services/*</url-pattern></servlet-mapping><!-- 區(qū)配前綴 End --><!-- webservices 接口 XFire 需要引入的 Servlet End --> </web-app>
3. 創(chuàng)建一個entity
@Data @AllArgsConstructor @NoArgsConstructor @Builder public class User implements Serializable {private Long id;private String name;private Integer age;private String email; }
4. 創(chuàng)建一個接口
package com.gblfy.service;public interface IXfireService {/*** 測試傳遞json類型 的User對象 類型的信息 獲取戶信息接口** @param jsonUser* @return*/public String getUser(String jsonUser);}
5. 創(chuàng)建接口實現(xiàn)類
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("接收的到 紐約 發(fā)送的報文 {}", jsonUser);return jsonUser;} }
6. 在WEB-INF創(chuàng)建一個META-INF的目錄
7. 在META-INF創(chuàng)建一個xfire的目錄
8. 在xfire創(chuàng)建一個services.xml的目錄

services.xml 配置內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?> <beans><service xmlns="http://xfire.codehaus.org/config/1.0"><!--1. 暴露的服務(wù)名2. 自定義命名空間3. 接口路徑4. 接口實現(xiàn)類路徑 --><name>IXfireService</name><namespace>CustomNamespaces</namespace><serviceClass>com.gblfy.service.IXfireService</serviceClass><implementationClass>com.gblfy.service.impl.IXfireServiceImpl</implementationClass></service> </beans>

項目截圖:

啟動項目驗證測試:
瀏覽器訪問:

http://localhost:8081/XFireTest/services/HelloService?wsdl

注:

格式:http://ip地址:端口號/項目名/區(qū)配前綴/暴露的服務(wù)名 名稱說明
協(xié)議http://
ip地址localhost
端口號8081
項目名XFireTest
區(qū)配前綴/services/和/servlet/XFireServlet/
暴露的服務(wù)名HelloService
服務(wù)后綴?wsdl
部署服務(wù)器tomcat9

命名空間和方法名已標(biāo)注:

瀏覽器訪問:

http://localhost:8081/XFireTest/servlet/XFireServlet/HelloService?wsdl

這樣服務(wù)端就用哪個xfire發(fā)布服務(wù)成功了。

二、xfire客戶端搭建
1. 創(chuàng)建xfire客戶端(企業(yè)版本)
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 響應(yīng)報文* @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("開始轉(zhuǎn)發(fā)請求報文******************************* {}", tReqXml);forStrTime = System.currentTimeMillis();Object[] result = client.invoke(method, new Object[]{tReqXml});log.info("響應(yīng)報文: {}", result[0]);long forEndTime = System.currentTimeMillis();endToStart = (long) (forEndTime - forStrTime);log.info("轉(zhuǎn)發(fā)消耗的時間: {} 毫秒", endToStart);String tResXml = (String) result[0];return tResXml;} }
2. xfire客戶端調(diào)用
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"+ " <year>2014</year>\r\n" + " <price>89</price>\r\n" + " </book>\r\n"+ " <book id=\"2\">\r\n" + " <name>安徒生童話</name>\r\n" + " <year>2004</year>\r\n"+ " <price>77</price>\r\n" + " <language>English</language>\r\n" + " </book> \r\n"+ "</bookstore>"; // String tReqXml = "Xfire客戶端調(diào)用成功";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("gblfy@163.com").name("gblfy").build();// 1. 數(shù)據(jù)對象轉(zhuǎn)jsonStr處理 易快速解析處理String tReqXml = MAPPER.writeValueAsString(user);String message = wsXfireClient.wSXfireClient(url, nameSpace, method, tReqXml);log.info("返回報文 {}", message);} }

本文項目源碼:https://gitee.com/gb_90/webserice-column

總結(jié)

以上是生活随笔為你收集整理的IDEA快速 实现 SpringMVC 整合xfire 发布 WebService 服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。