如何在Tomcat上部署juddiv3

真正是被juddiv3折腾的够呛啊,好不容易连上数据库,结果登录进去后juddi的页面还不显示,结果,竟然是在配置文件里面少放了一个文件,网上找了半天没找着,还是我自己试出来的啊。。。抓狂了,把这段心酸苦逼的历程记录一下快哭了

参考文章:http://endual.iteye.com/blog/1142985 &&http://blog.staven.mobi/?p=380

准备工作:

  • juddi-portal-bundle-3.0.0.zip  下载地址:http://jarvana.com/jarvana/archive-details/org/apache/juddi/juddi-portal-bundle/3.0.0/juddi-portal-bundle-3.0.0.zip 。我这里用的是v3.0.0 一开始想用v3.0.4版的,这一版的默认是用openjpa做持久层,连接mysql数据库的时候总是连接不上,于是换成据说稳定的hibernate做持久层的v3.0.0版,果然能连接上数据库。
  • mysql-5.5.25a-win32.zip    下载地址:http://www.mysql.com/downloads/mysql/。我这里用的是免安装版本的,可能是我的数据库安装出现问题,使用安装版的时候总是提示接口冲突,我还不想换成别的端口号,于是就下了个免安装版本的,可以使用了。环境变量的path中加入D:\mysql-5.5.25a-win32\bin;,就可以直接在命令窗口中启动mysql(D:\mysql-5.5.25a-win32为我的mysql解压的位置,因为是免安装的)
  • apache-tomcat-6.0.10.exe  这个就不用说了,相信都已经安装过了,环境变量配置清楚,要不会出现问题。我的电脑->属性->高级->环境变量->系统变量。添加CATALINA_HOME=CATALINA_BASE=TOMCAT_HOME=“tomcat的安装目录”,classpath中加入变量值%CATALINA_HOME%\lib\servlet-api.jar;  ,path中加入变量值%CATALINA_HOME%\bin;
  • jdk-6u10-rc-bin-b28-windows-i586-p-21_jul_2008.exe  这个就更不用说了,还是说一下环境变量。JAVA_HOME="C:\Program Files\Java\jdk1.6.0_10"(我的安装目录),classpath中加入变量值.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(前面的点要加上),path中加入变量值%JAVA_HOME%\jre\bin;%JAVA_HOME%\bin;

1. 首先进行数据库的准备

  • 启动数据库 mysqld --console,mysql启动成功,在进行操作的时候这个页面不要关,不然会发生错误。
  •  
  • 新打开一个命令行窗口。进入数据库 mysql -uroot -p123456(这里输入自己的用户名和密码),可以再创建一个新用户create user juddi@localhost identified by "juddi"
  • 新建数据库 create database juddiv3; 这个数据库就暂放着,一会进行连接的时候就会将juddiv3自带的表传进去了,之前我试过juddi-0.9rc4的时候,他是有一个数据库文件让你自己导,juddiv3就不需要,连接后启动tomcat就能将数据表导入。

