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

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

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

    隨筆-67  評論-522  文章-0  trackbacks-0
        大象剛剛接觸jBPM,經(jīng)過這幾天的折騰,終于把jbpm-console這個項(xiàng)目在Tomcat6上布署成功了,現(xiàn)在把這幾天來的學(xué)習(xí)經(jīng)驗(yàn)?zāi)贸鰜砗痛蠹曳窒硪幌隆#ńY(jié)尾處有相關(guān)JAR包和MySQL及SQL Server 2000腳本下載)
        系統(tǒng)環(huán)境:windowsXP-SP2  JDK1.5.0_09  jbpm-jpdl-3.2.2  MySQL5.0.27  Tomcat6.0.10  MSSQL 2000
        1、安裝JDK1.5.0_09

           不必一定要按我的版本來安裝,不過至少JDK應(yīng)該在1.5以上,JDK安裝好以后,設(shè)置PATHCLASSPATH環(huán)境變量。
        2、安裝Tomcat6.0.10
           這個沒什么好說的,請用6.0的版本,因?yàn)榇笙鬀]在5.0或5.5上測試過,而且這幾個版本之間有很大的不同,為了能盡快上手,還是按照我寫的來吧。^_^ 
        3、安裝MySQL5.0.27
           MySQL安裝中采用默認(rèn)安裝即可,字符集不用設(shè)置為GB2312GBK,這樣做比較通用(大象用的MySQL沒有設(shè)置)。
        4、安裝Ant-1.7.0
           apache網(wǎng)站上下載Ant,然后解壓,設(shè)置PATH環(huán)境變量,在CMD中鍵入ant -version 如果看到

           Apache Ant version 1.7.0 compiled on December 13 2006  那說明你的PATH環(huán)境已經(jīng)設(shè)置好了。)
        5、安裝jbpm-jpdl-3.2.2
           下載jbpm-jpdl-suite-3.2.2,然后解壓就行,直接放在根目錄下,比如:D:\jbpm-jpdl-3.2.2,這個版本是包含所有的一整套工具,目錄下主要包含以下幾個子目錄:
           config —— jBPMHibernatelog4j的配置文件
           db ——
    各種數(shù)據(jù)庫的SQL語句
           deploy ——
    已經(jīng)打包好的war
           designer —— jBPM
    Eclipse插件,具體在eclipse子目錄中
           doc —— API
    文檔及用戶使用向?qū)?span lang="EN-US">
           examples —— jBPM
    自帶的例子程序
           lib ——
    依賴的第三方依賴類庫
           server ——
    一個已經(jīng)配置好了的基于JBossjBPM示例
           src —— jBPM的源代碼
           jbpm-jpdl-suite-3.2.2的下載地址:http://sourceforge.net/project/showfiles.php?group_id=70542
                    注意看下面一個鏈接:View older releases from the f) jBPM jPDL 3 package » 這是jbpm以前的版本
            6、安裝Eclipse3.2.1MyEclipse5.1.0GA
                   我使用的是一種整合版本,就是解壓后可以直接使用,eclipsemyeclipse已經(jīng)整合好了(嘿嘿,感覺非常方便,我自己還做了一個Eclipse3.3MyEclipse6.0的整合版,詳情請看:詳解Eclipse+MyEclipse完全綠色版制作方法),版本比我的高應(yīng)該沒關(guān)系,雖然沒試過,但網(wǎng)上有很多人都在高版本上做過,應(yīng)該沒問題。這里就不說安裝方法了,網(wǎng)上有很多相關(guān)資料。
       7、安裝jbpm開發(fā)插件
          雖然布署jbpm-console這個項(xiàng)目不需要用到開發(fā)插件,但為了以后的開發(fā),在這里我還是說一下,大象用的版本是3.0.13,為什么使用這個版本呢?因?yàn)槲以囘^最新的3.1.3.sp2版,里面可視化編輯流程里左下角沒有swimlanes標(biāo)簽,而3.0.13的版本中卻有。
          3.0.13的下載地址:http://sourceforge.net/project/showfiles.php?group_id=70542&package_id=116692 這個頁面可以找到所有的插件版本,當(dāng)然包括最新版。
          下面來說下我的安裝方法:

           看到這紅線框的兩個文件夾了吧,大象前面說了,我用的是一種整合版本,解壓后就可以直接用了,所以這兩個文件夾早就已經(jīng)存在了,所以如果你們要用的話就像這樣建兩個文件夾吧,ThirdPlugins是放第三方插件的,Links是放ini配置文件的,下面都會有詳細(xì)介紹。
           將下載的jbpm-gpd-3.0.13解壓,復(fù)制整個eclipse文件夾,進(jìn)入ThirdPlugins下,新建一文件夾,命名jbpm-gpd-3.0.13,再在此目錄下粘貼eclipse文件夾
     
           另外還需要將plugins目錄下的jar包作一下修改,只保留如下兩個jar包,因?yàn)槠渌鼛讉€jar包在MyEclipse中也有,啟動eclipse之后會發(fā)生沖突,而且千萬不要想當(dāng)然的,在myeclipse中把同名的jar包用高版本替換,不然你會發(fā)現(xiàn)啟動之后全是錯誤,嘿嘿,大象試過,有著血一樣的教訓(xùn),請大家千萬不要重蹈覆轍。
     
           此文件內(nèi)容為:path=ThirdPlugins/jbpm-gpd-3.0.13
           OK,到此,插件安裝已經(jīng)全部完成,另外還需要在eclipse中對jBPM作一下設(shè)置,同樣為了以后開發(fā)作準(zhǔn)備。
           啟動eclipse,點(diǎn)擊Windows->Preference,中文版為"窗口"->"選項(xiàng)",可以看到:
     
           點(diǎn)擊Add,選擇Search...找到你解壓的jbpm-jpdl-3.2.2文件夾,然后填寫Name,點(diǎn)擊OK。回到主界面,此時(shí)還要勾選Name下的復(fù)選框,點(diǎn)擊Apply

     
           Server Deployment里面的東西是用來布署流程用的,前提是你得先發(fā)布好jbpm-console控制臺這個程序,保證這個程序跑起來沒有問題,否則是不會成功的。8080端口號和你服務(wù)器保持一致,如TomcatJBoss,另外布署一個新流程時(shí),一定要先啟動服務(wù)器。jbpm-console這個名字是默認(rèn)發(fā)布到服務(wù)器上的名字,比如Tomcat中,webapps下使用的名字和這個要一樣,那個變了,這個也要跟著變,還是保持默認(rèn)就行。upload不要作修改,這些其實(shí)與布署jbpm-console應(yīng)用沒有多大關(guān)系,大家看看就行。

        8、布署jbpm-console
           jbpm-jpdl-3.2.2\deploy目錄下可以看到jbpm-console.war、build.xml(當(dāng)然還有其它文件,現(xiàn)在我們只關(guān)心這兩個),在CMD中,進(jìn)入jbpm-jpdl-3.2.2\deploy目錄下,使用命令:ant customize.console.for.tomcat 然后我們在deploy下可以看到多出來customizedtarget兩個文件夾,進(jìn)入customized,可以看到jbpm-console.war這個文件,用winrar將其解壓到當(dāng)前目錄下,這時(shí)我們就得到了jbpm-console的發(fā)布應(yīng)用了,不過別高興,還有很多工作沒做呢。這里我來說下,為什么使用ant customize.console.for.tomcat 這個命令,打開build.xml文件,你可以看到這樣一段代碼:
    <target name="customize.console.for.tomcat" description="Creates a customized jbpm-console.war for tomcat in the customized directory">
        
    <mkdir dir="target/war" />
        
    <mkdir dir="customized" />
        
    <unzip src="jbpm-console.war" dest="target/war" />
        
    <copy todir="target/war/WEB-INF/lib">
          
    <fileset dir="../lib">
            
    <include name="activation.jar" />
            
    <include name="antlr*.jar" />
            
    <include name="asm.jar" />
            
    <include name="bsh.jar" />
            
    <include name="cglib.jar" />
            
    <include name="commons-logging.jar" />
            
    <include name="dom4j.jar" />
            
    <include name="hibernate3.jar" />
            
    <include name="jboss-backport-concurrent.jar" />
            
    <include name="jbossretro-rt.jar" />
          
    </fileset>
        
    </copy>
        
    <delete>
          
    <fileset dir="target/war/WEB-INF/lib">
            
    <include name="el-api.jar" />
            
    <include name="el-ri.jar" />
          
    </fileset>
        
    </delete>
        
    <zip destfile="customized/jbpm-console.war">
          
    <fileset dir="target/war" />
        
    </zip>
    </target>
           大家看到了吧,customize.console.for.tomcattagetname,所以這里使用這個命令就不覺得奇怪了,大象開始也覺得很迷惑,為什么網(wǎng)上都這樣寫,卻不寫為什么,看來是問題太簡單了,那些大大們想來這根本就不是問題。呵呵呵~~~
        a、加入必要的jar包
              jbpm-console\WEB-INF\lib下要加入以下幾個jar包:jboss-j2ee.jar、commons-collections.jarjsf-api.jar、jsf-impl.jar,刪除jsf-api-14.jarjsf-impl-14.jar這兩個jar包。
        b、建jBPM數(shù)據(jù)庫
           jbpm-jpdl-3.2.2\db下找到jbpm.jpdl.mysql.sql,打開它刪除前面的alter table JBPM_XX部分,保留后面的,然后再在每句SQL語句后面加上分號,檢查一下有沒有遺漏。然后在MySQL中新建一個jbpm數(shù)據(jù)庫,將sql腳本導(dǎo)入進(jìn)來,大象使用的是SQLyog可視化操作工具,其它相關(guān)的可視化工具非常多,可以任選一種使用,如果你不用這些工具來簡化開發(fā),那就配置mysqlPATH環(huán)境變量,在命令行中操作吧。^_^
           SQLyog中操作如下:
           1、點(diǎn)擊菜單"DB"->"Create Database",輸入jbpm
           2、點(diǎn)擊菜單"Tools"->"Import From SQL Statements...",在彈出窗口中點(diǎn)擊"..."按鈕,選擇jbpm.jpdl.mysql.sql文件,然后再點(diǎn)擊Execute按鈕。請?jiān)邳c(diǎn)擊Execute前確保sql腳本沒有語法錯誤,否則是不可能執(zhí)行成功的。
        c、修改hibernate.cfg.xml文件
           修改jbpm-jpdl-3.2.2\deploy\customized\jbpm-console\WEB-INF\classeshibernate.cfg.xml文件,原配置文件要修改部分如下:
        <!-- hibernate dialect -->
        
    <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
        
    <!-- JDBC connection properties (begin) ===
        <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="hibernate.connection.url">jdbc:hsqldb:mem:jbpm</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.connection.password"></property>
        ==== JDBC connection properties (end) 
    -->
        
    <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
        
    <!-- DataSource properties (begin) -->
        
    <property name="hibernate.connection.datasource">java:/JbpmDS</property>
        
    <!-- DataSource properties (end) -->
        修改后如下:
        <!-- hibernate dialect -->
        
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
        
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>
        
    <property name="hibernate.connection.username">root</property>
        
    <property name="hibernate.connection.password">自己的密碼(無密碼就空著)</property>
        
    <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
        <!-- DataSource properties (begin)
        <property name="hibernate.connection.datasource">java:/JbpmDS</property>
        DataSource properties (end) 
    -->
        d、修改web.xml文件
           jbpm-console\WEB-INF下打開web.xml文件,在servlet前加入以下listener,注意:把listener放在所有的servlet前面,我發(fā)現(xiàn)網(wǎng)上很多帖子里都沒有提到這一點(diǎn),不知道他們的程序是怎么跑起來的?殘念ING~~~
    <listener> 
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
    </listener>

    <listener>
        <listener-class>com.sun.faces.application.WebappLifecycleListener</listener-class> 
    </listener>
           這兩個監(jiān)聽器很關(guān)鍵,大象先一直沒有成功的原因就是沒有加這個,而這兩個監(jiān)聽器都在jsf-impl.jar包中,jbpm-console這個應(yīng)用可是用jsf來實(shí)現(xiàn)的,如果你不加,則會產(chǎn)生如下這些錯誤:

    javax.servlet.ServletException: Servlet.init() for servlet Faces Servlet threw exception
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202)
        at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:656)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPage(FormAuthenticator.java:316)
        at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:244)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
        at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
        at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
        at javax.faces.webapp.FacesServlet.init(FacesServlet.java:142)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
        ...16 more


    java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
        at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
        at javax.faces.webapp.FacesServlet.init(FacesServlet.java:142)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4044)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
        at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023)

        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:448)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    2008-8-3 13:03:49 org.apache.catalina.core.StandardContext loadOnStartup
    嚴(yán)重: Servlet /jbpm-console threw load() exception
        e、修改Tomcat安全驗(yàn)證
            有兩種方法修改安全驗(yàn)證,第一種是修改%TOMCAT_HOME%\conf下的tomcat-users.xml文件,第二種是在%TOMCAT_HOME%\conf目錄下再新建Catalina文件夾,然后再在Catalina文件夾下建localhost文件夾,在此目錄下建jbpm-console.xml文件。
           i、修改tomcat-users.xml文件
              修改前請備份tomcat-users.xml文件,修改后的內(nèi)容如下:
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      
    <role rolename="user"/>
      
    <role rolename="administrator"/>
      
    <role rolename="manager"/>
      
    <role rolename="sales"/>
      
    <role rolename="hr"/>
      
    <role rolename="admin"/>
      
    <role rolename="participant"/>
      
    <user username="user" password="user" roles="user,sales"/>
      
    <user username="shipper" password="shipper" roles="user,hr"/>
      
    <user username="manager" password="manager" roles="admin,hr,manager,user,sales"/>
      
    <user username="tadmin" password="" roles="admin,manager"/>
      
    <user username="admin" password="admin" roles="admin,user,hr"/>
    </tomcat-users>
              使用這種方式來處理安全驗(yàn)證將不用考慮向數(shù)據(jù)庫中插入組,角色,用戶之類的數(shù)據(jù),完全由Tomcat來管理
           ii、新建jbpm-console.xml文件
              使用這種方式將需要向數(shù)據(jù)庫中插入數(shù)據(jù),由jBPM來管理安全驗(yàn)證,jbpm-console.xml文件內(nèi)容如下:
    <Context>
    <Realm  className="org.apache.catalina.realm.JDBCRealm 
              driverName="
    com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/jbpm"
              connectionName
    ="root" 
              connectionPassword
    ="自己的密碼"
              userTable
    ="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g" 
              userNameCol
    ="g.TYPE_ = 'security-role' AND m.GROUP_ = g.ID_ AND m.USER_ = u.ID_ AND u.NAME_" 
              userCredCol
    ="DISTINCT u.PASSWORD_"
              userRoleTable
    ="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g" 
              roleNameCol
    ="g.NAME_" />
    </Context>
              需要向數(shù)據(jù)庫中插入的數(shù)據(jù):
          INSERT INTO JBPM_ID_GROUP VALUES(1,'G','sales','organisation',NULL);
          
    INSERT INTO JBPM_ID_GROUP VALUES(2,'G','admin','security-role',NULL);
          
    INSERT INTO JBPM_ID_GROUP VALUES(3,'G','user','security-role',NULL);
          
    INSERT INTO JBPM_ID_GROUP VALUES(4,'G','hr','organisation',NULL);
          
    INSERT INTO JBPM_ID_GROUP VALUES(5,'G','manager','security-role',NULL);
          
    INSERT INTO JBPM_ID_USER VALUES(1,'U','user','user@sample.domain','user');
          
    INSERT INTO JBPM_ID_USER VALUES(2,'U','manager','manager@sample.domain','manager');
          
    INSERT INTO JBPM_ID_USER VALUES(3,'U','admin','admin@sample.domain','admin');
          
    INSERT INTO JBPM_ID_USER VALUES(4,'U','shipper','shipper@sample.domain','shipper');
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,NULL,2,4);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,NULL,3,4);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,NULL,4,4);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,NULL,4,3);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,NULL,1,3);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,NULL,2,3);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,NULL,3,3);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(8,'M',NULL,NULL,3,2);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(9,'M',NULL,NULL,2,2);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(10,'M',NULL,NULL,2,5);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(11,'M',NULL,'boss',2,1);
          
    INSERT INTO JBPM_ID_MEMBERSHIP VALUES(12,'M',NULL,NULL,1,1);
           這兩種方法任選一種即可。
            
    此時(shí)基本工作都已經(jīng)做完,不過在發(fā)布前,不要忘了,將MySQL的驅(qū)動拷貝到%TOMCAT_HOME%\lib目錄下,然后就可以將jbpm-console文件夾復(fù)制到%TOMCAT_HOME%\webapps目錄下了,接著在bin目錄下雙擊tomcat6.exe啟動服務(wù)器,等啟動過程執(zhí)行完后,打開IE,輸入http://localhost:8080/jbpm-console 回車,應(yīng)該就能看到jbpm控制臺界面了。
     
        
           到此,在MySQL下的布署就全部結(jié)束了,如果能看到這個界面,那恭喜你,你終于成功了!
        下面接著說下如何將MySQL數(shù)據(jù)庫換成MS SQL Server 2000,其實(shí)很簡單,如果在MySQL下布署成功了,只需要將hibernate.cfg.xml文件里的配置改成MS SQL Server 2000的連接方式就行了,另外在2000中建立jbpm的數(shù)據(jù)庫也是必要的。
        9、使用SQL Server 2000數(shù)據(jù)庫
           jbpm-jpdl-3.2.2\db下找到jbpm.jpdl.mssql.sql,打開后刪除alter table JBPM_XXdrop table JBPM_XX這些語句,這些東東都是用來在以前的版本上做升級用的,我們是新建數(shù)據(jù)庫當(dāng)然用不到這些了。在SQL Server中新建jbpm數(shù)據(jù)庫,COPY剩下的sql語句,在查詢分析器里粘貼,然后執(zhí)行,這時(shí)會有很多警告產(chǎn)生,如下:
    警告: 已創(chuàng)建表 'JBPM_DELEGATION',但其最大行大?。?/span>8300)超過了每行的最大字節(jié)數(shù)(8060)。如果結(jié)果行長度超過 8060 字節(jié),則此表中行的 INSERT 或 UPDATE 將失敗。   

    警告: 已創(chuàng)建表 
    'JBPM_LOG',但其最大行大?。?/span>18321)超過了每行的最大字節(jié)數(shù)(8060)。如果結(jié)果行長度超過 8060 字節(jié),則此表中行的 INSERT 或 UPDATE 將失敗。
          這些不用管它,接下來修改hiberate.cfg.xml文件,大象采用的是JTDS驅(qū)動的連接方式,修改后的內(nèi)容如下:
        <!-- hibernate dialect -->
        
    <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
        
    <property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
        
    <property name="hibernate.connection.url">jdbc:jtds:sqlserver://localhost:1433/jbpm</property>
        
    <property name="hibernate.connection.username">sa</property>
        
    <property name="hibernate.connection.password">自己的密碼(無密碼就空著)</property>
        
    <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
        
    <!-- DataSource properties (begin)
        <property name="hibernate.connection.datasource">java:/JbpmDS</property>
        DataSource properties (end) 
    -->
         不要忘了,還要將JTDS的驅(qū)動拷貝到%TOMCAT_HOME%\lib目錄下,如果采用的是Tomcat安全驗(yàn)證,此時(shí)就不用向數(shù)據(jù)庫插入數(shù)據(jù),直接就可以啟動服務(wù)器運(yùn)行了。如果采用的是jBPM來管理安全驗(yàn)證,此時(shí)則需要將前面提到的數(shù)據(jù)插入數(shù)據(jù)庫中,在插入前需要修改一下,將每條記錄前的ID號去掉,因?yàn)閿?shù)據(jù)庫中對此字段已經(jīng)作了標(biāo)識,不能手動對它設(shè)置。數(shù)據(jù)插入后,就啟動服務(wù)器看下吧!
         寫到這里,關(guān)于jbpm-console所有的布署都講完了,大象以上所說的全部都是親自在電腦上一步一步的做過,絕不會胡亂copy一下網(wǎng)上的東東發(fā)出來。如有什么問題,希望和大家一起交流。(如果圖片不能顯示,在其上點(diǎn)擊右鍵,選擇"顯示圖片")
         需要使用的JAR包: 點(diǎn)擊下載
         SQL腳本: 點(diǎn)擊下載
         本文為菠蘿大象原創(chuàng),如要轉(zhuǎn)載請注明出處。
    posted on 2008-08-06 17:25 菠蘿大象 閱讀(9096) 評論(10)  編輯  收藏 所屬分類: jBPM

    評論:
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000布署詳解 2008-08-06 20:18 | 路依
    2008-8-6 20:15:27 org.apache.catalina.core.StandardContext start
    嚴(yán)重: Error listenerStart
    2008-8-6 20:15:27 org.apache.catalina.core.StandardContext start
    嚴(yán)重: Context [/jbpm-console] startup failed due to previous errors
    2008-8-6 20:15:27 org.apache.coyote.http11.Http11AprProtocol start
    信息: Starting Coyote HTTP/1.1 on http-8080


    按你說的一步步來的。TOMCAT報(bào)這個錯,網(wǎng)上也有同樣的錯誤,可沒人回復(fù)。不知道你知道不?  回復(fù)  更多評論
      
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000布署詳解 2008-08-06 22:04 | 菠蘿大象
    你這個問題看來好像是Tomcat中的lib里面沒有catalina.jar這個文件導(dǎo)致的,另外我問下,你確定是按我寫的這些環(huán)境做的嗎?我其實(shí)在公司和家里三臺電腦上都測試過,確保沒問題了,我才這樣寫的,而且對應(yīng)網(wǎng)上的做法,一般會出現(xiàn)錯誤的地方還專門測試過,所以,你先看下你的環(huán)境或是jar包都放好了沒,配置文件有沒有錯誤,有時(shí)候一些不注意的小細(xì)節(jié)會導(dǎo)致調(diào)試很久都找不到出錯的地方。  回復(fù)  更多評論
      
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000布署詳解 2008-08-07 09:15 | 路依
    應(yīng)該是jar包的問題。我下載你的jar包覆蓋我的就可以了。具體哪個現(xiàn)在還沒測試。等有時(shí)間了我測試下發(fā)上來。  回復(fù)  更多評論
      
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000部署詳解[未登錄] 2008-12-03 14:56 | zhangy
    勞駕 出現(xiàn)這樣的問題 web.xml中加了<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>

    <listener>
    <listener-class>com.sun.faces.application.WebappLifecycleListener</listener-class>
    </listener>后出現(xiàn)
    2008-8-6 20:15:27 org.apache.catalina.core.StandardContext start
    嚴(yán)重: Error listenerStart
    2008-8-6 20:15:27 org.apache.catalina.core.StandardContext start
    嚴(yán)重: Context [/jbpm-console] startup failed due to previous errors
    2008-8-6 20:15:27 org.apache.coyote.http11.Http11AprProtocol start
    信息: Starting Coyote HTTP/1.1 on http-8080

    按你說的一步步來的。TOMCAT報(bào)這個錯,
    web.xml不加上述代碼后 tomcat正常運(yùn)行 沒有問題
    但是洅瀏覽器中鍵入http://localhost:8989/jbpm-console/sa/processes.jsf后回車
    tomcat報(bào)這樣的異常了


    警告: Unexpected error forwarding to login page
    javax.servlet.ServletException: Servlet.init() for servlet Faces Servlet threw exception
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1085)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:701)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:663)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
    ispatcher.java:409)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
    patcher.java:312)
    at org.apache.catalina.authenticator.FormAuthenticator.authenticate(Form
    Authenticator.java:220)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
    torBase.java:504)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
    0)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ssConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
    :577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:684)
    at java.lang.Thread.run(Thread.java:595)
    怎么辦????  回復(fù)  更多評論
      
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000部署詳解 2008-12-18 15:23 | 獨(dú)上太行
    警告: No default ExpressionFactory from Faces Implementation, attempting to load
    from Feature[compiler.ExpressionFactory]
    2008-12-18 15:21:13 com.sun.facelets.FaceletViewHandler handleRenderException
    嚴(yán)重: Error Rendering View[/ua/login.xhtml]
    com.sun.facelets.FaceletException: Could not instantiate feature[compiler.Expres
    sionFactory]: com.sun.el.ExpressionFactoryImpl
    at com.sun.facelets.compiler.Compiler.featureInstance(Compiler.java:154)

    at com.sun.facelets.compiler.Compiler.createExpressionFactory(Compiler.j
    ava:143)
    at com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFace
    letFactory.java:198)
    at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFacelet
    Factory.java:144)
    at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFacelet
    Factory.java:95)
    at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java
    :517)
    at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.jav
    a:567)
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrap
    per.java:178)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePha
    se.java:106)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:173)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
    atcher.java:672)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
    tionDispatcher.java:463)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
    ispatcher.java:398)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
    patcher.java:301)
    at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPag
    e(FormAuthenticator.java:315)
    at org.apache.catalina.authenticator.FormAuthenticator.authenticate(Form
    Authenticator.java:243)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
    torBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:148)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)

    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.ja
    va:697)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSock
    et.java:889)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:684)
    at java.lang.Thread.run(Unknown Source)
    2008-12-18 15:21:13 com.sun.faces.lifecycle.LifecycleImpl phase
    警告: executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@5113
    f0) threw exception
    com.sun.facelets.FaceletException: Could not instantiate feature[compiler.Expres
    sionFactory]: com.sun.el.ExpressionFactoryImpl
    at com.sun.facelets.compiler.Compiler.featureInstance(Compiler.java:154)

    at com.sun.facelets.compiler.Compiler.createExpressionFactory(Compiler.j
    ava:143)
    at com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFace
    letFactory.java:198)
    at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFacelet
    Factory.java:144)
    at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFacelet
    Factory.java:95)
    at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java
    :517)
    at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.jav
    a:567)
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrap
    per.java:178)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePha
    se.java:106)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:173)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
    atcher.java:672)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
    tionDispatcher.java:463)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
    ispatcher.java:398)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
    patcher.java:301)
    at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPag
    e(FormAuthenticator.java:315)
    at org.apache.catalina.authenticator.FormAuthenticator.authenticate(Form
    Authenticator.java:243)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
    torBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:148)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)

    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.ja
    va:697)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSock
    et.java:889)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:684)
    at java.lang.Thread.run(Unknown Source)
    [ERROR] Servlet.service() for servlet Faces Servlet threw exception
    com.sun.facelets.FaceletException: Could not instantiate feature[compiler.Expres
    sionFactory]: com.sun.el.ExpressionFactoryImpl
    at com.sun.facelets.compiler.Compiler.featureInstance(Compiler.java:154)

    at com.sun.facelets.compiler.Compiler.createExpressionFactory(Compiler.j
    ava:143)
    at com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFace
    letFactory.java:198)
    at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFacelet
    Factory.java:144)
    at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFacelet
    Factory.java:95)
    at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java
    :517)
    at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.jav
    a:567)
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrap
    per.java:178)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePha
    se.java:106)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:173)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
    atcher.java:672)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
    tionDispatcher.java:463)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
    ispatcher.java:398)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
    patcher.java:301)
    at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPag
    e(FormAuthenticator.java:315)
    at org.apache.catalina.authenticator.FormAuthenticator.authenticate(Form
    Authenticator.java:243)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
    torBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:148)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)

    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.ja
    va:697)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSock
    et.java:889)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:684)
    at java.lang.Thread.run(Unknown Source)
    [WARN] Unexpected error forwarding to login page
    javax.servlet.ServletException: Could not instantiate feature[compiler.Expressio
    nFactory]: com.sun.el.ExpressionFactoryImpl
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:249)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:173)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
    atcher.java:672)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
    tionDispatcher.java:463)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
    ispatcher.java:398)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
    patcher.java:301)
    at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPag
    e(FormAuthenticator.java:315)
    at org.apache.catalina.authenticator.FormAuthenticator.authenticate(Form
    Authenticator.java:243)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
    torBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:148)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)

    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.ja
    va:697)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSock
    et.java:889)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:684)
    at java.lang.Thread.run(Unknown Source)
    我加了那兩個監(jiān)聽器后還是報(bào)錯,不知道樓主知道什么原因不?
      回復(fù)  更多評論
      
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000部署詳解 2008-12-18 15:50 | 獨(dú)上太行
    找到答案了,原來是少了el-ri-1.0.jar
    http://download.java.net/maven/2/com/sun/el/el-ri/1.0/
    不明白在jboss-jbpm自帶的jboss服務(wù)器中沒有這個包為什么能運(yùn)行。。。
    忘了說明一下,我現(xiàn)在用的是jbpm3.3.0的。是通過安裝包安裝的jboss-jbpm,結(jié)構(gòu)和之前的版本不大一樣了。  回復(fù)  更多評論
      
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000部署詳解 2009-09-30 08:47 | 崔永
    請問我怎么下載你的Lib?。恳稽c(diǎn)擊下載就說我的權(quán)限不夠。  回復(fù)  更多評論
      
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000部署詳解 2009-10-09 15:07 | 獨(dú)上太行
    @崔永
    請?jiān)僭囈幌?,我今天下載也是可以的,不需要登錄。實(shí)在不行,給我你的郵箱我把jar發(fā)給你。  回復(fù)  更多評論
      
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000部署詳解 2009-10-09 15:16 | 崔永
    依然有如下錯誤提示:

    403 - Forbidden: Access is denied.
    You do not have permission to view this directory or page using the credentials that you supplied.

    但是我已經(jīng)解決了,找到了可用的包了,謝謝你。  回復(fù)  更多評論
      
    # re: [原創(chuàng)] jbpm 3.2.2+Tomcat 6.0.10+MySQL5.0.27/SQL Server2000部署詳解 2009-12-24 11:39 | 菠蘿大象
    感謝大家的回復(fù),我好久都沒寫博客了,沒想到,這么早寫的一篇文章,現(xiàn)在還有人關(guān)注。我決定開始再來更新博客。  回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲av女电影网| 久久久久久久国产免费看| 又黄又爽又成人免费视频| 亚洲欧洲美洲无码精品VA | 免费国内精品久久久久影院| 亚洲中文字幕久久精品蜜桃 | 亚洲av综合日韩| 成年女人毛片免费播放视频m| 亚洲的天堂av无码| 久久久久成人片免费观看蜜芽 | 亚洲国产综合第一精品小说| 99热在线免费观看| 亚洲爆乳精品无码一区二区三区| 国产精品美女久久久免费| 亚洲乱码中文字幕综合234| 羞羞视频在线免费观看| 国产a不卡片精品免费观看 | 亚洲AV综合色区无码一区| 成人av片无码免费天天看| 精品亚洲一区二区三区在线播放| 一级午夜a毛片免费视频| 亚洲高清无码综合性爱视频| 色视频在线观看免费| 全黄a免费一级毛片人人爱| 老司机精品视频免费| 免费va人成视频网站全| 青青草97国产精品免费观看 | 亚洲精品国产肉丝袜久久| 在线免费观看国产| 7777久久亚洲中文字幕蜜桃| 最近的中文字幕大全免费8| 久久av无码专区亚洲av桃花岛| 精品一区二区三区免费毛片爱 | 青青草国产免费久久久91| 亚洲精品久久无码av片俺去也| 韩国二级毛片免费播放| 污网站免费在线观看| 亚洲日本韩国在线| 你好老叔电影观看免费| 亚洲午夜精品一区二区| 999在线视频精品免费播放观看|