??xml version="1.0" encoding="utf-8" standalone="yes"?>夜夜精品视频一区二区,国产一区二区三区观看,能在线看的avhttp://www.aygfsteel.com/pirate/category/2364.htmlzh-cnWed, 07 Mar 2007 18:17:41 GMTWed, 07 Mar 2007 18:17:41 GMT60W一个AXIS WEB服务E序- http://www.aygfsteel.com/pirate/archive/2005/07/28/8663.htmlThu, 28 Jul 2005 10:28:00 GMThttp://www.aygfsteel.com/pirate/archive/2005/07/28/8663.htmlhttp://www.aygfsteel.com/pirate/comments/8663.htmlhttp://www.aygfsteel.com/pirate/archive/2005/07/28/8663.html#Feedback1http://www.aygfsteel.com/pirate/comments/commentRss/8663.htmlhttp://www.aygfsteel.com/pirate/services/trackbacks/8663.html在我们的目成功应用了Hessian作ؓq程函数调用的技术方案之后,我又产生了新的疑问,它是除EJB和RMI-OP之外的唯一RPC选择吗?据说AXIS才是Web Service的正选,不管是否应用它,都应该去试试和了解它。那今天׃W一译֐Q先做一个HelloWorldE序吧!

1Q在http://ws.apache.org/axis/index.html下蝲AXIS的BIN版本Qƈ其解压后将其中的webapps\axis目录拯C的tomcat目录下的webapps目录之下?/P>

2Q将以下jar拯至你的axis/WEB-INF/lib目录下:

activation.jar 、mail.jar 、xalan-2.4.0.jar 、xerces-2.4.0.jar ?xercesImpl.jar

3Q在axis目录下徏立以下文件Hello.jwsQ内容如下:

public class Hello{
 public String hello(String name){
  if(name==null)
   name = "";
  return "hello,"+name+"!";
}
}

4Q创建JAVA接口E序Q在命o行下q入到axis\WEB-INF目录下,在DOS提示W下输入Q?/P>

Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl

该命令执行的l果是在当前所在目录下产生一个子目录 localhost/axis/Hello_jwsQ该目录下有四个JAVA源文Ӟ它们分别是:

Hello.java 定义了Web服务接口Q此例中只有一个helloҎ?

HelloService.java 定义了用于获取Web服务接口的方法?

HelloServiceLocator.java 接口HelloService的具体实现?

HelloSoapBindingStub.java Web服务客户端桩Q通过该类与服务器交互?/P>

5Q编写调用示例程序Main.java如下Q?/P>

package localhost.axis.Hello_jws;

public class Main {
 public static void main(String[] args) throws Exception {
  HelloService service = new HelloServiceLocator();
  Hello hello = service.getHello();
  System.out.println(hello.hello("sunbeam"));
 }
}

6Q编译后q行Q如果输Z下结果,恭喜你已l成功的完成了你的第一个AXIS WEB SeriveE序啦?/P>

> hello,sunbeam

附注Q?/P>

1Q徏议用Eclipseq行开发,axis目录设ؓtomcat project工程位置Q将WEB-INF下的localhost目录设ؓ源文件目录。ƈ生成接口程序的命o行程序定为Extend Tool外部E序。这L生效率最高也最方便。具体做法今天就懒得写了Q以后再补好啦?/P>

2Q我Z写个E序试一下它所能承载的数据量和q行速度Q感觉速度明显低于HessianQ估计接q一个数量Q,传输的对象大也大约是Hessian?/5-1/10左右Q究其原因我推论是Hessian是二q制方式传输数据QAxis的WEB服务是文本型的SOAP协议传输Q而且再加上XML标签所占用的大量数据而已。下ơ再评估一下其它的RPCҎ?/P>

2005-07-28 18:28 发表评论
]]>
W一个Hessian应用-http://www.aygfsteel.com/pirate/archive/2005/07/28/8662.htmlThu, 28 Jul 2005 10:20:00 GMThttp://www.aygfsteel.com/pirate/archive/2005/07/28/8662.htmlhttp://www.aygfsteel.com/pirate/comments/8662.htmlhttp://www.aygfsteel.com/pirate/archive/2005/07/28/8662.html#Feedback0http://www.aygfsteel.com/pirate/comments/commentRss/8662.htmlhttp://www.aygfsteel.com/pirate/services/trackbacks/8662.htmlHessian是一个简单的二进制的Web服务ҎQ其实我觉得它更多的是一U二q制对象传递方式)Q它只需要一个客L接口和服务端E序可以轻村֮现程序的q程调用啦?BR>下面׃Hessian主页上的例子来show一下这U简单的RPC应用Ҏ?/P>