2. 在tomcat上部署juddiv3

  • juddi-portal-bundle-3.0.0.zip解压,将webapps中的juddiv3, pluto,uddi-portlets这三个文件包拷贝到tomcat安装路径下的webapps中,我的路径为C:\Program Files\Tomcat 6.0\webapps。
  • 将juddi-portal-bundle-3.0.0目录下的lib中的包拷贝到tomcat路径下的lib中,我的路径为C:\Program Files\Tomcat 6.0\lib。
  • 进入C:\Program Files\Tomcat 6.0\webapps\juddiv3\META-INF,打开其中的context.xml,编辑如下:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <Context>
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        <!--  -->
        <Resource name="jdbc/juddiDB" auth="Container"
                type="javax.sql.DataSource" username="juddi" password="juddi"
                driverClassName="com.mysql.jdbc.Driver" 
                url="jdbc:mysql://localhost:3306/juddiv3"
                maxActive="8" 
                />
    </Context>
  • context.xml中的resource name "juddiDB"需要和以下文件中的某些字段匹配:
  • C:\Program Files\Tomcat 6.0\webapps\juddiv3\WEB-INF\web.xml   中<res-ref-name>值设置为jdbc/juddiDB
  • C:\Program Files\Tomcat 6.0\webapps\juddiv3\WEB-INF\classes\juddiv3.properties 中的juddi.persistenceunit.name设置为juddiDB。
  • C:\Program Files\Tomcat 6.0\webapps\juddiv3\WEB-INF\classes\META-INF\persistence.xml 中的persistence-unit 的name属性设置为为juddiDB。<jta-data-source>设置为java:comp/env/jdbc/juddiDB。并确保persistence.xml中的有 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>。
  • C:\Program Files\Tomcat 6.0\webapps\uddi-portlets\WEB-INF\classes目录下也有一个juddiv3.properties文件,同样,将juddi.persistenceunit.name设置为juddiDB。
  • C:\Program Files\Tomcat 6.0\webapps\uddi-portlets\WEB-INF\classes\META-INF目录中有两个文件uddi.xml和uddi.xml.sales,替换成如下文件:

        uddi.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<uddi>
    <reloadDelay>5000</reloadDelay>
    <manager name="uddi-portlet-manager">
		<nodes>
			<node isHomeJUDDI="true">
				<name>default-ws</name>
				<properties>
					<property name="serverName" value="localhost"/>
					<property name="serverPort" value="8080"/>
					<property name="rmiPort" value="1099"/>
				</properties>
				<description>Main jUDDI node</description>
				<!-- JAX-WS Transport -->
				<proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
				<custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer?wsdl</custodyTransferUrl>
				<inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry?wsdl</inquiryUrl>
		        <publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish?wsdl</publishUrl>
		        <securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security?wsdl</securityUrl>
				<subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription?wsdl</subscriptionUrl>
				<subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener?wsdl</subscriptionListenerUrl>
				<juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api?wsdl</juddiApiUrl>
				<!-- In VM Transport Settings 
				<proxyTransport>org.apache.juddi.v3.client.transport.InVMTransport</proxyTransport>
				<custodyTransferUrl>org.apache.juddi.api.impl.UDDICustodyTransferImpl</custodyTransferUrl>
				<inquiryUrl>org.apache.juddi.api.impl.UDDIInquiryImpl</inquiryUrl>
		        <publishUrl>org.apache.juddi.api.impl.UDDIPublicationImpl</publishUrl>
		        <securityUrl>org.apache.juddi.api.impl.UDDISecurityImpl</securityUrl>
				<subscriptionUrl>org.apache.juddi.api.impl.UDDISubscriptionImpl</subscriptionUrl>
				<subscriptionListenerUrl>org.apache.juddi.api.impl.UDDISubscriptionListenerImpl</subscriptionListenerUrl>
				<juddiApiUrl>org.apache.juddi.api.impl.JUDDIApiImpl</juddiApiUrl>
				-->
				<!-- RMI Transport Settings 
				<proxyTransport>org.apache.juddi.v3.client.transport.RMITransport</proxyTransport>
				<custodyTransferUrl>/juddiv3/UDDICustodyTransferService</custodyTransferUrl>
				<inquiryUrl>/juddiv3/UDDIInquiryService</inquiryUrl>
		        <publishUrl>/juddiv3/UDDIPublicationService</publishUrl>
		        <securityUrl>/juddiv3/UDDISecurityService</securityUrl>
				<subscriptionUrl>/juddiv3/UDDISubscriptionService</subscriptionUrl>
				<subscriptionListenerUrl>/juddiv3/UDDISubscriptionListenerService</subscriptionListenerUrl>
				<juddiApiUrl>/juddiv3/JUDDIApiService</juddiApiUrl>
				<javaNamingFactoryInitial>org.jnp.interfaces.NamingContextFactory</javaNamingFactoryInitial>
				<javaNamingFactoryUrlPkgs>org.jboss.naming</javaNamingFactoryUrlPkgs>
				<javaNamingProviderUrl>jnp://${serverName}:${rmiPort}</javaNamingProviderUrl>
				-->
			</node>
		</nodes>
		<clerks registerOnStartup="false">
		   <clerk name="MarketingCratchit" node="default-ws" publisher="marketing" password="marketing"/> 
	   </clerks>
	</manager> 
   
</uddi>

uddi.xml.sales

<?xml version="1.0" encoding="ISO-8859-1" ?>

<uddi>
    <reloadDelay>5000</reloadDelay>
    <manager name="uddi-portlet-manager">
		<nodes>
			<node isHomeJUDDI="true">
				<name>default-ws</name>
				<properties>
					<property name="serverName" value="sales"/>
					<property name="serverPort" value="8080"/>
					<property name="rmiPort" value="1099"/>
				</properties>
				<description>Main jUDDI node</description>
				<!-- JAX-WS Transport -->
				<proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
				<custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer?wsdl</custodyTransferUrl>
				<inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry?wsdl</inquiryUrl>
		        <publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish?wsdl</publishUrl>
		        <securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security?wsdl</securityUrl>
				<subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription?wsdl</subscriptionUrl>
				<subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener?wsdl</subscriptionListenerUrl>
				<juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api?wsdl</juddiApiUrl>
			</node>
			<node>
				<name>marketing-ws</name>
				<properties>
					<property name="serverName" value="marketing"/>
					<property name="serverPort" value="8080"/>
				</properties>
				<description>jUDDI node in other Department</description>
				<proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
				<custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer?wsdl</custodyTransferUrl>
				<inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry?wsdl</inquiryUrl>
		        <publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish?wsdl</publishUrl>
		        <securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security?wsdl</securityUrl>
				<subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription?wsdl</subscriptionUrl>
				<subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener?wsdl</subscriptionListenerUrl>
				<juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api?wsdl</juddiApiUrl>
			</node>
		</nodes>
		<clerks registerOnStartup="true">
		   <clerk name="SalesCratchit" node="default-ws" publisher="sales" password="sales"/>
	       <clerk name="MarketingCratchit" node="marketing-ws" publisher="sales" password="sales"/>
	   </clerks>
	</manager> 
   
