JUDDI配置

   有现成的配置资料,但在配置过程中还是出现了好多问题,这里把自己的配置过程详细记录一下:

   原来的文档,大部分都是正确的,关键是java版本和Tomcat的版本问题。

   原文加上我自己的改动:

   一、简介
IBM
发布的 uddi4jUDDIjava实现,它包含发布、查找、取消web服务的API。而juddiapache组织的一个开源项目,它部署在tomcat等服务器上是UDDI的服务器。
本文的主要内容:
1.
利用uddi4j API创建web服务;
2.
将创建好的web服务发布到juddi的服务器上;
3.
juddi服务器上查询web服务。

二、 我的环境
环境:win xp + jdk1.5.0 + tomcat5.0.30 + mysql4.1.22 + juddi-0.9rc4 + uddi4j-2.0.5 + xalan-j_2_7_0

注:最好按照所给版本,不然有的jar包会冲突,我第一次照着网上给的配置就总是jar包冲突。尤其是jdk版本和tomcat的版本(还有关于xml解析的两个jar包)。

三、安装与配置juddi
1.
下载juddi-0.9rc4.zip(官方网址:[url]http://ws.apache.org/juddi/releases.html[/url] ,解压后将juddi-0.9rc4\webapp\juddi拷贝到tomcatwebapp目录下。
2.
确保mysql正确安装,将mysqljdbc驱动程序拷贝到tomcatcommon\lib下,我这里用到的是mysql-connector-java-5.1.5-bin.jar。可以到mysql的官网上下。
3.
修改tomcat/conf/server.xml在后添加如下:
<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>

其中:usernamepasswordmysql数据库的用户名和密码,url为数据库的urldriverClassNamemysqlJDBC驱动程序,如果所用到的数据库版本或是驱动程序版本不同这里也要变化。
4.
新建juddi用到的数据库,并插入数据,具体就是执行\juddi-0.9rc4\sql\mysql文件夹中的两个sql文件:create_database.sqlinsert_publishers.sql,前一个sql文件可以直接执行,将创建数据库juddi,后一个sql文件要修改成如下:
USE juddi;
-- *** SAMPLE PUBLISHER ***
INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN) VALUES ('juddi','juddi','[email][email protected][/email]','true','true');
这样就插入到表publisher中一条数据,就是一个用户,用户名:juddi,密码:juddi,我们在uddi4j中将用这个用户来创建web服务。
5.
验证安装是否成功。重启tomcat,访问[url]http://localhost:8080/juddi/happyjuddi.jsp[/url],如果jUDDI DataSource Validation段如下面的效果而没有用红色字体报错则说明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


注: 前三步基本都没有问题,第四步很有可能会遇到问题。具体错误我给忘记了,记得是tomcat对于xml解析和jdk解析xml所用的类冲突,所以要把 tomcat解析xmljar包替换一下:把tomcat\common\endorsed下的xercesImpl.jarxml- apis.jar替换成xalanjar包:我用的是xalan-j_2_7_0-bin.zip。可以到apache的官网上下。解压后得到的四个 jar包:serializer.jarxalan.jarxercesImpl.jarxml-apis.jar都放到了tomcat\ common\endorsed下面。


四、运行uddi4j的示例程序创建、发布、查找web服务
1.
下载uddi4j-bin-2.0.5.zip
2.
建立一个工程 名为uddi4jDemo,引入包uddi4j.jar soap.jaractivation.jarmail.jar
uddi4j sample里面的 samples.prop configurator.java SaveBusinessExample.java FindBusinessExample.java publisherAssertionExample.java 放在工程默认package
3.
打开samples.prop这个文件 修改设置下参数
设置url
inquiryURL = [url]http://localhost:8080/juddi/inquiry[/url]
publishURL = [url]http://localhost:8080/juddi/publish[/url]
设置
userid = juddi
password = juddi
设置soap transport 默认就是这个
TransportClassName=org.uddi4j.transport.ApacheSOAPTransport
4.
运行结果
运行 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
运行FindBusinessExample.java
*********** Running FindBusinessExample ***********
Sample Business   

上 面是人家给的例子的运行程序:我根据要求对给的实例稍加改动,便完成了老师的工作。老师要求做一个发布服务和查询服务的界面,但由于老师是在网格符合相结 合的需要使用一下辅助类来保存Qos参数,我们使用了CategoryBagKeyedReference两个类来存放辅助存放。具体代码这里先不给 了。主要是PublishBindingTemplate.javaFindBindingTemplate.java

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章