一路拾遺
          Collect By Finding All The Way ......
          posts - 81,comments - 41,trackbacks - 0

           一、簡介
          IBM 發(fā)布的 uddi4j是UDDI的java實(shí)現(xiàn),它包含發(fā)布、查找、取消web服務(wù)的API。而juddi是apache組織的一個(gè)開源項(xiàng)目,它部署在tomcat等服務(wù)器上是UDDI的服務(wù)器。
          本文的主要內(nèi)容:
          1. 利用uddi4j 的API創(chuàng)建web服務(wù);
          2. 將創(chuàng)建好的web服務(wù)發(fā)布到j(luò)uddi的服務(wù)器上;
          3. 在juddi服務(wù)器上查詢web服務(wù)。

          二、 運(yùn)行環(huán)境
          環(huán)境:winxp + jdk1.6 + tomcat6.0 + mysql5.0 + juddi-2.0rc5 + uddi4j-2.0.5(各種產(chǎn)品的版本沒有太大影響)

          三、安裝與配置juddi
          1. 下載juddi-2.0rc5.zip(官方網(wǎng)址:http://ws.apache.org/juddi/releases.html),解壓后將juddi-2.0rc5\webapp\juddi拷貝到tomcat的webapp目錄下。
          2. 確保mysql正確安裝,將mysql的jdbc驅(qū)動程序拷貝到tomcat的common\lib下,我這里用到的是mysqldriver.jar。
          3. 修改tomcat/conf/server.xml在</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>root</value> 
          </parameter> 
          <parameter> 
          <name>password</name> 
          <value>123456</value> 
          </parameter> 
          <parameter> 
          <name>url</name> 
          <value> 
          jdbc:mysql://localhost/juddi 
          </value> 
          </parameter> 
          <parameter> 
          <name>driverClassName</name> 
          <value>com.mysql.jdbc.Driver</value> 
          </parameter> 
          </ResourceParams> 
          </DefaultContext> 

          其中:username和password是mysql數(shù)據(jù)庫的用戶名和密碼,url為數(shù)據(jù)庫的url,driverClassName是mysql的JDBC驅(qū)動程序,如果所用到的數(shù)據(jù)庫版本或是驅(qū)動程序版本不同這里也要變化。
          4. 新建juddi用到的數(shù)據(jù)庫,并插入數(shù)據(jù),具體就是執(zhí)行\(zhòng)juddi-2.0rc5\sql\mysql文件夾中的兩個(gè)sql文件:create_database.sql、insert_publishers.sql,前一個(gè)sql文件可以直接執(zhí)行,將創(chuàng)建數(shù)據(jù)庫juddi,后一個(gè)sql文件要修改成如下:
          USE juddi;
          -- *** SAMPLE PUBLISHER ***
          INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN) VALUES ('juddi','juddi','juddi@apache.org','true','true');
          這樣就插入到表publisher中一條數(shù)據(jù),就是一個(gè)用戶,用戶名:juddi,密碼:juddi,我們在uddi4j中將用這個(gè)用戶來創(chuàng)建web服務(wù)。
          5. 驗(yàn)證安裝是否成功。重啟tomcat,訪問http://localhost:8080/juddi/happyjuddi.jsp,如果jUDDI DataSource Validation段如下面的效果而沒有用紅色字體報(bào)錯則說明juddi部署成功。
          jUDDI DataSource Validation
          + Got a JNDI Context!
          + Got a JDBC DataSource (dsname=java:comp/env/jdbc/juddiDB)
          + Got a JDBC Connection!
          + SELECT COUNT(*) FROM PUBLISHER = 1

          四、運(yùn)行uddi4j的示例程序創(chuàng)建、發(fā)布、查找web服務(wù)
          1. 下載uddi4j-bin-2.0.5.zip.
          2. 建立一個(gè)工程 名為uddi4jDemo,引入包uddi4j.jar , soap.jar,activation.jar,mail.jar。
          把uddi4j sample里面的 samples.prop configurator.java SaveBusinessExample.java FindBusinessExample.java publisherAssertionExample.java 放在工程默認(rèn)package下
          3. 打開samples.prop這個(gè)文件 修改設(shè)置下參數(shù)
          設(shè)置url
          inquiryURL = http://localhost:8080/juddi/inquiry
          publishURL = http://localhost:8080/juddi/publish
          設(shè)置
          userid = juddi
          password = juddi
          設(shè)置soap transport 默認(rèn)就是這個(gè)
          TransportClassName=org.uddi4j.transport.ApacheSOAPTransport
          4. 運(yùn)行結(jié)果
          運(yùn)行 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

          運(yùn)行FindBusinessExample.java
          *********** Running FindBusinessExample ***********
          Sample Business

          posted on 2008-08-15 16:38 胖胖泡泡 閱讀(2194) 評論(10)  編輯  收藏

          FeedBack:
          # re: 使用UDDI4J連接JUDDI
          2008-12-16 10:03 | lilin138000
          你好,我運(yùn)行時(shí)有這個(gè)問題:
          import com.hp.soap.client.SoapClient;
          import com.hp.soap.client.ClientMessage;
          import com.hp.soap.client.SoapBody;
          import com.hp.soap.client.SoapException;
          import com.hp.soap.xml.XMLUtil;

          難道是要用hp的包嗎,請指教,   回復(fù)  更多評論
            
          # re: 使用UDDI4J連接JUDDI
          2008-12-16 18:25 | 胖胖泡泡
          添加這個(gè)包 soap.jar  回復(fù)  更多評論
            
          # re: 使用UDDI4J連接JUDDI
          2008-12-16 23:08 | lilin138000
          可是soap.jar我已經(jīng)加了還是不行,是不是別的原因  回復(fù)  更多評論
            
          # re: 使用UDDI4J連接JUDDI
          2008-12-17 09:57 | 胖胖泡泡
          引入包uddi4j.jar , soap.jar,activation.jar,mail.jar  回復(fù)  更多評論
            
          # re: 使用UDDI4J連接JUDDI
          2009-03-10 16:12 | zhxiaomiao
          我都弄了一天了 樓主我的問題好多啊 我用tomcat6配置 就這樣 死活不行 報(bào)
          DB connection was not aquired. (Cannot create JDBC driver of class '' for connect URL 'null')

          - SELECT COUNT(*) FROM PUBLISHER failed (null)
          沒辦法下 我只能下載帶著tomcat的 juddi-tomcat-2.0rc6.zip這樣可以 我把這個(gè)的server文件配置都和tomcat6.0的一樣都不行 不知道什么原因
          還有我運(yùn)行SaveBusinessExample.java 例子時(shí)報(bào)錯:(用的包都有了)
          *********** Running SaveBusinessExample ***********

          Get authtoken
          Fault string, and possibly fault code, not set
          at org.uddi4j.UDDIElement.<init>(UDDIElement.java:40)
          at org.uddi4j.response.AuthToken.<init>(AuthToken.java:85)
          at org.uddi4j.client.UDDIProxy.get_authToken(UDDIProxy.java:1626)
          at SaveBusinessExample.run(SaveBusinessExample.java:72)
          at SaveBusinessExample.main(SaveBusinessExample.java:50)

          樓主 我的QQ 273507550 希望你能幫助我 看一下 謝謝  回復(fù)  更多評論
            
          # re: 使用UDDI4J連接JUDDI
          2010-04-01 16:14 | sjx
          @lilin138000
          我用的apache的soap.jar包,測試成功,你可以試試,下載地址:http://mirrors.ibiblio.org/pub/mirrors/maven2/soap/soap/2.3.1/soap-2.3.1.jar  回復(fù)  更多評論
            
          # re: 使用UDDI4J連接JUDDI
          2010-04-30 11:27 | happy
          樓主你好,我遇到了下面問題,請您幫我解答一下,謝謝了
          *********** Running PublisherAssertionExample ***********

          Get authtoken
          Fault string, and possibly fault code, not set
          at org.uddi4j.UDDIElement.<init>(UDDIElement.java:40)
          at org.uddi4j.response.AuthToken.<init>(AuthToken.java:85)
          at org.uddi4j.client.UDDIProxy.get_authToken(UDDIProxy.java:1626)
          at PublisherAssertionExample.run(PublisherAssertionExample.java:79)
          at PublisherAssertionExample.main(PublisherAssertionExample.java:57)  回復(fù)  更多評論
            
          # re: 使用UDDI4J連接JUDDI
          2010-05-04 16:51 | happy
          問題解決了,原來自己建表時(shí)出錯了,只建立了publisher表,而沒有建立其它表,重新運(yùn)行create_database.sql及insert_publisher.sql后問題解決了!  回復(fù)  更多評論
            
          # re: 使用UDDI4J連接JUDDI
          2010-09-28 22:42 | Wordsworth
          我是菜鳥,剛剛接觸。請問,我運(yùn)行SaveBusinessExample.java的時(shí)候出現(xiàn)下面的錯誤

          *********** Running FindBusinessExample ***********
          Exception in thread "main" java.lang.NullPointerException
          at org.uddi4j.client.UDDIProxy.setConfiguration(UDDIProxy.java:234)
          at org.uddi4j.client.UDDIProxy.<init>(UDDIProxy.java:129)
          at FindBusinessExample.run(FindBusinessExample.java:54)
          at FindBusinessExample.main(FindBusinessExample.java:44)

          請問是什么問題啊。謝謝  回復(fù)  更多評論
            
          # re: 使用UDDI4J連接JUDDI
          2010-09-28 22:44 | Wordsworth
          不好意思,剛才錯誤復(fù)制錯了,下面是錯誤內(nèi)容

          *********** Running SaveBusinessExample ***********
          Exception in thread "main" java.lang.NullPointerException
          at org.uddi4j.client.UDDIProxy.setConfiguration(UDDIProxy.java:234)
          at org.uddi4j.client.UDDIProxy.<init>(UDDIProxy.java:129)
          at SaveBusinessExample.run(SaveBusinessExample.java:60)
          at SaveBusinessExample.main(SaveBusinessExample.java:50)
            回復(fù)  更多評論
            

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 黄冈市| 重庆市| 沁水县| 岱山县| 大足县| 昌黎县| 忻州市| 赤城县| 伊通| 蒙山县| 潞西市| 阳山县| 肇庆市| 抚州市| 张北县| 京山县| 通州市| 延长县| 恩平市| 和静县| 萝北县| 峨眉山市| 黑河市| 聂荣县| 怀安县| 怀远县| 噶尔县| 黔东| 门头沟区| 无为县| 海伦市| 徐汇区| 林甸县| 鄂托克旗| 余干县| 滨海县| 饶阳县| 普安县| 防城港市| 青田县| 镇安县|