久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

調用外部方法及工作流

時間:2019-05-14 21:52:51下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《調用外部方法及工作流》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《調用外部方法及工作流》。

第一篇:調用外部方法及工作流

調用外部方法及工作流

公開一個對象,來從執行的工作流中傳給宿主應用程序,或者從宿主應用程序傳給工作流不就行了嗎?其實,使用現有的串行化技術,如.NET Remoting或者XML Web服務,就可完成這些事。串行化,也叫序列化,它可把數據從原有的形式轉換成合適的形式,以在不同進程甚至不同計算機之間進行傳輸。

學習完本章,你將掌握:

1.創建并調用你的工作流外部的本地數據服務

2.理解怎樣使用接口來為宿主進程和你的工作流之間進行通信。

3.使用設計的外部方法在你的工作流和宿主應用程序之間傳輸數據。

4.在一個正執行的工作流中調用其它工作流

在寫前面的章節時,我自己不斷地思考,“我不能再等了,我要弄清楚在哪里可把(工作流中的)真實數據返回到宿主應用程序中!”為什么?做了這么多的活動和工作流的演示,但都沒有實際返回某些感興趣的東西給宿主應用程序。我不知寫過多少我們感興趣的工作流的實例和演示,但至多只是僅僅處理過數據的初始化(就像第一章-WF簡介中你看過的郵政編碼的例子)。但事情變得更加有趣,坦率地說,當我們啟動工作流,然后從外部源中尋找并處理數據、返回處理后的數據給我們的主應用程序要更加接近現實。

為什么不這樣呢?公開一個對象,來從執行的工作流中傳給宿主應用程序,或者從宿主應用程序傳給工作流不就行了嗎?其實,使用現有的串行化技術,如.NET Remoting或者XML Web服務,就可完成這些事。串行化,也叫序列化,它可把數據從原有的形式轉換成合適的形式,以在不同進程甚至不同計算機之間進行傳輸。

為什么談到序列化呢?因為你的工作流是在你的宿主進程中的不同線程上執行,不同線程之間傳送數據,如不進行適當的序列化,將會引發災難,具體原因超出了本書的討論范圍。其實,你的工作流能在一個持久化的狀態下發送它的數據。這并沒有在不同線程上,甚至它不在執行中。

但我們想在我們的工作流和正控制該工作流的宿主進程間傳送數據時,使用.NET Remoting或者XML Web服務這樣的技術為什么并沒有認為是多余的呢?其實這絕對有必要!我們將創建local通信,本章將以此出發。我們將搭建必須的體系來滿足線程數據序列化,以進行計算機之間或進程之間的數據傳輸。

創建ExternalDataService服務

當工作流和它的宿主進行通信時,在它發送和接收數據的時候,工作流要使用隊列和消息。WF為我們做的越多,我們就可把重點更多的放到應用中特定任務的解決上。

工作流內部進程通信

對于簡單的通信任務,WF使用“abstraction layer”來在工作流和宿主之間進行緩沖。抽象層像一個黑盒,你為它提供輸入,它會執行一些神奇的任務,然后信息流出到另一邊。但我們不用知道它是如何工作的。

在這種情形下,該黑盒就是一個知名的“local communication”服務。和WF術語中的任何一種服務一樣,它也是另一種可插拔服務。區別是它不像WF中的那些已預先創建好的服務,你需要寫出這個服務的一部分。為什么呢?因為你在宿主應用程序和你的工作流之間傳遞的數據有一定的特殊性。更進一步說,你可創建各種各樣的數據傳輸方法,你可使用你設計的各種方法從宿主應用程序發送數據,然后在工作流中接收數據。

備注:這里有些事情你需要進行關注,那就是對象或集合的共享問題。因為宿主應用程序和工作流運行時在同一個應用程序域執行,因此引用類型的對象和集合就是通過引用而不是值進行傳遞。這意味著宿主應用程序和工作流實例在同一時間會訪問和使用同一個對象,多線程環境下這會產生bug,出現數據并發訪問錯誤。因此,對于可能要進行并發訪問的對象或集合,你可考慮傳遞一個對象或集合的副本,或許這可通過實現ICloneable接口,或者考慮親自序列化該對象或集合并傳遞序列化后的版本。

