最近初學(xué)JUDDI,迷惑了一陣子,今天終于成功安裝JUDDI,馬上寫了一個文檔供大家分享。
OWL-S/UDDI matchmaker 和 普通JUDDI都需要在web服務(wù)器下部署一個juddi的應(yīng)用文件夾,所以為了避免沖突,我們將OWL-S/UDDI matchmaker和普通JUDDI放在兩個不同的服務(wù)器中跑。
1. OWL-S/UDDI matchmaker
它的安裝只要查找一下其自帶的幫助文檔,就很容易安裝成功,并可以做測試;
我采用tomcat-5.5.17 + mysql5.5。
安裝成功后,在TomcatHome下的webapps文件夾下有一個juddi的文件夾,并且在mysql下自己建了新的數(shù)據(jù)庫juddi;
下面就可以自己作應(yīng)用了。
2. 普通UDDI
我采用Tomcat 5.0.30+mysql5.5 ,有人反映Tomcat 5.5版本和JUDDI有沖突。
1. 從mysql的官方網(wǎng)站上下載mysql-5.0.13-rc-win32.zip解壓后安裝到C:\Program Files\MySQL\MySQL Server 5.0.
2.從apache官方網(wǎng)站上下載juddi-0.9rc4.zip,解壓后將juddi.war復(fù)制到..\tomcat\webapps\下,或者復(fù)制文件夾juddi到該目錄下;.
3.從
http://www.mysql.com/downloads/api-jdbc-stable.html,下載mysql-connector-java-3.0.17-ga.zip,解壓后將mysql-connector-java-3.0.17-ga-bin.jar復(fù)制到../tomcat/common/lib/下(并添加到環(huán)境變量)../tomcat/webapps/juddi/WEB-INF/lib.;另外,還需要加入三個比較重要的包到./tomcat/common/lib/下,分別是: mail.jar , activation.jar,tools.jar(該包可在%JAVA_HOME%\lib中找到),如果不行還可加入另外一個包xerces.jar。
下面就是關(guān)鍵步驟:
4進入juddi-0.9rc4\sql\mysql,(因為我是用mysql數(shù)據(jù)庫的),里面有三個文件,先閱讀README,按照readme中說明進行操作。
為了省時間,我把步驟寫一下:
1) 打開mysql的命令行工具,以root用戶進入,輸入”\. {path}\create_database.sql”,該步驟默認(rèn)的將會在你的數(shù)據(jù)庫中創(chuàng)建一個juddi數(shù)據(jù)庫,一般來說這是可以的,但是由于本人以前安裝了語義的juddi,為了避免沖突,需要建立一個不同的數(shù)據(jù)庫存儲,因此可以在執(zhí)行該步驟之前,先便起create_database.sql,將里面的juddi全部置換成你所想要的創(chuàng)建的數(shù)據(jù)庫名字,同樣在insert_publisher.sql也一起改一下;
2) 如果上一步成功,就執(zhí)行這一步。先編輯insert_publisher.sql,把它改成如下:
USE ‘databaseName’;
-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN) VALUES (‘juddi‘,‘juddi‘,‘li.yong@apache.org‘,‘true‘,‘true‘);
其中上面打引號的內(nèi)容都可以自行修改自己想要的名字;
同第一步,在mysql執(zhí)行該文件,也可以逐條在mysql中輸入執(zhí)行。
3) 驗證:查看數(shù)據(jù)庫juddi,在表publisher中能看到第二步所設(shè)置的信息就說明數(shù)據(jù)創(chuàng)建成功。
5. 數(shù)據(jù)庫連接:
進入%TOMCAT_HOME%\conf目錄,編輯其中的server.xml文件。
一般來說,把下面的根元素DefaultContext加入到<Host></Host>之間即可。
<DefaultContext reloadable="true" crossContext="true">
<Resource name="jdbc/juddiDB" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/juddiDB">
<parameter>
<name>username</name>
<value>userName</value>
</parameter>
<parameter>
<name>password</name>
<value>password</value>
</parameter>
<parameter>
<name>url</name>
<value>
jdbc:mysql://localhost/juddiws
</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
</ResourceParams>
</DefaultContext>
其中,用戶名juddi和密碼juddi是連接數(shù)據(jù)庫的密碼,在下一步進行設(shè)置,jdbc:mysql://localhost/DataBaseName的DataBaseName就是剛才所創(chuàng)建的數(shù)據(jù)庫名字。保存。
重啟服務(wù)器。
6.為數(shù)據(jù)庫連接授權(quán):執(zhí)行下面的sql命令:
INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABL
ED,IS_ADMIN) VALUES (‘userName‘,‘password‘,‘juddi@apache.org‘,‘true‘,‘true‘) ;
userName,password就是第5步中的用戶名和密碼。
7.至此,整個普通的JUDDI就已經(jīng)安裝完成。測試一下,進入
http://localhost:8080/juddi/happyjuddi.jsp,如果沒有出現(xiàn)紅色字體就表示安裝基本成功;
下面介紹使用JUDDI客戶端對JUDDI進行測試:
一般是使用uddi的API UDDI4J作為客戶端。
這里借用sijipeng在w3cchina分享的一個帖子,http://webservice.org.cn/dispbbs.asp?boardID=10&ID=39472
建立一個工程 名為uddi4jdemo
引入包uddi4j.jar , soap.jar(在http://www.apache.org/dyn/closer.cgi/ws/soap/ 下載)
把uddi4j sample里面的 samples.prop configurator.java SaveBusinessExample.java FindBusinessExample.java ,最好在工程的編譯路徑上再導(dǎo)入前面用的包:mail.jar , activation.jar,tools.jar。
publisherAssertionExample.java 放在工程默認(rèn)package下
由于juddi剛裝好沒有插入user 因此 這里插入user (這一步在4步的第2小步已經(jīng)作完,不必重復(fù)做)
INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN)
VALUES (‘juddi‘,‘juddi‘,‘juddi@apache.org‘,‘true‘,‘true‘)
打開samples.prop這個文件 修改設(shè)置下參數(shù)
設(shè)置url
inquiryURL = http://localhost:8080/juddi/inquiry
publishURL = http://localhost:8080/juddi/publish
設(shè)置
userid = juddi ――――――剛才設(shè)置的或在第4步第2小步中設(shè)置的
password = juddi ――――――剛才設(shè)置的或在第4步第2小步中設(shè)置的
設(shè)置soap transport 默認(rèn)就是這個
TransportClassName=org.uddi4j.transport.ApacheSOAPTransport
也可以使用axis,此時該值設(shè)置為org.uddi4j.transport.ApacheAxisTransport,不過添加的包就不是soap.jar,要去下載axis包。
運行結(jié)果
運行 SaveBusinessExample.java
*********** Running SaveBusinessExample ***********
Get authtoken
Returned authToken:authToken:60BDF210-6641-11DB-A066-BC0BE7D6EEB5
Save ‘Sample Business‘
Returned businessKey:60DF35B0-6641-11DB-A066-A0B53CE33E0E
Listing businesses starting with S after we publish
Sample Business
Sample Business
Sample Business
運行FindBusinessExample.java
*********** Running FindBusinessExample ***********
Sample Business
Sample Business
Sample Business
文筆粗劣,時間緊迫,寫得不好,請大家見諒!