|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.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,那他就是整型而不是对象,转换类型是还得借助包装类。 |
|