你可寫這種local service,把它插進工作流,然后打開連接,發送數據。這些數據可以是字符串,DataSet對象,甚至可以是你設計的任何可被序列化的自定義對象。通信可以是雙向的,盡管在本章我沒有演示它。(這里,我僅僅是把數據從工作流中傳回給宿主應用程序。)從工作流的角度來說,我們使用工具生成活動的目的是發送和接收數據。從宿主應用程序的角度來說,接收數據等同于一個事件,而發送數據就是在一個服務對象上的方法的簡單調用。

備注:我們在后面幾章看到更多的活動后還會重溫該雙向數據傳輸的概念。工作流活動從宿主應用程序中接收數據基于一個HandleExternalEvent活動,我們將在第10章“Event活動”中看到。我們也需要更深入地了解這些概念間的相互關系,這在第17章“宿主通信”中將進行介紹。對于當前,我們只是在工作流實例完成它的任務后,簡單地返回復合數據給宿主。

我們需要做的還不僅僅是這一點,我們最終需要添加ExternalDataService服務到我們的工作流運行時中。ExternalDataService是一個可插拔的服務,它方便了工作流實例和宿主應用程序之間進行序列化數據的傳輸。在緊接下來的一節我們將寫出的該服務的代碼將做很多事(包括序列化數據的傳輸)。讓我們來看看大體的開發過程。

第二篇:工作流配置方法

自定義工作流的方法

1、在WSS3.0中只有文檔庫,表單庫和列表庫可以使用工作流。

2、以請假管理為例

在請假管理界面中“設置”按鈕,選擇“列表設置”。

在列表設置界面中選擇“版本控制設置”

在“版本控制設置”里把審批功能選中

返回設置界面,然后點擊菜單上的OFFICE按鈕,選擇“sharepoint designer 編輯”

在“新建”中選擇“工作流”

在此界面中輸入工作流的名稱,選擇工作流的模板,以及啟動工作流的方式。

在上圖中也可以知道可以使用工作流的列表。因為我的是sharepoint2007所以可以應用的列表比較多。Wss3.0可能沒有這么多。

由于請假的時間不同申批的領導也不同,所以需要輸入請假天數。這樣在啟動用設置請假天數,以此來啟動不同的工作流。點擊“啟動”按鈕

添加

下一步

完成,確定

然后在“工作流設置器”界面點擊下一步

在接下來的界面中輸入工作流執行的條件

首先當審批狀態是待定的時候我們才執行工作流。所以要先設這個條件

點擊“域”,選擇審批狀態

然后再點擊值,選擇“待定”

接下來,要看請假的天數是幾天,1天以內的部門經理批,超過一天的要總經理批。選擇“比較任意數據源”

點擊“值”

點擊“Fx”函數按鈕,在彈出窗口選擇“工作流數據”

確定

點擊“等于”改為“小于等于”

點擊“值”,輸入1

點擊“操作”

點擊“待辦事項”

下一步

在彈出的窗口中輸入待辦事項的名字和說明,完成

點擊“這些用戶”(假使ALAN為IT部門經理)。

確定

到此請假一天的工作流,我們已經做完了,接下來再做請假超過一天的。超過一天按常理,部門經理也需要批準,然后再給總經理。操作如下: 點擊“添加IF條件”

同理也是要在審批狀態是待定的時侯

然后再添加條件

點擊“值”

然后,點擊“操作”,分配待辦事項

點擊“待辦事項”

點擊“這些用戶”

然后再點擊“操作”,分配待辦事項

點擊“完成”

回到SHAREPOINT DESIGNER界面會看到多出一個工作流

回到sharepoint網站

輸入請假的天數,然后啟動

這時我換成ALAN的帳號 查看一下工作流

審批

然后點擊“進行中”

“新請假任務1”選擇“編輯”

點擊完成任務

1天以上的請假

切換到alan用戶

在任務界面中會列出需要我審批的任務

回到請假管理

注意在此步驟中此圖應為沒有BEN的內容,當編輯->完成任務后,才會出現BEN這一項

切換用戶到BEN

切換回請假申請者chris

流程設計完畢。

