国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

jUDDI 簡單安裝使用

2024-07-21 02:14:10
字體:
來源:轉載
供稿:網友

來源:http://xio.mblogger.cn
juddi,發音(judy),是服務于webservices 的uddi的java實現開源包。 1 安裝1.1 下載下載地址:http://ws.apache.org/juddi/releases.html 目前的juddi的最新版本是0.9rc3(release candidate #3 for version 0.9),不過在這個版本中有一些的bug。 juddi0.9版本發布應該是不會久,可以參考下面這段話,是viens stephen(juddi主要開發者之一)在mail list中說的:we've closed 40+ issues since january 1, 2005. we'll be releasing a 0.9rc4 as soon as axis 1.2 final is released and then releasing a 0.9 final a few weeks after that. (march 22, 2005) 1.2 數據庫安裝uddi需要有一個地方來存儲注冊的數據,因此首先要選擇一個關系數據庫安裝。juddi可以使用任何支持ansi standard sql關系數據庫( 例如mysql, db2, sybase, jdatastore等)。本實例使用mysql。 數據庫安裝完成后,在mysql數據庫中運行juddi-0.9rc3 ql/mysql/create_database.sql, juddi-0.9rc3 ql/mysql/insert_publishers.sql。數據庫準備完成。 1.3 安裝juddi及配置首先將juddi-0.9rc3/webapp下的juddi文件夾復制到tomcat下的webapps中,并將 mysql-connector-java-3.1.7/mysql-connector-java-3.1.7-bin.jar復制到tomcat 5.0/webapps/juddi/web-inf/lib下。 下面就是連接數據庫的配置,在tomcat/conf/server.xml的host element中加入:
<context path="/juddi" docbase="juddi" debug="5" reloadable="true" crosscontext="true"> <logger classname="org.apache.catalina.logger.filelogger" prefix="localhost_juddidb_log" suffix=".txt" timestamp="true"/> <resource name="jdbc/juddidb" auth="container" type="javax.sql.datasource"/> <resourceparams name="jdbc/juddidb"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.basicdatasourcefactory</value> </parameter> <!-- maximum number of db connections in pool. make sure you configure your mysqld max_connections large enough to handle all of your db connections. set to 0 for no limit. --> <parameter><name>maxactive</name><value>100</value></parameter> <!-- maximum number of idle db connections to retain in pool. set to 0 for no limit. --> <parameter><name>maxidle</name><value>30</value></parameter> <parameter><name>maxwait</name><value>10000</value></parameter> <!-- mysql db username and password for db connections 帳號密碼根據數據庫安裝配置修改 --> <parameter><name>username</name><value>root</value></parameter> <parameter><name>password</name><value>****</value></parameter> <!-- class name for mysql jdbc driver --> <parameter> <name>driverclassname</name> <value>com.mysql.jdbc.driver</value> </parameter> <!-- the jdbc connection url for connecting to your mysql db. the autoreconnect=true argument to the url makes sure that the mm.mysql jdbc driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours. 數據庫url連接配置 --> <parameter> <name>url</name> <value>jdbc:mysql://host.domain.com:3306/juddi?autoreconnect=true</value> </parameter> <parameter> <name>validationquery</name> <value>select count(*) from publisher</value> </parameter> </resourceparams></context>
1.4 本地安裝檢查訪問http://127.0.0.1:8080/juddi/happyjuddi.jsp頁面,此頁面檢查了juddi所必須的包和配置的正確性,并測試數據庫連接是否成功。 如果沒有紅色文字,即本地安裝成功,即可進行webservices的發布發現等服務。 2 測試實例以上安裝成功的是uddi的服務器端,而進行發布、查找服務的客戶端的應用則要用juddi、uddi4j等包來進行開發。我們可以直接使用juddi自 帶的測試代碼來進行客戶端使用的學習。 2.1 使用uddi4j測試使用uddi4j作為客戶端進行測試。 代碼位置:juddi-0.9rc3 rc/uddi4j/org/apache/juddi/uddi4j 新建立好一個工程并引入此代碼,然后對代碼進行必要的修改,主要是包名和配置。引入必要的包,比如:junit.jar、 uddi4j.jar、juddi.jar、soap.jar等(因為歐的代碼庫中有很多種代碼,對應很多包,不知道其他哪些是必須的了:)。 接著是數據庫的初始化,需要插入一個可以添加其他publisher的publisher,sql 語句: insert into publisher (publisher_id,publisher_name,enablied,admin) values ('juddi','juddi user','true','true'); 調試代碼后,運行testall測試,您可能會發現測試failure很多,這些當中有些是測試代碼的錯誤,也有可能是juddi-0.9rc3的缺陷( juddi-0.9rc3不是正式發布版)。 以下列舉一些本測試案例測試失敗的可能出現的修改方法: 2.1.1 加載配置文件時訪問不到samples.prop我的解決辦法是將建立一個新配置文件位置,在工程目錄下的:conf amples.prop。 在configurator.load()方法中代碼可以這樣修改:
properties config = new properties(); try { config.load(new java.io.fileinputstream("./conf/samples.prop")); } catch (exception e) { system.out.println("error loading samples property file/n" + e); }
解決方法很多,您可以自己思索。 2.1.2 transportclassname配置錯誤如果錯誤提示中有這樣的報告,即可能是此錯誤: org.xml.sax.saxparseexception: element or attribute do not match qname production: qname::=(ncname':')?ncname. 在當前測試實例代碼中的默認配置(samples.prop)中,transportclassname定義成org.uddi4j.transport.apachesoaptransport, 而我們使用的包是axis.jar,因此需要修改成相應的類,代碼修改如下:
# -----------------------------------------------------------------------# transport classname. typically defined on commandline as# -dorg.uddi4j.transportclassname=xxx.# -----------------------------------------------------------------------#transportclassname=org.uddi4j.transport.apachesoaptransport transportclassname=org.uddi4j.transport.apacheaxistransport# transportclassname=org.uddi4j.transport.hpsoaptransport
2.1.3 testfindbusiness案例不通過testfindbusiness中有大小寫匹配測試,但是在juddi-0.9rc3中的大小寫匹配(casesensitivematch)有bug,因此可以將大小寫匹配的測 試案例注釋掉。 2.1.4 publishermanager的代碼錯誤在測試test_save_tmodel的時候_testauthtokenexpired()中,我們測試過期驗證時,在錯誤匹配的時候,會出現測試失敗,如果捕捉這個 匹配的結果,你會發現,出錯的類型是e_authtokenrequired而不是期待的e_authtokenexpired。 這是因為在我們所獲得的authtoken是空的,在根源就是在publishermanager. getexpiredauthtoken(string, string)方法中,代碼:
registryproxy proxy = new registryproxy();
proxy的實例的配置是空的。因此,我們修改這個方法變成:
/** * changed by xio * @param publisher string * @param password string * @param testprops properties:增加的參數,傳入基本配置 * @return string */public static string getexpiredauthtoken(string publisher, string password, properties testprops) { properties props = new properties(); props.setproperty(registryproxy.admin_endpoint_property_name, testprops.getproperty("adminurl")); props.setproperty(registryproxy.inquiry_endpoint_property_name, testprops.getproperty("inquiryurl")); props.setproperty(registryproxy.publish_endpoint_property_name, testprops.getproperty("publishurl")); registryproxy proxy = new registryproxy(props); authtoken token = null; authinfo authinfo = null; string ret = null; try { token = proxy.getauthtoken(publisher, password); authinfo = token.getauthinfo(); ret = authinfo.getvalue(); system.out.println("getexpiredauthtoken:" + authinfo); proxy.discardauthtoken(authinfo); } catch (exception ex) { ex.printstacktrace(); } return ret; }
2.2 使用juddi測試在juddi-0.9rc3版本中自帶的代碼中沒有客戶端的使用實例,雖然附帶了整個項目代碼的測試代碼,但是估計沒什么人喜歡從這里抽取學 習客戶端使用的學習。 當然,學習的實例還是有的,在cvs當前的工程代碼中,有個samples的文件夾,這部分代碼便是一個十分齊全的實例(有幾個類沒完成, 但不影響:)。 cvs服務器數據:http://ws.apache.org/juddi/cvs.html wincvs的使用請網上下載閱讀。 其他:在進行代碼學習的同時,建議閱讀webservices相關資料文檔。強烈建議閱讀:理解 uddi 注冊中心的 wsdl 系列 (http://www-900.ibm.com/developerworks/cn/webservices/ws-uwsdl/part1/) 參考資料:http://wiki.apache.org/ws/juddi_how-tos http://ws.apache.org/juddi/lists.html
原作者:[email protected]來 源:http://xio.mblogger.cn
,歡迎訪問網頁設計愛好者web開發。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永年县| 璧山县| 灵璧县| 于都县| 禄丰县| 柯坪县| 三河市| 报价| 恭城| 阳山县| 开江县| 丰原市| 苏尼特左旗| 安龙县| 张家口市| 凤庆县| 含山县| 谷城县| 郁南县| 京山县| 屯留县| 南丹县| 霞浦县| 镇宁| 兴山县| 临漳县| 双鸭山市| 谢通门县| 泸溪县| 桂东县| 潍坊市| 祥云县| 麻栗坡县| 常熟市| 虹口区| 广平县| 华宁县| 开封县| 锡林浩特市| 勃利县| 江口县|