当前位置:早雪网网络学院编程文档Java → jUDDI 简单安装使用

jUDDI 简单安装使用

减小字体 增大字体 作者:未知  来源:supcode.com收集整理  发布时间:2005-6-29 19:23:24

来源: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\sql\mysql\create_database.sql, juddi-0.9rc3\sql\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\src\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\samples.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,因此需要修改成相应的类,代码修改如下:
# -----------------------------------------------------------------------

[1] [2]  下一页


Tags:jUDDI,简单,安装,使用
[数据载入中...] [返回上一页] [打 印]

文章评论评论内容只代表网友观点,与本站立场无关!

  评论人:Ivan   打分:0 分  发表时间:2007-11-13 21:25:14
· Nice[URL=http://lancia-flaminia.burnsvillemazda.cn#]lanciafl...
  评论人:ucowdquglw   打分:0 分  发表时间:2007-11-12 13:29:52
· Hello!GoodSite!Thanksyou!piwdmyznpn