</uddi>

 

在该目录下再添加一个uddi.xml.marketing

<?xml version="1.0" encoding="ISO-8859-1" ?>

<uddi>
    <reloadDelay>5000</reloadDelay>
    <manager name="uddi-portlet-manager">
		<nodes>
			<node isHomeJUDDI="true">
				<name>default-ws</name>
				<properties>
					<property name="serverName" value="marketing"/>
					<property name="serverPort" value="8080"/>
					<property name="rmiPort" value="1099"/>
				</properties>
				<description>Main jUDDI node</description>
				<!-- JAX-WS Transport -->
				<proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
				<custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer?wsdl</custodyTransferUrl>
				<inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry?wsdl</inquiryUrl>
		        <publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish?wsdl</publishUrl>
		        <securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security?wsdl</securityUrl>
				<subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription?wsdl</subscriptionUrl>
				<subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener?wsdl</subscriptionListenerUrl>
				<juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api?wsdl</juddiApiUrl>
			</node>
			<node>
				<name>sales-ws</name>
				<properties>
					<property name="serverName" value="sales"/>
					<property name="serverPort" value="8080"/>
				</properties>
				<description>jUDDI node in other Department</description>
				<proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
				<custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer?wsdl</custodyTransferUrl>
				<inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry?wsdl</inquiryUrl>
		        <publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish?wsdl</publishUrl>
		        <securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security?wsdl</securityUrl>
				<subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription?wsdl</subscriptionUrl>
				<subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener?wsdl</subscriptionListenerUrl>
				<juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api?wsdl</juddiApiUrl>
			</node>
		</nodes>
		<clerks registerOnStartup="true">
		   <clerk name="MarketingCratchit" node="default-ws" publisher="marketing" password="marketing"/> 
	       <clerk name="SalesCratchit"     node="sales-ws"   publisher="marketing" password="marketing"/>
	   </clerks>
	</manager> 
   
</uddi>
  • 打开C:\Program Files\Tomcat 6.0\conf目录下的tomcat-users.xml,添加tomcat的用户名和密码,编辑如下:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="tomcat"/>
  <role rolename="pluto"/>
  <user username="tomcat" password="tomcat" roles="manager"/>
  <user username="marketing" password="marketing" roles="pluto,tomcat,manager"/>
  <user username="root" password="root" roles="pluto,tomcat,manager"/>
  <user username="sales" password="sales" roles="pluto,tomcat,manager"/>
  <user username="uddi" password="uddi" roles="pluto,tomcat,manager"/>
</tomcat-users>
  • 打开C:\Program Files\Tomcat 6.0\conf目录下的context.xml,编辑如下:
<!-- The contents of this file will be loaded for each web application -->
<Context>

   <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Resource name="jdbc/juddiDB" auth="Container"
        type="javax.sql.DataSource" username="juddi" password="juddi"
        driverClassName="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://localhost:3306/juddiv3"
        maxActive="8"/>

</Context>


3.重新启动tomcat,键入http://localhost:8080/juddiv3/,出现juddiv3的欢迎界面
点击JUDDI Portal,输入默认用户名root和密码root,这样就进入juddi的门户网站,这里出现了一个问题,也是纠结了我很久的问题,无法看到juddi下的页面显示,也就是往juddi中注册的服务列表看不到!!这不就成了个摆设了!!不过终于被我解决了~~

打开C:\Program Files\Tomcat 6.0\conf的目录,发现多了一个Catalina文件包,进入C:\Program Files\Tomcat 6.0\conf\Catalina\localhost,问题就出在这里面,这里面缺少一个配置文件,以至于juddiv3无法访问uddi-portlets中的东东,打开juddi-portal-bundle-3.0.0目录下的conf,,发现其中也有一个Catalina文件包,打开,打开,里面有一个pluto.xml文件,将它复制到C:\Program Files\Tomcat 6.0\conf\Catalina\localhost路径下,再重启tomcat,试试看~~好用啦!!这是我的界面,应该是只有第一个节点,下面是我自己练习时添加的,无视掉~~

 

4.这样就在tomcat上部署了juddiv3~~数据库也已经悄悄的传过去了~~现在看看表信息吧~~

我是直接用navicat连接mysql看的,也可以进入命令行窗口进行查看。

进入命令行窗口,键入,>mysql -ujuddi -pjuddi(这是之前新建的用户),>show databases;,>use juddiv3;,>show tables;,将能看到juddi的表了

 

5.大功告成~~撒花微笑

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值