1、在tomcat下创Z个应用testQ在其下的WEB-INF/src目录下编写以下程序文件?/FONT>

2、创建服务端E序文gexample/BasicService.javaQ内容如下:
package example;

public class BasicService implements Basic {
  private String _greeting = "Hello, world";

  public void setGreeting(String greeting)
  {
    _greeting = greeting;
  }

  public String hello()
  {
    return _greeting;
  }
}

3、创Z个本地接口,example/Basic.javaQ内容如下:
package example;

public interface Basic {
   public String hello(); //与服务端的helloҎ对应
}


4、创建客L试E序Qexample/BasicClient.javaQ内容如下:

package example;

import com.caucho.hessian.client.HessianProxyFactory;

public class BasicClient {
  public static void main(String []args)
    throws Exception
  {
    String url = "

    HessianProxyFactory factory = new HessianProxyFactory();
    Basic basic = (Basic) factory.create(Basic.class, url);

    System.out.println("Hello: " + basic.hello());
  }
}

5、修改WEB-INF下的web.xml文gQ填充以下内容:

  <?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "
 <web-app>
  <servlet>
   <servlet-name>hello</servlet-name>
   <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
    <init-param>
      <param-name>home-class</param-name>
      <param-value>example.BasicService</param-value>
    </init-param>
    <init-param>
      <param-name>home-api</param-name>
      <param-value>example.Basic</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <url-pattern>/hello</url-pattern>
    <servlet-name>hello</servlet-name>
  </servlet-mapping>
</web-app>

6、启动tomcat后,q行一下BasicClientc?/FONT>

看一看,是不是输Z下的内容啦,如果有恭喜你Q已l成功创Z的第一个RPC Hessian应用了?BR>> Hello: Hello, world



