<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    天空是藍(lán)色的

    做好軟件為中國(guó) #gcc -c helloworld.c -o helloworld.o //編譯目標(biāo)文件 #gcc helloworld.o -o helloworld //編譯成可執(zhí)行exe #helloworld //運(yùn)行exe
    數(shù)據(jù)加載中……
    契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans

    契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans
    1、開(kāi)發(fā)環(huán)境
    JDK1.4.2.*
    Tomcat6.0.*
    Spring-2.5.5
    Spring-ws-1.5.4
    XmlBeans-2.3


    2、確定需要請(qǐng)求和應(yīng)答的xml實(shí)例
    Request.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <wl_request  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://footmarktech.com/samples">
    <flights>
     <flight><segment>PEK-CAN<segment><ticketNo>7841234656</ticketNo></flight>
     <flight><segment>PEK-CAN<segment><ticketNo>7841234656</ticketNo></flight>
    </flights>
    </wl_request>

    Response.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <wl_response  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://footmarktech.com/samples">
    <flights>
     <flight><segment>PEK-CAN<segment><ticketNo>7841234656</ticketNo></flight>
     <flight><segment>PEK-CAN<segment><ticketNo>7841234656</ticketNo></flight>
    </flights>
    </wl_response>

    3、設(shè)置XmlBeans環(huán)境
    設(shè)置XMLBEANS_HOME
    并將 %XMLBEANS_HOME%/bin增加到path路徑中

    4、使用xmlbeans tool準(zhǔn)備數(shù)據(jù)契約xsd
    根據(jù)上一步驟請(qǐng)求和應(yīng)答的實(shí)例xml執(zhí)行如下命令
    inst2xsd -enumerations never Request.xml Response.xml
    將生成的schema0.xsd文件命名為 Airline.xsd

    將 Airline.xsd放在 ${web-context}/WEB-INF目錄下
    5、使用xmlbeans tool生成OXM數(shù)據(jù)映射對(duì)象
    需要說(shuō)明的是這些對(duì)象是跟Xmlbeans耦合比較緊的,不是POJO
    執(zhí)行如下命令
    scomp -out Airline.jar Airline.xsd

    6、準(zhǔn)備運(yùn)行時(shí)和編譯時(shí)jar包


     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/acegi-security-1.0.7.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/activation-1.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/antlr-2.7.7.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/aopalliance-1.0.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/axiom-api-1.2.6.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/axiom-dom-1.2.6.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/axiom-impl-1.2.6.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/backport-util-concurrent-3.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/bsf-2.3.0.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/cglib-nodep-2.1_3.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-beanutils-1.7.0.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-codec-1.3.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-collections-3.2.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-configuration-1.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-digester-1.8.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-discovery-0.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-el-1.0.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-fileupload-1.2.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-httpclient-3.0.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-io-1.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-lang-2.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-logging-1.1.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-net-1.2.2.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-pool-1.3.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/commons-validator-1.3.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/concurrent-1.3.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/dom4j-1.6.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/ehcache-1.2.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/ezmorph-1.0.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/groovy-all-1.5.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/hibernate-3.2.6.ga.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/hsqldb-1.8.0.7.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/icu4j-3.4.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/jasypt-1.4.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/javassist-3.6.ga.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/jaxen-1.1.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/jaxrpc-1.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/jcaptcha-all-1.0-RC6.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/jcr-1.0.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/jdom-1.0.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/json-lib-2.2.1-jdk13.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/jta-spec1_0_1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/log4j-1.2.15.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/lucene-core-2.2.0.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/mail-1.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/mysql-connector-java-5.1.5-bin.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/ognl-2.7.2.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/oro-2.0.8.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/oscache-2.4.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/pdfbox-0.6.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/poi-3.0.1-FINAL-20070705.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/poi-contrib-3.0.1-FINAL-20070705.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/poi-scratchpad-3.0.1-FINAL-20070705.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/proxool-0.9.0RC3.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/serializer-2.7.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/slf4j-api-1.4.3.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/slf4j-log4j12-1.4.3.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/spring-2.5.5.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/stax-api-1.0.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/wsdl4j-1.6.2.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/wstx-asl-3.2.3.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xalan-2.7.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xercesImpl-2.8.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xfire-all-1.2.6.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xml-apis-1.3.04.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xom-1.1.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xpp3_min-1.1.3.4.0.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xstream-1.2.2.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/axis-saaj-1.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/axis-1.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/spring-oxm-1.5.4.jar" sourcepath="D:/maven-1.0.2/.maven/repository/springframework/srcs/spring-ws-1.5.4-with-dependencies.zip"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/spring-webmvc-2.5.5.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/spring-ws-core-1.5.4.jar" sourcepath="D:/maven-1.0.2/.maven/repository/springframework/srcs/spring-ws-1.5.4-with-dependencies.zip"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/spring-ws-security-1.5.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/spring-ws-support-1.5.4.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/spring-xml-1.5.4.jar" sourcepath="D:/maven-1.0.2/.maven/repository/springframework/srcs/spring-ws-1.5.4-with-dependencies.zip"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/jsr173_1.0_api.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/resolver.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xbean_xpath.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xbean.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xmlbeans-qname.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/xmlpublic.jar"/>
     <classpathentry kind="lib" path="web/src/context/WEB-INF/lib/Airline.jar"/>
     <classpathentry kind="output" path="web/src/context/WEB-INF/classes"/>


    Spring-ws1.5.4必須使用springframework2.5版本以上
    其對(duì)org.springframework.core.io.Resource版本要求較高
    必須加入spring-webmvc-2.5.5.jar
    org.springframework.web.servlet.FrameworkServlet從2.5版本后被分到spring-webmvc.jar包,并不包含于主spring包內(nèi)

    注,可能有些jar包沒(méi)有用到
    7、書(shū)寫(xiě)web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
      <display-name>Web</display-name>
     
     
     
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
     
     
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>

      <servlet>
            <servlet-name>ws-spring-ws</servlet-name>
            <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
       </servlet>
      
      <servlet-mapping>
            <servlet-name>ws-spring-ws</servlet-name>
            <url-pattern>/spring-ws/*</url-pattern>
        </servlet-mapping>  
     

    </web-app>

    8、書(shū)寫(xiě)業(yè)務(wù)實(shí)現(xiàn)

    package demo1;

    public class Order {
     private String id;

     public String getId() {
      return id;
     }

     public void setId(String id) {
      this.id = id;
     }
    }

    package demo1;

    public interface OrderService {
     Order getOrder(String id);
    }

     

    package demo1;

    public class OrderServiceImpl implements OrderService{
     public Order getOrder(String id) {
      Order order = new Order();
      order.setId(id);
      return order;
     }
     
     
    }

    書(shū)寫(xiě)spring配置放在classpath下
    applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE beans PUBLIC
        "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans default-autowire="no" default-lazy-init="false" default-dependency-check="none">
      <bean id="orderService" class="demo1.OrderServiceImpl"/>
    </beans>

    9、書(shū)寫(xiě)Spring-ws EndPoint

    package demo1;

    import org.springframework.oxm.Marshaller;
    import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;

    import com.footmarktech.samples.WlRequestDocument;
    import com.footmarktech.samples.WlResponseDocument;

    public class SampleMarshallingEndpoint extends
      AbstractMarshallingPayloadEndpoint {

     private final OrderService orderService;

     public SampleMarshallingEndpoint(OrderService orderService,
       Marshaller marshaller) {
      super(marshaller);
      this.orderService = orderService;
     }

     protected Object invokeInternal(Object request) throws Exception {
      com.footmarktech.samples.WlRequestDocument ab = null;
      ab = (WlRequestDocument)request;
      
      //TODO invoke orderService
      
      WlResponseDocument rs = (WlResponseDocument) WlResponseDocument.Factory.newInstance();
      rs.addNewWlResponse().addNewFlights().addNewFlight().setTicketNo(ab.getWlRequest().getFlights().getFlightArray(0).getTicketNo());
      return rs;
     }
    }


    10、書(shū)寫(xiě)ws-spring-ws-servlet.xml
    放置于${web-context}/WEB-INF目錄下


    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


    <bean id="messageFactory" class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory">
     <property name="payloadCaching" value="true"/>
    </bean>

    <bean id="xmlBeansMarshaller" class="org.springframework.oxm.xmlbeans.XmlBeansMarshaller" />

    <bean id="orderEndPoint" class="demo1.SampleMarshallingEndpoint">
            <constructor-arg><ref bean="orderService"/></constructor-arg>
            <constructor-arg><ref bean="xmlBeansMarshaller"/></constructor-arg>
    </bean>

    <bean id="payloadMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
            <property name="defaultEndpoint" ref="orderEndPoint"/>
    </bean>

     
       
    <bean id="echo" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
       <property name="schema">
         <bean class="org.springframework.xml.xsd.SimpleXsdSchema">
           <property name="xsd" value="/WEB-INF/Airline.xsd"/>
         </bean>
       </property>
       <property name="portTypeName" value="Echo"/>
       <property name="locationUri" value="http://localhost:8080/ss1/spring-ws/echo/services"/>
     </bean>

    </beans>

    11、開(kāi)發(fā)客戶(hù)端

    配置applicationContext1.xml放置于 classpath demo1.client包內(nèi)


    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


    <bean id="xmlBeansMarshaller" class="org.springframework.oxm.xmlbeans.XmlBeansMarshaller" />

    <bean id="messageFactory" class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory">
     <property name="payloadCaching" value="true"/>
    </bean>   
       
    <bean id="webServiceTemplate1" class="org.springframework.ws.client.core.WebServiceTemplate">
    <constructor-arg ref="messageFactory" />
    <property name="marshaller" ref="xmlBeansMarshaller" />
    <property name="unmarshaller" ref="xmlBeansMarshaller" />
    <property name="messageSender">
     <bean class="org.springframework.ws.transport.http.CommonsHttpMessageSender">
      <property name="readTimeout" value="0" />
     </bean>
    </property>
    <property name="defaultUri" value="http://localhost:8080/ss1/spring-ws/echo/services" />
    </bean>
       
       

    </beans>

     

     

    package demo1.client;

    import java.io.File;
    import java.io.IOException;

    import javax.xml.transform.Source;

    import org.apache.xmlbeans.XmlException;
    import org.apache.xmlbeans.XmlObject;
    import org.jdom.JDOMException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.core.io.Resource;
    import org.springframework.ws.client.core.WebServiceTemplate;
    import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
    import org.springframework.xml.transform.ResourceSource;
    import org.springframework.xml.transform.StringResult;

    import com.footmarktech.smscenter.webservice.SendSMDocument;
    import com.footmarktech.smscenter.webservice.SendSMResponseDocument;
    import com.footmarktech.samples.WlRequestDocument;
    import com.footmarktech.samples.WlResponseDocument;

    public class EchoClient {
     public static void RequestSpring() {
      ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext1.xml", EchoClient.class);
      WebServiceTemplate webServiceTemplate = (WebServiceTemplate) applicationContext
        .getBean("webServiceTemplate1");
      WlRequestDocument request = WlRequestDocument.Factory.newInstance();
      request.addNewWlRequest().addNewFlights().addNewFlight().setTicketNo(new Long(1231235555).longValue());
      
      WlResponseDocument response = (WlResponseDocument)webServiceTemplate.marshalSendAndReceive(request);
      System.out.println(response.getWlResponse().getFlights().getFlightArray(0).getTicketNo());
     }

     public static void main(String[] args) throws IOException, JDOMException {
      RequestSpring();

     }

    }

    12、參考資料
    http://xmlbeans.apache.org/
    http://static.springframework.org/spring-ws/sites/1.5/reference/html/index.html
    http://mdasgin.blogspot.com/2008/06/web-servisleri-bir-makinede-sunulan.html
    http://www.infoq.com/cn/articles/arjen-poutsma-spring-ws
    http://www.infoq.com/cn/articles/sosnoski-code-first

    下載pdf版文檔

    posted on 2008-09-19 21:44 bluesky 閱讀(7757) 評(píng)論(7)  編輯  收藏 所屬分類(lèi): 工作總結(jié)

    評(píng)論

    # re: 契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans[未登錄](méi) 2008-12-10 05:00 is

    先頂再看!

    # re: 契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans[未登錄](méi) 2010-08-21 23:30 kangkang

    內(nèi)容正是我想要的,真是十分感謝呀。比csdn好多了。

    # re: 契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans 2012-03-26 22:06 kineski horoskop

    I would like to thank you for the efforts you have made in writing this post.

    # re: 契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans 2012-04-03 04:42 payday loans

    契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans[未登錄](méi)

    # re: 契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans 2014-04-04 14:32 愛(ài)狗狩獵博客

    內(nèi)容正是我想要的,真是十分感謝呀。比csdn好多了。

    # re: 契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans 2015-05-20 15:44 http://www.asgalacticos.be

    # re: 契約式開(kāi)發(fā)webservice實(shí)踐之spring-ws+Xmlbeans 2016-06-14 14:58 http://www.jl-tec.fr

    I really impressed by your post.
    主站蜘蛛池模板: 久久久久亚洲av毛片大| 亚洲国产老鸭窝一区二区三区| 国产精一品亚洲二区在线播放| 久久亚洲精品无码AV红樱桃| 亚洲色欲色欱wwW在线| www免费黄色网| 91网站免费观看| 亚洲国产精品无码久久青草| 337p日本欧洲亚洲大胆精品555588| 亚洲精品无码av片| 久久免费精品一区二区| 色www永久免费视频| 亚洲AV无码精品无码麻豆| 亚洲日本成本人观看| 国产午夜无码精品免费看动漫| 成年女人午夜毛片免费看| 亚洲一区二区三区无码中文字幕| 久久亚洲精品专区蓝色区| 在线观看黄片免费入口不卡| 日本特黄特色aa大片免费| 亚洲乱亚洲乱淫久久| 免费国产污网站在线观看不要卡| 91久久成人免费| 国产成人精品亚洲精品| 亚洲永久网址在线观看| 久久久久久久久久国产精品免费| 免费中文字幕一级毛片| 国产精品亚洲自在线播放页码| 在线观看免费无码视频| 国产亚洲福利一区二区免费看| 亚洲欧洲精品国产区| 中文字幕不卡免费视频| 凹凸精品视频分类国产品免费| 亚洲成人网在线观看| 99视频在线观看免费| 亚洲AⅤ无码一区二区三区在线| 亚洲成a人片在线观看精品| 一级毛片免费观看不卡视频| 久久亚洲高清综合| 看Aⅴ免费毛片手机播放| 无码人妻一区二区三区免费手机|