第三篇:指標導入方法和調用

首先,指標是導入的。不是打開用的1.先打開通達信行情軟件

1.找到功能--專家系統--公示管理器--導入公式

2.導入完成之后具體使用方法:

功能——選股器——條件選股——揚帆漲停選股——加入條件——選股入板塊

調用指標的方法和路徑:CRTL+F,其他類型,然后看好你想用的指標的名字,再把公式管理器關掉,打出你想要用的指標的名字的拼音的第一個字母,比如:導彈出擊:DDCJ

第四篇:java 調用webservice的各種方法總結

一、利用jdk web服務api實現,這里使用基于 SOAP message 的 Web 服務

1.首先建立一個Web services EndPoint:

Java代碼

package Hello;

import javax.jws.WebService;

import javax.jws.WebMethod;

import javax.xml.ws.Endpoint;

@WebService

public class Hello {

@WebMethod

public String hello(String name){

return “Hello, ” + name + “n”;}

public static void main(String[] args){

// create and publish an endpoint

Hello hello = new Hello();

Endpoint endpoint Endpoint.publish(“http://localhost:8080/hello”, hello);

} }

=

2.使用 apt 編譯 Hello.java(例:apt-d [存放編譯后的文件目錄] Hello.java),會生成 jaws目錄

3.使用java Hello.Hello運行,然后將瀏覽器指向http://localhost:8080/hello?wsdl就會出現下列顯示

4.使用wsimport 生成客戶端

使用如下:wsimport-p.-keep http://localhost:8080/hello?wsdl

5.客戶端程序:

Java代碼

1.class HelloClient{ 2.3.public static void main(String args[]){ 4.5.HelloService service = new HelloService();6.7.Hello helloProxy = service.getHelloPort();8.9.String hello = helloProxy.hello(“你好”);10.11.System.out.println(hello);12.13.} 14.15.} 16.二、使用xfire,我這里使用的是myeclipse集成的xfire進行測試的

利用xfire開發WebService,可以有三種方法:

1一種是從javabean 中生成;

一種是從wsdl文件中生成;

還有一種是自己建立webservice

步驟如下:

用myeclipse建立webservice工程,目錄結構如下:

首先建立webservice接口,代碼如下:

Java代碼

1.package com.myeclipse.wsExample;2.3.//Generated by MyEclipse 4.5.6.7.public interface IHelloWorldService { 8.9.10.11.public String example(String message);12.13.14.15.} 16.Java代碼

1.package com.myeclipse.wsExample;2.3.//Generated by MyEclipse 4.5.6.7.public class HelloWorldServiceImpl implements IHelloWorldService { 8.9.10.11.public String example(String message){ 12.13.return message;14.15.} 16.17.18.19.} 20.修改service.xml 文件,加入以下代碼:

Xml代碼

1.2.3. 4.5.HelloWorldService 6.7. 8.9.com.myeclipse.wsExample.IHelloWorldService 10.11. 12.13. 14.15.com.myeclipse.wsExample.HelloWorldServiceImpl 16.17. 18.19. 20.21.literal 22.23.application 24.25. 26.把整個項目部署到tomcat服務器中,打開瀏覽器,輸入http://localhost:8989/HelloWorld/services/HelloWorldService?wsdl

客戶端實現如下:

Java代碼

1.package com.myeclipse.wsExample.client;2.3.import java.net.MalformedURLException;4.5.import java.net.URL;6.7.8.9.import org.codehaus.xfire.XFireFactory;10.11.import org.codehaus.xfire.client.Client;12.13.import org.codehaus.xfire.client.XFireProxyFactory;14.15.import org.codehaus.xfire.service.Service;16.17.import org.codehaus.xfire.service.binding.ObjectServiceFactory;18.19.20.21.import com.myeclipse.wsExample.IHelloWorldService;22.23.24.25.public class HelloWorldClient { 26.27.public static void main(String[] args)throws MalformedURLException, Exception { 28.29.// TODO Auto-generated method stub 30.31.Service s=new ObjectServiceFactory().create(IHelloWorldService.class);32.33.XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());34.35.String url=“http://localhost:8989/HelloWorld/services/HelloWorldService”;36.37.38.39.try 40.41.{ 42.43.44.45.IHelloWorldService hs=(IHelloWorldService)xf.create(s,url);46.47.String st=hs.example(“zhangjin”);48.49.System.out.print(st);50.51.} 52.53.catch(Exception e)54.55.{ 56.57.e.printStackTrace();58.59.} 60.61.} 62.63.64.65.} 66.這里再說點題外話,有時候我們知道一個wsdl地址,比如想用java客戶端引用.net 做得webservice,使用myeclipse引用,但是卻出現無法通過驗證的錯誤,這時我們可以直接在類中引用,步驟如下:

Java代碼

1.public static void main(String[] args)throws MalformedURLException, Exception { 2.3.// TODO Auto-generated method stub 4.5.Service s=new ObjectServiceFactory().create(IHelloWorldService.class);6.7.XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());8.9.10.11.//遠程調用.net開發的webservice 12.13.Client c=new Client(new URL(“http://www.tmdps.cn/axis2/

同理,也需要將axis2復制到webapp目錄中

在axis2中部署webservice有兩種方法,第一種是pojo方式,這種方式比較簡單,但是有一些限制,例如部署的類不能加上包名

第二種方式是利用xml發布webservice,這種方法比較靈活,不需要限制類的聲明

下面分別說明使用方法:

1.pojo方式:在Axis2中不需要進行任何的配置,就可以直接將一個簡單的POJO發布成WebService。其中POJO中所有的public方法將被發布成WebService方法。先實現一個pojo類:

Java代碼

1.public class HelloWorld{ 2.3.public String getName(String name)4.5.{ 6.7.return ”你好 “ + name;8.9.} 10.11.public int add(int a,int b)12.13.{ 14.15.return a+b;16.17.} 18.19.} 20.由于這兩個方法都是public類型,所以都會發布成webservice。編譯HelloWorld類后,將HelloWorld.class文件放到%tomcat%webappsaxis2WEB-INFpojo目錄中(如果沒有pojo目錄,則建立該目錄),然后打開瀏覽器進行測試:

輸入一下url:

http://localhost:8080/axis2/services/listServices

會列出所有webservice

這是其中的兩個webservice列表,接著,在客戶端進行測試:

首先可以寫一個封裝類,減少編碼,代碼如下:

Java代碼

1.package MZ.GetWebService;2.3.import javax.xml.namespace.QName;4.5.6.7.import org.apache.axis2.AxisFault;8.9.import org.apache.axis2.addressing.EndpointReference;10.11.import org.apache.axis2.client.Options;12.13.import org.apache.axis2.rpc.client.RPCServiceClient;14.15.16.17.18.19.public class GetWSByAxis2 { 20.21.private static String EndPointUrl;22.23.private static String QUrl=”http://ws.apache.org/axis2“;

24.25.private QName opAddEntry;26.27.public String WSUrl;28.29.public RPCServiceClient setOption()throws AxisFault 30.31.{ 32.33.RPCServiceClient serviceClient = new RPCServiceClient();34.35.Options options = serviceClient.getOptions();36.37.EndpointReference targetEPR = new EndpointReference(WSUrl);38.39.options.setTo(targetEPR);40.41.return serviceClient;42.43.} 44.45.46.47.public QName getQname(String Option){ 48.49.50.51.return new QName(QUrl,Option);52.53.} 54.55.//返回String 56.57.public String getStr(String Option)throws AxisFault 58.59.{ 60.61.RPCServiceClient serviceClient =this.setOption();62.63.64.65.opAddEntry =this.getQname(Option);66.67.68.69.String str =(String)serviceClient.invokeBlocking(opAddEntry, 70.71.new Object[]{}, new Class[]{String.class })[0];72.73.return str;74.75.} 76.77.// 返回一維String數組 78.79.public String[] getArray(String Option)throws AxisFault

80.81.{ 82.83.RPCServiceClient serviceClient =this.setOption();84.85.86.87.opAddEntry =this.getQname(Option);88.89.90.91.String[] strArray =(String[])serviceClient.invokeBlocking(opAddEntry, 92.93.new Object[]{}, new Class[]{String[].class })[0];94.95.return strArray;96.97.} 98.99.//從WebService中返回一個對象的實例

100.101.public Object getObject(String Option,Object o)throws AxisFault 102.103.{ 104.105.RPCServiceClient serviceClient =this.setOption();106.107.QName qname=this.getQname(Option);108.109.Object object = serviceClient.invokeBlocking(qname, new Object[]{},new Class[]{o.getClass()})[0];110.111.return object;112.113.} 114.115.116.117.///////////////////////////////////////// 讀者可以自己封裝數據類型,如int,byte,float等數據類型

118.119.} 120.客戶端調用方法:

Java代碼

1.MZ.GetWebService.GetWSByAxis2 ws=new MZ.GetWebService.GetWSByAxis2();2.3.ws.WSUrl=”http://localhost:8989/axis2/services/HelloWorld“;4.5.HelloWorld hello=(HelloWorld)ws.getObject(”getName“, HelloWorld.class);6.7.8.9.10.11.System.out.println(hello.getName(”zhangjin“));12.2.使用service.xml發布webservice,這種方式和直接放在pojo目錄中的POJO類不同。要想將MyService類發布成Web Service,需要一個services.xml文件,這個文件需要放在META-INF目錄中,該文件的內容如下:

Xml代碼

1. 2.3. 4.5.HelloWorld webservice 6.7. 8.9.10.11.service.HelloWorld 12.13. 14.15. 16.17. 20.21. 24.25. 26.27. 28.其中元素用于發布Web Service,一個元素只能發布一個WebService類,name屬性表示WebService名,如下面的URL可以獲得這個WebService的WSDL內容:

http://localhost:8080/axis2/services/myService?wsdl

除此之外,還有直接可以在其中制定webservice操作方法:可以這樣些service.xml文件

Java代碼

1. 2.3. 4.5.HelloWorld service 6.7. 8.9.

10.11.service.HelloWorld 12.13. 14.15. 16.17. 18.19. 20.21. 22.23. 26.27. 28.29. 30.如果要發布多個webservice,可以在文件兩段加上...發布

第五篇:ORACLE9i動態SQL調用方法心得

ORACLE9i動態SQL調用方法心得

一、執行動態函數--返回值

OUT_CS:=0;--參數

IN_CS1:=100;

IN_CS2:=150;--自定義函數名稱FUN_01();

NAME:='01'

V_SQL := 'BEGIN :1:=FUN_'||NAME||'(:2);END;';

BEGIN

EXECUTE IMMEDIATE V_SQL

USING OUT OUT_CS, IN IN_CS;

EXCEPTION

WHEN OTHERS THEN

OUT_JG := '執行異常!';

END;

FUNCTION GET_DMGZ(IN_CS IN NUMBER)RETURN NUMBER AS AS BEGIN

RETURN IN_CS+1;END;

二、執行動態過程--輸出參數

OUT_CS:=0;--輸入參數

IN_CS:=100;--自定義函數名稱PRO_01();

NAME:='01'

V_SQL := 'BEGIN PRO_' || NAME|| '(:1,:2);END;';

BEGIN

EXECUTE IMMEDIATE V_SQL

USING IN IN_CS, OUT RVAR;

EXCEPTION

WHEN OTHERS THEN

OUT_JG := 0;

END;

PROCEDURE PRO_01(IN_CS

IN NUMBER, OUT_CS OUT NUMBER)AS BEGIN

OUT_CS:=IN_CS+1;END;

三、返回游標參數

1、在包里新建一類型 TYPE MY_CUR IS REF CURSOR;

2、在參數定義時使用自定義類型

OUT_CS OUT MY_CUR;--存儲過程

RETURN MY_CUR;

--自定義函數

3、存儲過程

PROCEDURE PRO_01(IN_CS

IN NUMBER, OUT_CS OUT MY_CUR)AS BEGIN

OPEN OUT_CS FOR SELECT IN_CS+1 FROM DUAL;END;

4、自定義函數

FUNCTION GET_DMGZ(IN_CS IN NUMBER)RETURN MY_CUR AS RC MY_CUR;AS BEGIN

OPEN RC FOR SELECT IN_CS+1 FROM DUAL;

RETURN RC;END;

3、如何使用返回游標參數

FETCH MY_CUR INTO OUT_CS;

四、注意事項

動態調用存儲過程,返回游標類型時系統會出現錯誤,系統執行完函數或存儲過程時會停止,不返回上級程序。

下載調用外部方法及工作流word格式文檔
下載調用外部方法及工作流.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    淺談JBPM工作流

    淺談JBPM工作流 摘要:本文介紹了工作流的定義,并著重對JBPM工作流的核心組件、體系結構、流程調度等進行了詳盡的介紹,以期完成對基于JBPM工作流技術的軟件系統研發工作的理論......

    工作流技術研究

    工作流技術研究(1) (2008-09-10 19:29:14) 標簽:工作流管理系統 工作流參考模型 雜談 分類:工作流 工作流技術從起源到現在已有三十年的發展歷史,為了規范工作流技術的管理,19......

    java 工作流

    Willow 由Huihoo Power開發詳細可到其中文主頁查看。 更多Willow信息OpenWFE OpenWFE是一個開放源碼的Java工作流引擎。它是一個完整的業務處理管理套件:一個引擎,一個工作列......

    個人對Java構造方法調用的總結(精選)

    個人對Java構造方法調用的總結 1.構造方法必須與定義它的類有完全相同的名字。構造方法沒有返回類型,也沒有void。 2.類可以不聲明構造方法,這時類中隱含聲明了一個方法體為......

    VC++調用matlab引擎方法設置(個人總結)

    VC++調用matlab引擎找不到dll問題 最近嘗試在Win7系統下,用VC++6.0調用MatlabR2010a引擎,正常配置后發現程序能夠正常編譯,但運行時報錯如下,說找不到libmx.dll,網上查發現有不少......

    保安調用制度

    10物業保安管理制度大全(保密) 大件物品必須有出門證可放行;(六)門衛室是小區的窗口,是保安的主要崗位,保安;第七條交接班制度;(一)隊長提前15分鐘集合全隊人員,清點人數,整;(二)隊長帶隊......

    C++程序啟動外部程序的方法總結

    使用WinExec命令⑴ 函數原型:UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow); ⑵ 參數:lpCmdLine:指向一個空結束的字符串,串中包含將要執行的應用程序的命令行(文件名......

    JBPM工作流文檔(精選5篇)

    JBPM工作流簡介 1 工作流概念簡介 “工作流”干預過程、業務程序的自動化處理,文檔、信息或者任務按照定義好的規則在參與者間傳遞,來完成整個業務目標或者對整個業務目標的完......

主站蜘蛛池模板: 韩国午夜理伦三级在线观看| 精品久久久无码人妻中文字幕豆芽| 日韩伦人妻无码| 欧美三级在线| 久久久精品一区aaa片| 熟女少妇精品一区二区| 女人被狂c躁到高潮视频| 一本av高清一区二区三区| 综合偷自拍亚洲乱中文字幕| 欧美综合天天夜夜久久| 亚洲视频日韩视欧美视频| 中文字幕av一区中文字幕天堂| 老子午夜精品无码| 亚洲成a×人片在线观看| 亚洲精品av无码喷奶水糖心| 色窝窝免费一区二区三区| 久久国产av影片| 一区二区三区无码按摩精油| 国产精品青青草原免费无码| 无码日韩精品一区二区三区免费| 色婷婷五月综合激情中文字幕| 精品aⅴ一区二区三区| 久久精品国产首页027007| 97影院理论片手机在线观看| 亚洲国产精品日韩av专区| 久久人人妻人人爽人人爽| 欧美俄罗斯乱妇| 日韩一区二区三区射精| 香蕉免费一区二区三区| 日韩人妻精品无码一区二区三区| 国产精品国产三级国产试看| 末发育娇小性色xxxxx视频| 欧妇女乱妇女乱视频| 中文字幕在线精品乱码| 久久亚洲精品久久国产一区二区| 日日碰狠狠躁久久躁综合小说| 2021亚洲国产精品无码| 欧美乱妇高清无乱码在线观看| 久久人人爽人人人人片av| 国产极品美女高潮无套在线观看| 亚洲欧洲日产国码无码久久99|