JAVA编程:jUDDI 复杂安装利用
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。来历:http://xio.mblogger.cn
jUDDI,发音(Judy),是服务于WebServices的UDDI的java完成开源包。1安装1.1下载下载地点:http://ws.apache.org/juddi/releases.html今朝的jUDDI的最新版本是0.9rc3(ReleaseCandidate#3forVersion0.9),不外在这个版本中有一些的bug。juddi0.9版本公布应当是不会久,能够参考上面这段话,是ViensStephen(juddi次要开辟者之一)在maillist中说的:weveclosed40+issuessinceJanuary1,2005.Wellbereleasinga0.9rc4assoonasAxis1.2finalisreleasedandthenreleasinga0.9finalafewweeksafterthat.(March22,2005)1.2数据库安装UDDI必要有一个中央来存储注册的数据,因而起首要选择一个干系数据库安装。JUDDI可使用任何撑持ANSIstandardSQL干系数据库(比方MySQL,DB2,Sybase,JdataStore等)。本实例利用MySQL。数据库安装完成后,在MySQL数据库中运转juddi-0.9rc3qlmysqlcreate_database.sql,juddi-0.9rc3qlmysqlinsert_publishers.sql。数据库筹办完成。1.3安装juddi及设置起首将juddi-0.9rc3webapp下的juddi文件夹复制到Tomcat下的webapps中,并将mysql-connector-java-3.1.7mysql-connector-java-3.1.7-bin.jar复制到Tomcat5.0webappsjuddiWEB-INFlib下。上面就是毗连数据库的设置,在Tomcat/conf/server.xml的Hostelement中到场:
<Contextpath="/juddi"docBase="juddi"debug="5"reloadable="true"crossContext="true"><LoggerclassName="org.apache.catalina.logger.FileLogger"prefix="localhost_juddiDB_log"suffix=".txt"timestamp="true"/><Resourcename="jdbc/juddiDB"auth="Container"type="javax.sql.DataSource"/><ResourceParamsname="jdbc/juddiDB"><parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter><!--MaximumnumberofdBconnectionsinpool.Makesureyouconfigureyourmysqldmax_connectionslargeenoughtohandleallofyourdbconnections.Setto0fornolimit.--><parameter><name>maxActive</name><value>100</value></parameter><!--MaximumnumberofidledBconnectionstoretaininpool.Setto0fornolimit.--><parameter><name>maxIdle</name><value>30</value></parameter><parameter><name>maxWait</name><value>10000</value></parameter><!--MySQLdBusernameandpasswordfordBconnections帐号暗码依据数据库安拆卸置修正--><parameter><name>username</name><value>root</value></parameter><parameter><name>password</name><value>****</value></parameter><!--ClassnameformysqlJDBCdriver--><parameter><name>driverClassName</name><value>com.mysql.jdbc.Driver</value></parameter><!--TheJDBCconnectionurlforconnectingtoyourMySQLdB.TheautoReconnect=trueargumenttotheurlmakessurethatthemm.mysqlJDBCDriverwillautomaticallyreconnectifmysqldclosedtheconnection.mysqldbydefaultclosesidleconnectionsafter8hours.数据库url毗连设置--><parameter><name>url</name><value>jdbc:mysql://host.domain.com:3306/juddi?autoReconnect=true</value></parameter><parameter><name>validationQuery</name><value>selectcount(*)fromPUBLISHER</value></parameter></ResourceParams></Context>
1.4当地安装反省会见http://127.0.0.1:8080/juddi/happyjuddi.jsp页面,此页面反省了jUDDI所必需的包和设置的准确性,并测试数据库毗连是不是乐成。假如没有白色笔墨,即当地安装乐成,便可举行webservices的公布发明等服务。2测试实例以上安装乐成的是UDDI的服务器端,而举行公布、查找服务的客户真个使用则要用jUDDI、UDDI4J等包来举行开辟。我们能够间接利用jUDDI自带的测试代码来举行客户端利用的进修。2.1利用uddi4j测试利用uddi4j作为客户端举行测试。代码地位:juddi-0.9rc3rcuddi4jorgapachejuddiuddi4j新创建好一个工程并引进此代码,然后对代码举行需要的修正,次要是包名和设置。引进需要的包,好比:junit.jar、uddi4j.jar、juddi.jar、soap.jar等(由于欧的代码库中有良多种代码,对应良多包,不晓得其他哪些是必需的了:)。接着是数据库的初始化,必要拔出一个能够增加其他Publisher的Publisher,sql语句:INSERTINTOPUBLISHER(PUBLISHER_ID,PUBLISHER_NAME,ENABLIED,ADMIN)VALUES(juddi,juddiuser,true,true);调试代码后,运转TestAll测试,您大概会发明测试FAILURE良多,这些傍边有些是测试代码的毛病,也有多是juddi-0.9rc3的缺点(juddi-0.9rc3不是正式公布版)。以以下举一些本测试案例测试失利的大概呈现的修正办法:2.1.1加载设置文件时会见不到samples.prop我的办理举措是将创建一个新设置文件地位,在工程目次下的:confamples.prop。在Configurator.load()办法中代码能够如许修正:
Propertiesconfig=newProperties();try{config.load(newjava.io.FileInputStream("./conf/samples.prop"));}catch(Exceptione){System.out.println("Errorloadingsamplespropertyfile
"+e);}
办理办法良多,您能够本人思考。2.1.2TransportClassName设置毛病假如毛病提醒中有如许的呈报,便可能是此毛病:org.xml.sax.SAXParseException:ElementorattributedonotmatchQNameproduction:QName::=(NCName:)?NCName.在以后测试实例代码中的默许设置(samples.prop)中,TransportClassName界说成org.uddi4j.transport.ApacheSOAPTransport,而我们利用的包是axis.jar,因而必要修正成响应的类,代码修正以下:
#-----------------------------------------------------------------------#Transportclassname.Typicallydefinedoncommandlineas#-Dorg.uddi4j.TransportClassName=xxx.#-----------------------------------------------------------------------#TransportClassName=org.uddi4j.transport.ApacheSOAPTransportTransportClassName=org.uddi4j.transport.ApacheAxisTransport#TransportClassName=org.uddi4j.transport.HPSOAPTransport
2.1.3TestFindBusiness案例欠亨过TestFindBusiness中有巨细写婚配测试,可是在juddi-0.9rc3中的巨细写婚配(caseSensitiveMatch)有bug,因而能够将巨细写婚配的测试案例正文失落。2.1.4PublisherManager的代码毛病在测试Test_save_tModel的时分_testAuthTokenExpired()中,我们测试过时考证时,在毛病婚配的时分,会呈现测试失利,假如捕获这个婚配的了局,你会发明,堕落的范例是E_authTokenRequired而不是等候的E_authTokenExpired。这是由于在我们所取得的AuthToken是空的,在本源就是在PublisherManager.getExpiredAuthToken(String,String)办法中,代码:
RegistryProxyproxy=newRegistryProxy();
proxy的实例的设置是空的。因而,我们修正这个办法酿成:
/***changedbyxio*@parampublisherString*@parampasswordString*@paramtestpropsProperties:增添的参数,传进基础设置*@returnString*/publicstaticStringgetExpiredAuthToken(Stringpublisher,Stringpassword,Propertiestestprops){Propertiesprops=newProperties();props.setProperty(RegistryProxy.ADMIN_ENDPOINT_PROPERTY_NAME,testprops.getProperty("adminURL"));props.setProperty(RegistryProxy.INQUIRY_ENDPOINT_PROPERTY_NAME,testprops.getProperty("inquiryURL"));props.setProperty(RegistryProxy.PUBLISH_ENDPOINT_PROPERTY_NAME,testprops.getProperty("publishURL"));RegistryProxyproxy=newRegistryProxy(props);AuthTokentoken=null;AuthInfoauthInfo=null;Stringret=null;try{token=proxy.getAuthToken(publisher,password);authInfo=token.getAuthInfo();ret=authInfo.getValue();System.out.println("getExpiredAuthToken:"+authInfo);proxy.discardAuthToken(authInfo);}catch(Exceptionex){ex.printStackTrace();}returnret;}
2.2利用jUDDI测试在juddi-0.9rc3版本中自带的代码中没有客户真个利用实例,固然附带了全部项目代码的测试代码,可是估量没甚么人喜好从这里抽取学习客户端利用的进修。固然,进修的实例仍是有的,在cvs以后的工程代码中,有个samples的文件夹,这部分代码即是一个非常完全的实例(有几个类没完成,但不影响:)。Cvs服务器数据:http://ws.apache.org/juddi/cvs.htmlWincvs的利用请网高低载浏览。其他:在举行代码进修的同时,倡议浏览webservices相干材料文档。激烈倡议浏览:了解UDDI注册中央的WSDL系列(http://www-900.ibm.com/developerWorks/cn/webservices/ws-uwsdl/part1/)参考材料:http://wiki.apache.org/ws/jUDDI_HOW-TOshttp://ws.apache.org/juddi/lists.html
原xio@qq.com来源:http://xio.mblogger.cn
还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
页:
[1]