中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Spring項目下集成CXF

發布時間:2020-07-18 02:52:59 來源:網絡 閱讀:388 作者:yzg_guomai 欄目:開發技術

我這里是實現有Spring+SpringMVC+Mybatis的項目,由于CXF能很好的集成到Spring容器中,所以對于已經使用Spring框架的項目推薦使用CXF框架來添加WebService服務


在項目中集成的步驟(服務端):

1:復制CXF的相關jar包。

2:在web.xml配置CXF的核心控制器:CXFServlet

3:開發一個WebService業務接口,該接口要使用@WebService修飾。

   開發一個WebService實現類,實現類也需要用@WebService修飾。

4:在Spring配置文件中導入CXF提供Schema。我這里是重新寫了一個cxf-config.xml的配置文件方便分模塊和查找,開始進行配置使用jaxws:endpoint元素來暴露WebService。

5:如果要添加攔截器。在jaxws:endpoint元素添加inIntercepts或者outIntercept子元素



詳細操作如下:

1:復制CXF的相關jar包其中核心包6個

在Spring項目下集成CXF

2:在web.xml配置CXF的核心控制器:CXFServlet

<servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/webservice/*</url-pattern>
  </servlet-mapping>


3:開發一個WebService業務接口,該接口要使用@WebService修飾。

   開發一個WebService實現類,實現類也需要用@WebService修飾。

package  log.controller;

import javax.jws.WebService;

import net.sf.json.JSONObject;

@WebService
public interface TestWebservice {

	public abstract void say();
	
	public String login(String userName, String password);		

}
package log.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.jws.WebService;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.springframework.beans.factory.annotation.Autowired;

import dj.log.dao.EmployeeMapper;
import dj.log.service.EmployeeService;
import dj.log.service.LogService;

@WebService(endpointInterface = "log.controller.TestWebservice", serviceName = "TestWebserviceImpl")
public class TestWebserviceImpl implements TestWebservice {

	@Autowired
	private EmployeeService employeeService;

	@Autowired
	private EmployeeMapper employeeMapper;
	
	@Autowired
	private LogService logService;

	/*
	 * (non-Javadoc)
	 * 
	 * @see dj.log.controller.TestWebservice#say()
	 */
	@Override
	public void say() {

		System.out.println("dddddddddddddddddd");
	}

	
	
	 
	public String  login(String userName, String password) {
		
		JSONObject json=new JSONObject();	 
		List<Map<String, Object>> userInfo = logService.selectLogin(userName,
				password);
		String respMessage = "0";
		if (userInfo.size() > 0) {
			 
			respMessage = "1";
			json.put("userName", userName);
			json.put("password", password);
			json.put("emp_id",userInfo.get(0).get("EMP_ID"));
			json.put("roles",userInfo.get(0).get("ROLES"));			
		}
		json.put("respMessage", respMessage);
//		PrintWriter out = response.getWriter();
//		out.print(json.toString());
//		out.close();
		return json.toString();
	}
	
}

4:在Spring配置文件中導入CXF提供Schema。我這里是重新寫了一個cxf-config.xml的配置文件方便分模塊和查找,開始進行配置使用jaxws:endpoint元素來暴露WebService:

<?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-3.1.xsd  
                            http://cxf.apache.org/jaxws   
                            http://cxf.apache.org/schemas/jaxws.xsd">
	<!-- 引用cxf包下的配置 -->
	<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 -->
	<bean id="testWebservice" class="controller.TestWebserviceImpl" />
	<!-- 通過這個bean來暴露WebService 
	     implementor=""這個bean實現相關的業務邏輯:可以直接寫類的路徑,
	            也可以直接寫已經聲明的bean為了更好的使用Spring的依賴注入我們使用聲明好的bean
	     address="/RCSWebService" 指定訪問的路徑
	-->
	<jaxws:endpoint id="myWebService" implementor="#testWebservice"
		address="/RCSWebService" />

</beans>

在客戶端調用的步驟:

1:下載apache-cxf文件,并配置系統環境變量path路徑,我這里使用apache-cxf-2.7.6

  在Spring項目下集成CXF


2:調用cxf提供的wsdl2java工具,根據wsdl文檔生成相應的java代碼。

在Spring項目下集成CXF

3:找到生成的類中一個繼承了Service的類。該類的實例可以當做工廠類來使用。通過調用的該類的getXXX獲得對象返回賦給一個代理類,通過代理類調用對應的方法

	TestWebserviceImpl test = new TestWebserviceImpl();
		TestWebservice testdao = test.getTestWebserviceImplPort();
		testdao.say();


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西吉县| 山西省| 德化县| 平南县| 香格里拉县| 璧山县| 红安县| 项城市| 涞水县| 淮滨县| 兰溪市| 城固县| 嵊泗县| 堆龙德庆县| 汉源县| 长寿区| 丽水市| 山阴县| 牟定县| 凌海市| 太和县| 奈曼旗| 沙洋县| 类乌齐县| 习水县| 林芝县| 道孚县| 茌平县| 隆昌县| 翁源县| 麻栗坡县| 道真| 三都| 通海县| 高唐县| 长顺县| 仁化县| 宣化县| 洛阳市| 东城区| 邹平县|