guyuehhh 发表于 2017-2-4 10:41:06

用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下面的(下面第二条命令)。当然我们也可以说明我们的数据库的地址(下面第一条命令)。
  建立数据库的命令是:

[*]connect 'jdbc:derby:F:\myRepository\DerbyDatabase\juddi;create=true';
[*]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支持语义技术。
页: [1]
查看完整版本: 用Derby,Tomcat,Juddi和Eclipse来构建UDDI Repository