`
walnut
  • 浏览: 104852 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用uddi4j连接juddi

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

二、 我的环境
环境:win2k + jdk1.5.0 + tomcat5 + mysql4.1 + juddi-0.9rc4 + uddi4j-2.0.5(各种产品的版本没有太大影响)

三、安装与配置juddi
1. 下载juddi-0.9rc4.zip(官方网址:http://ws.apache.org/juddi/releases.html),解压后将juddi-0.9rc4\webapp\juddi拷贝到tomcat的webapp目录下。
2. 确保mysql正确安装,将mysql的jdbc驱动程序拷贝到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数据库的用户名和密码,url为数据库的url,driverClassName是mysql的JDBC驱动程序,如果所用到的数据库版本或是驱动程序版本不同这里也要变化。
4. 新建juddi用到的数据库,并插入数据,具体就是执行\juddi-0.9rc4\sql\mysql文件夹中的两个sql文件:create_database.sql、insert_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','juddi@apache.org','true','true');
这样就插入到表publisher中一条数据,就是一个用户,用户名:juddi,密码:juddi,我们在uddi4j中将用这个用户来创建web服务。
5. 验证安装是否成功。重启tomcat,访问http://localhost:8080/juddi/happyjuddi.jsp,如果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

四、运行uddi4j的示例程序创建、发布、查找web服务
1. 下载uddi4j-bin-2.0.5.zip(附件中有下载)
2. 建立一个工程 名为uddi4jDemo,引入包uddi4j.jar , soap.jar,activation.jar,mail.jar(附件中有下载)。
把uddi4j  sample里面的 samples.prop  configurator.java  SaveBusinessExample.java   FindBusinessExample.java publisherAssertionExample.java  放在工程默认package下
3. 打开samples.prop这个文件 修改设置下参数
设置url
inquiryURL = http://localhost:8080/juddi/inquiry  
publishURL = http://localhost:8080/juddi/publish
设置
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
Sample Business
Sample Business

运行FindBusinessExample.java 
*********** Running FindBusinessExample ***********
Sample Business
Sample Business
Sample Business

因为我运行了三次save  所以有三个 sample business
  • jars.rar (1.1 MB)
  • 描述: 内含:uddi4j.jar,soap.jar,activation.jar,mail.jar,mysqldriver.jar
  • 下载次数: 1067
分享到:
评论
5 楼 bjzk_2010 2011-04-27  
楼主还说没jar包冲突   我就发现一个
*********** Running SaveBusinessExample ***********

Get authtoken
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
at javax.mail.internet.MimeUtility.<clinit>(MimeUtility.java:1161)
at javax.mail.internet.ParameterList.quote(ParameterList.java:334)
at javax.mail.internet.ParameterList.toString(ParameterList.java:304)
at javax.mail.internet.ContentType.toString(ContentType.java:207)
at javax.mail.internet.MimeMultipart.<init>(MimeMultipart.java:167)
at org.apache.soap.rpc.SOAPContext.addBodyPart(SOAPContext.java:322)
at org.apache.soap.rpc.SOAPContext.setRootPart(SOAPContext.java:387)
at org.apache.soap.rpc.SOAPContext.setRootPart(SOAPContext.java:426)
at org.apache.soap.rpc.SOAPContext.setRootPart(SOAPContext.java:401)
at org.apache.soap.transport.TransportMessage.save(TransportMessage.java:303)
at org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.java:308)
at org.apache.soap.messaging.Message.send(Message.java:123)
at org.uddi4j.transport.ApacheSOAPTransport.send(ApacheSOAPTransport.java:78)
at org.uddi4j.transport.TransportBase.send(TransportBase.java:57)
at org.uddi4j.client.UDDIProxy.send(UDDIProxy.java:1942)
at org.uddi4j.client.UDDIProxy.get_authToken(UDDIProxy.java:1626)
at com.SaveBusinessExample.run(SaveBusinessExample.java:74)
at com.SaveBusinessExample.main(SaveBusinessExample.java:52)
4 楼 jackqian 2009-03-02  
Error loading samples property file
java.io.FileNotFoundException: samples.prop (系统找不到指定的文件。)

这里什么原因呢/
3 楼 lxy417 2008-07-27  
[size=small]
请问我现在写了一个服务想把它注册在自己配置的私有注册中心,我用的juddi。
该怎么注册呢?是自己要写程序注册吗?有没有界面操作可以进行注册的?
这个问题好长时间都没有搞明白,希望您能够抽出时间给我回复一下!十分感谢了!
[/size]
2 楼 walnut 2007-11-28  
BusinessDetail bd = proxy.save_business(token.getAuthInfoString(),entities);
应该是在上面一行出的错误,检查一下上面这句中的3个对象是否为null吧 看看谁错了 goodluck
1 楼 luyu 2007-11-22  
*********** Running SaveBusinessExample ***********

Get authtoken
Returned authToken:authToken:685EF280-9854-11DC-B280-E82F9666E69E

Save 'Sample Business'
authToken:685EF280-9854-11DC-B280-E82F9666E69E
java.lang.NullPointerException
at org.uddi4j.UDDIException.isValidElement(UDDIException.java:111)
at org.uddi4j.UDDIElement.<init>(UDDIElement.java:38)
at org.uddi4j.response.BusinessDetail.<init>(BusinessDetail.java:85)
at org.uddi4j.client.UDDIProxy.save_business(UDDIProxy.java:1700)
at SaveBusinessExample.run(SaveBusinessExample.java:91)
at SaveBusinessExample.main(SaveBusinessExample.java:50)
这是我的运行结果,请问哪里是怎么回事?请详细说明!Thanks!

相关推荐

    使用UDDI4J连接JUDDI

    本部分详细介绍如何使用JDK1.5、Tomcat5.5、MySql和Juddi搭建UDDI服务器,以及如何通过UDDI4J连接JUDDI。 ##### **软件版本** - JDK: jdk-1_5_0_06-windows-i586-p.exe - Tomcat: tomcat-5.5.9.exe - MySql: mysql...

    Juddi2.0.1+Apache-Tomcat-6.0.36+MySQL环境搭建测试

    本文将详细介绍如何在您的计算机上搭建一个基于JUDDI 2.0.1、Apache Tomcat 6.0.36和MySQL的环境,并通过UDDI4J注册和发布Web服务。这一过程涉及多个技术组件,每个都有其特定的角色和功能。 首先,让我们了解这些...

    uddi wsdl教程汇总

    之后我选择用UDDI4J连接JUDDI,UDDI4J是Apache的,国内有相关的教程,按教程一步步做下来, 搭建成功了,教程有提供服务发布的源码实例,java版的,我配置了一下,成功发布和注册服务到UDDI注册中心,get auto_token...

    连接uddi所需要的jar包

    logging-1.0.4.jar、commons-pool.jar、dom4j-1.6.1.jar、jaxrpc.jar、juddi-client-3.0.0.jar、juddi-core-3.0.0.jar、junit-dep-4.7.jar、log4j-1.2.13.jar、mysql-connector-java-5.1.17-bin.jar、uddi-ws-3.0.0....

    juddi v2 安装

    特别是Tomcat的JVM必须指向JDK 1.5的JVM,这是由于juddi依赖于UDDI4J库,而该库可能不完全支持更高版本的JDK。 2. **Tomcat 6.0**:Tomcat作为应用服务器,用于部署和运行juddi服务。选择6.0版本是为了与JDK 1.5...

    面向物流应用场景的Web服务查询与组合 (2009年)

    文章探讨了面向物流场景的Web服务查询与组合的智能化方法,并通过创建JAX-WS注册中心(Juddi),结合Juddi和UDDI4J技术实现面向物流场景的Web服务发布与查询。此外,还利用业务流程执行语言(BPEL)技术进行服务选择...

Global site tag (gtag.js) - Google Analytics