用Derby,Tomcat,Juddi和Eclipse来构建UDDI Repository

今天终于用Derby,Tomcat,Juddi和Eclipse来构建UDDI Repository,其实没有导师一定要用嵌入式的数据库的要求,我用MySQL和Tomcat等构件的Repository已经运行得很好了,而且我觉得MySQL比较好操作,不像Derby那样要对SQL语言比较熟悉才比较好。

 

1. Derby Plugin是嵌入在Eclipse里面的,启动和构建还是比较方便的,只要把几个相关的Jar文件放到Eclipse的Plugins目录下就可以了,等Eclipse识别了之后,我们就可以给所有的Eclipse中项目建立一个或者多个数据库,默认的数据库是存储在Project下面的(下面第二条命令)。当然我们也可以说明我们的数据库的地址(下面第一条命令)。

建立数据库的命令是:

  1. connect 'jdbc:derby:F:\myRepository\DerbyDatabase\juddi;create=true';
  2. connect 'jdbc:derby:juddi;create=true'

有了数据库之后我们当然要建立库里面表格,我们可以一个表一个表建立,在ij命令符下面,也可以通过SQL文件,一次建立好几个表,往表里存数据也有这么两种方式。

 

2. 要建立UDDI Repository的话,一定要用到JUDDI,这个可以下载到,从apache官方网站上下载juddi-0.9rc4.zip,解压后将juddi.war和文件夹juddi复制到..\tomcat\webapps\下。在sql文件夹内找到mysql文件夹,将里面的create_database.sql , insert_publishers.sql 两个脚本修改一下添加到Derby中去,一个是建立表格一个是申请权限的。

 

3. 把derby.jar,activation.jar,soap.jar 等Jar包放到..\tomcat\common\lib和你的项目...\WEB-INF\lib下

4. 配置Tomcat:

  • Server.xml的修改推荐使用Tomcat的Admin组件完成,完全图形化配置,相当容易。或者按下面的写法 在<GlobalNamingResources></GlobalNamingResources>之间写如下配置(仅供参 考,各位用的时候,请改成自己数据库的配置):
    <Resource
          name="jdbc/juddiDB"
          type="javax.sql.DataSource"
          password="juddi"
          driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
          maxIdle="2"
          maxWait="5000"
          username="juddi"
          url="jdbc:derby:F:/myRepository/DerbyDatabase/juddi"
          maxActive="4"/>
  • 然后,在Tomcat安装目录下/conf/Catalina/localhost文件夹中建立一个和你网站文件夹名字一样的XML文件。例如:TestSourse.xml。内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
     <Resource
          name="jdbc/juddiDB"
          type="javax.sql.DataSource"
          password="juddi"
          driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
          maxIdle="2"
          maxWait="5000"
          username="juddi"
          url="jdbc:derby:F:/myRepository/DerbyDatabase/juddi"
          maxActive="4"/>
    </Context>
    其实就是把Server.xml的内容再重复一遍。这一步非常重要,如果没有这步就会出错,会出现 org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' 
    for connect URL 'null'错误。
  • 最后,在你自己网站的/WEB-INF/web.xml文件中,添加一下代码(参考):
    <resource-ref>
        <description>jUDDI DataSource</description>
        <res-ref-name>jdbc/juddiDB</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
     </resource-ref>

OK。配置全部完成。

 

启动Tomcat,浏览器中输入http://localhost:8080/juddi 则可以看到index页面,点击"validate"页面出现配置信息,可以看到配置是否正确的信息。如果没有错误,则表明安装成功。

 

在用UDDI4J的例子可以检验Repository有没有建好。

 

 

由于嵌入式的Derby只能够支持一个应用程序访问,虽然可以是多线程 的,但是还是不能够满足我的要求,所以我只能用一般的Derby,配置过程和嵌入式的没有什么区别,就是要把derbyclient.jar和derbyNet.jar放到环境变量中。

一切大功告成。

下一步就是要让我的UDDI repository支持语义技术。

你可能感兴趣的:(eclipse,sql,tomcat,jdbc,Derby)