2005-07-28 18:20 发表评论
]]>
soap单?/title><link>http://www.aygfsteel.com/pirate/archive/2005/07/28/8660.html</link><dc:creator></dc:creator><author></author><pubDate>Thu, 28 Jul 2005 10:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/pirate/archive/2005/07/28/8660.html</guid><wfw:comment>http://www.aygfsteel.com/pirate/comments/8660.html</wfw:comment><comments>http://www.aygfsteel.com/pirate/archive/2005/07/28/8660.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pirate/comments/commentRss/8660.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pirate/services/trackbacks/8660.html</trackback:ping><description><![CDATA[开始之前,我想本文即讨论的主题和读者需要具备的L知识做一些必需的描叙。本文的主题是讨论SOAP技术,我们尽可能的讲得通俗易懂一些,所以,我们引入了一个普通的“Hello World”范例来l读者说明它们是怎么q作的,让读者知道它们的q作方式。我认ؓQ如果光看官Ҏ档是很难开始学习这门新技术的Q官Ҏ档中包含大量的范例,q解释了所有的Ҏ和优点Q但是没解释它们的运作方式。在q篇文章中,我不打算只肤的解释SOAP技术的定义Q我们假设读者熟悉JAVA语言QWeb技术,hXML语言QXML NamespacesQXML Schema的基。在q种情况下,理解本文不存在M困难。然而,即没有q些知识Q你也不必担心,我们尽可能的解释得单,但是当你开始做自己的SOAP应用E序时会遇到一些问题和ȝ。因此,p一定时间来学习上面的知识是很有必要的?<BR><BR>  从技术的角度来说Q有必要提一下我们的调试环境。我们用的是Windows XP操作pȝQ安装有JAVA 2 SDK 1.4.1QApache SOAP 2.3.1QJAF 1.0.2QJAVAMAIL 1.3.1和Xerces 2.6.0。上面所提及的都能在Tcomcat 4.1.29 JSP/Servlet容器中正常运行。所有的软g都是免费自由软gQ因此你能够很容易的下蝲它们q自己在M你喜Ƣ的q_如Windows或UNIX上安装它们。Java SDKQJAF和JAVAMAIL位于SUN的官方网站(http://java.sun.comQ,其他的Y件在Jakarta目l的官方|站Qhttp://jakarta.apache.orgQ上有down的。可能你在看到我们需要这么多不同的包QpackageQ时已经有点担心和不安了Q但是实际上你不应该担心q些的。一旦你懂了基础Q那么对你将相当Ҏ。安装不是一件很隄事情Q你只需要在讄环境变量的时候仔l些Q比如CATALINA_HOME, CLASSPATH, JAVA_HOME {等Q所有这些步骤都是手工的。由于我仅仅是想你的注意力再次集中到它们n上,所以你能很快的完成以上配|过E。我只是d下面的一些字W串到Tomcat的bin/setclasspath.bat文g中: <BR><BR> <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> <TBODY> <TR> <TD>...<BR>set CATALINA_HOME=C:\Tomcat4.1.29<BR>set CLASSPATH=%JAVA_HOME%\lib\tools.jar<BR>set CLASSPATH=%JAVA_HOME%\soap-2.3.1\lib\soap.jar<BR>set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\javamail-1.3.1\mail.jar<BR>set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\jaf-1.0.2\activation.jar<BR>set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\xerces-2_6_0\xercesImpl.jar<BR>set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\xerces-2_6_0\xercesSamples.jar<BR>set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\xerces-2_6_0\xml-apis.jar<BR>set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\xerces-2_6_0\xmlParserAPIs.jar<BR>set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\servlet.jar<BR>set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\tools.jar<BR>... </TD></TR></TBODY></TABLE><BR>  如果你的安装路径Qinstallation pathsQ和上面使用的不同,你需要更正它们,然后关闭和重启Tomcat以它们生效。这P你就有ؓq行SOAP作好了准备。但是现在,我要忘记有关的技术部分,来学一点理论知识?BR><BR>  SOAP意思是单对象访问协议(Simple Object Access ProtocolQ。的如它的名字一PSOAP是很单的。它是一个基于XML的协议,允许E序lg和应用程序彼此用一U标准的Internet协议--HTTP来通讯。SOAP是一U独立的q_Q它不依赖程序语aQ它是简单的Q弹性的Q很Ҏ扩展的。目前,应用E序能够彼此使用一U基于DCOM和CORBA技术的q程q程调用QRPCQ来q行怺通讯Q但HTTP不被设计个目的。RPC在Internet上应用是非常困难的,它们会出现许多兼Ҏ和安全性的问题Q因为防火墙和代理服务器通常都会LQblockQ这些类型的量。应用程序之间最好的通讯方式是通过HTTP协议Q因为HTTP是支持所有Internet览器和服务器的。基于这个目的,SOAP协议被创建出来?BR><BR>  那么Q它们是如何q作的呢Q比如,一个应用程序(AQ需要和另一个应用程序(BQ在SOAP的帮助下q行彼此通讯。它们将使用下面的框架图来完成这个过E:<BR><BR> <TABLE width="90%" align=center border=0> <TBODY> <TR> <TD> <DIV align=center><IMG onerror="this.src='http://www.yesky.com/image20010518/201676.gif';" hspace=3 src="http://www.yesky.com/image20010518/201676.gif" align=center vspace=1 border=1></DIV></TD></TR></TBODY></TABLE><BR>  q个SOAP信封QSOAP envelopeQ是一个包含以下内容的XML文档Q?BR><BR> <TABLE width="90%" align=center border=0> <TBODY> <TR> <TD> <DIV align=center> <DIV align=center><IMG onerror="this.src='http://www.yesky.com/image20010518/201677.gif';" hspace=3 src="http://www.yesky.com/image20010518/201677.gif" align=center vspace=1 border=1></DIV></DIV></TD></TR></TBODY></TABLE><BR>  正如你看到的Q它是非常简单的。它看v来确实就象一个普通的信封或者你的email。你想看看它们是如何动作的吗Q下面跟我们一h吧。其实我们有很多Ҏ是不用SOAP来在创徏和运行我们自q“Hello World”应用程序的Q但是因为我们要保持它的单性,我会l你一个它q作方式的框架图QschemeQ?BR><BR>  我们的“Hello World”范例会包含一个SOAP Service。我们的SOAP Client发送它们的名字到该SOAP ServiceQƈ试图得到一些答复或响应。这个SOAP Service需要部|到一个SOAP Admin的工P以至重定位所有请求的SOAPQProxyQ?RPC Router能够知道它们应该使用哪种服务来运作。总而言之,q个是以下面的方式来q作的:<BR><BR> <TABLE width="90%" align=center border=0> <TBODY> <TR> <TD> <DIV align=center> <DIV align=center><IMG onerror="this.src='http://www.yesky.com/image20010518/201680.gif';" hspace=3 src="http://www.yesky.com/image20010518/201680.gif" align=center vspace=1 border=1></DIV></DIV></TD></TR></TBODY></TABLE><BR>  现在Q我们来一步步的看看到底发生了什么。在Step 1里,HelloWorldClient连接一个SOAP RPC RouterQ请求我们的SOAP Serviceq将包含我们名字的一个字W串传递给它。该SOAP RPC Router会检查是否它已经部v了这个SOAP Service。如果它被发现是被部|的Q那么它传递数据到q个SOAP Serviceq调用特定的ҎQ这个是Step 2。然后SOAP ServiceҎ会被执行Q将q回某个字符串|该值就是SOAP Client的答复或者响应)QStep 3Q。在Step4中,SOAP RPC Router仅仅只是重定向q个数据到SOAP Client。所有在Step1和Step4里传输的数据是通过SOAP Envelope来完成的。正如你所看到的,法是相当简单的Q因此我们只准备兛_实际的代码?<BR>首先Q我们要创徏一个SOAP Service。下面是它的代码Q请不要忘记它攑օHelloWorld/ 目录中(必须被包含在你的CLASSPATH中)Q?BR><BR> <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> <TBODY> <TR> <TD>1: // SOAPService.java<BR>2: package HelloWorld;<BR>3: public class SOAPService {<BR>4: public String sayHi(String x) {<BR>5: return("Hello my friend, " + x + "! Glad to see you!");<BR>6: }<BR>7: } </TD></TR></TBODY></TABLE><BR>  dM注释也是很容易的。要~译它,只需要用下列命oQ?BR><BR>  javac SOAPService.java<BR><BR>  W二步,一旦我们准备好了SOAP ServiceQ我们需要用SOAP Service Manager来部|它。这个可以通过很多方式来实玎ͼ但是Z能让初学SOAP的读者更Ҏ理解SOAPQ我提供了一个最Ҏ的方式。我们假设你的Web ServerQTomcat或其他)已经正常q行Qƈ且你已经正确安装了SOAP。那么当览器访问http://localhost:8080/soap/Q你会看见Apache SOAP的欢q页面。点击Run the admin client Q然?Deploy。你会得C个屏q显C,在那里你需要填入IDQScopeQMethodQProvider Type和JAVA Provider的信息到表单域中。你能忽略其他所有的表单域,除非你真的需要它们的信息。我们的“HelloWorld”例子不需要它们,所以,我们填的下面的|<BR><BR> <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> <TBODY> <TR> <TD>ID: urn:HelloWorld_SOAPService <BR>Scope: Application <BR>Methods: sayHi <BR>Provider Type: java <BR>Java Provider - Provider Class: HelloWorld.SOAPService <BR>Java Provider - Static? No </TD></TR></TBODY></TABLE><BR>  一些注释:ID是我们要从SOAP Client标识我们的SOAP Service的唯一名字。Method包含SOAP Service提供的一pdҎ。JAVA Provider-Provider Class是SOAP Service Javacȝ名字?BR><BR>  现在Q点击Deploy 按钮Q那么你的服务会被部|Ӏ再ơ强调,h意正设|CLASSPATH环境变量。然后,你的HelloWorld.SOAPServicec能够被扑ֈQƈ且所有必需的jar包也能被扑ֈ。这是个几乎每个人都会犯的普通错误。现在,你能够点?List Q将会看见你的服务已l被部vq来。恭喜!<BR><BR>  最后,让我们来创徏一个SOAP Client。代码看h有点复杂Q但是在现实中不会只有这么点ѝ?BR><BR> <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> <TBODY> <TR> <TD>1: // HelloWorldClient.java<BR>2: import java.io.*;<BR>3: import java.net.*;<BR>4: import java.util.*;<BR>5: import org.apache.soap.*;<BR>6: import org.apache.soap.rpc.*;<BR>7: public class HelloWorldClient {<BR>8: public static void main(String[] arg) throws Exception {<BR>9: Call c = null;<BR>10: URL url = null;<BR>11: Vector params = null;<BR>12: Response rep = null;<BR>13: String ourName = "Superman";<BR>14: String ourUrn = "urn:HelloWorld_SOAPService";<BR>15: String ourMethod = "sayHi";<BR>16: url = new URL("http://localhost:8080/soap/servlet/<BR>rpcrouter");<BR>17: System.out.println("Passing to our deployed "+ourUrn+"<BR>our name ("+ourName+"): ");<BR>18: c = new Call();<BR>19: c.setTargetObjectURI(ourUrn);<BR>20: c.setMethodName(ourMethod);<BR>21: c.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);<BR>22: params = new Vector();<BR>23: params.addElement(new Parameter("ourName", String.class,<BR>ourName, null));<BR>24: c.setParams(params);<BR>25: System.out.print("and its answer is: ");<BR>26: rep = c.invoke(url, "");<BR>27: if (rep.generatedFault()) {<BR>28: Fault fault = rep.getFault();<BR>29: System.out.println("\nCall failed!");<BR>30: System.out.println("Code = " + fault.getFaultCode());<BR>31: System.out.println("String = " + fault.getFaultString());<BR>32: } else {<BR>33: Parameter result = rep.getReturnValue();<BR>34: System.out.print(result.getValue());<BR>35: System.out.println();<BR>36: }<BR>37: }<BR>38:} </TD></TR></TBODY></TABLE><BR>  下面我要做一些解释。在W?3行,我们讄了我们的名字Q这个名字将会传递给SOAP Service。在W?4行,我们讄了我们将要调用的服务的IDQservice IDQ,和第15行里讄的服务方法(service methodQ。有了这个IDQ服务能够被部v到SOAP服务理器(SOAP Service ManagerQ中。我们没有设|Q何其他|仅仅只用刚才那些基础值就可以正常q作了。你能从SOAP的官Ҏ档上得到相关信息Q该文档来自SOAP包中Q它们的解释出了本文的范围?BR><BR>  用以下方式编译这个SOAP ClientQ?BR><BR>  javac HelloWorldClient.java<BR><BR>  Z圆满完成它,让我们检查一下针Ҏ们的试Q是否所有事情都准备qA。Tomcat正在q行Q所有的环境变量都正,SOAP Service被编译和部vQSOAP Client被成功编译。OKQ让我们q行它,你将看到q个屏幕Q?BR><BR> <TABLE width="90%" align=center border=0> <TBODY> <TR> <TD> <DIV align=center><IMG onerror="this.src='http://www.yesky.com/image20010518/201681.gif';" hspace=3 src="http://www.yesky.com/image20010518/201681.gif" align=center vspace=1 border=1></DIV></TD></TR></TBODY></TABLE><BR>  正如你所看到的,我们的SOAP Client使用SOAP协议成功发送它的名字和接收了一个答复。正如前面所说的QSOAP Service发送和接收的是SOAP envelope。这个是SOAP envelope的源代码?BR><BR>  被发送到SOAP Service的SOAP Envelope<BR><BR> <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> <TBODY> <TR> <TD>Q?xml version='1.0' encoding='UTF-8'?Q?BR>QSOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/<BR>soap/envelope/"<BR>xmlns:xsi="http://www.w3.org/2001/<BR>XMLSchema-instance"<BR>xmlns:xsd="http://www.w3.org/2001/XMLSchema"Q?BR>QSOAP-ENV:BodyQ?BR>Qns1:sayHi xmlns:ns1="urn:HelloWorld_SOAPService"<BR>SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/<BR>soap/encoding/"Q?BR>QourName xsi:type="xsd:string"QSupermanQ?ourNameQ?BR>Q?ns1:sayHiQ?BR>Q?SOAP-ENV:BodyQ?BR>Q?SOAP-ENV:EnvelopeQ? </TD></TR></TBODY></TABLE><BR>  从SOAP Service接收的SOAP Envelope<BR><BR> <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> <TBODY> <TR> <TD>Q?xml version='1.0' encoding='UTF-8'?Q?BR>QSOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/<BR>soap/envelope/"<BR>xmlns:xsi="http://www.w3.org/2001/<BR>XMLSchema-instance"<BR>xmlns:xsd="http://www.w3.org/2001/XMLSchema"Q?BR>QSOAP-ENV:BodyQ?BR>Qns1:sayHiResponse xmlns:ns1="urn:HelloWorld_SOAPService"<BR>SOAP-ENV:encodingStyle="http://schemas.xmlsoap.<BR>org/soap/encoding/"Q?BR>Qreturn xsi:type="xsd:string"QHello my friend, Superman!<BR>Glad to see you!Q?returnQ?BR>Q?ns1:sayHiResponseQ?BR>Q?SOAP-ENV:BodyQ?BR>Q?SOAP-ENV:EnvelopeQ?</TD></TR></TBODY></TABLE><BR>  要理解SOAP Envelope中的所有标{含义Q我你花一Ҏ间阅?http://www.w3.org/2001/06/soap-envelope 命名I间规范?BR><BR>  我希望本文能够在你理解SOAP技术上有一定帮助。这个技术是单的Q有的Q强大的Q弹性的。它被用在许多Web应用中,q些应用的数量也在不断增加。学习SOAP是值得的,臛_你要知道它是什么和它是怎么q作的? <div id="wmqeeuq" class=right> </DIV><img src ="http://www.aygfsteel.com/pirate/aggbug/8660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pirate/" target="_blank"></a> 2005-07-28 18:02 <a href="http://www.aygfsteel.com/pirate/archive/2005/07/28/8660.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ũ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӱʡ</a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɳƺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʲ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">°Ͷ</a>| <a href="http://" target="_blank">Ļ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ന</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">差</a>| <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>