-- 作者:sandxu
-- 发布时间:3/28/2006 12:10:00 PM
-- 在JBoss.net集成的juddi中发布服务的问题
我的JBoss版本是jboss-4.0.0DR2 获取发布代理的代码: import java.net.MalformedURLException; import org.uddi4j.client.UDDIProxy; import org.uddi4j.transport.ApacheSOAPTransport; public class ProxyFactory { static String DEFAUTL = "http://localhost:8080/jboss-net/services/uddi"; public static void main(String[] args) { } public static UDDIProxy createProxy(){ UDDIProxy proxy = new UDDIProxy(); try { proxy.setInquiryURL(DEFAUTL); proxy.setPublishURL(DEFAUTL); } catch (MalformedURLException e) { e.printStackTrace(); } return proxy; } public static UDDIProxy createProxy(String Inquiry,String Publish){ UDDIProxy proxy = new UDDIProxy(); try { proxy.setInquiryURL(Inquiry); proxy.setPublishURL(Publish); } catch (MalformedURLException e) { e.printStackTrace(); } return proxy; } } 发布一个服务的代码: import java.util.Iterator; import java.util.Vector; import org.uddi4j.client.UDDIProxy; import org.uddi4j.datatype.Name; import org.uddi4j.datatype.business.BusinessEntity; import org.uddi4j.datatype.business.Contact; import org.uddi4j.datatype.business.Contacts; import org.uddi4j.datatype.business.Email; import org.uddi4j.response.AuthToken; import org.uddi4j.response.BusinessDetail; import org.uddi4j.response.BusinessInfo; import org.uddi4j.response.BusinessList; import org.uddi4j.response.ServiceInfo; import org.uddi4j.response.ServiceInfos; import org.uddi4j.util.FindQualifier; import org.uddi4j.util.FindQualifiers; public class BusinessEntityClient { public static void main(String[] args) throws Exception { BusinessEntityClient client = new BusinessEntityClient(); client.SaveBusiness(client.createBusinessEntity(),ProxyFactory.createProxy()); Vector bkeys = client.findBusinessKeys("liuyang",ProxyFactory.createProxy()); System.out.println("查询到的businessKey :"); for(Iterator it = bkeys.iterator();it.hasNext();){ System.out.println(it.next()); } } public void SaveBusiness(BusinessEntity entity,UDDIProxy proxy)throws Exception { String login = "user1"; String password = "pass1"; AuthToken token = proxy.get_authToken(login, password); Vector businessEntityVector = new Vector(); businessEntityVector.addElement(entity); String ts = token.getAuthInfoString(); System.out.println("ts:"+ts); BusinessDetail businessDetail = proxy.save_business(ts, businessEntityVector); Vector businessEntities = businessDetail.getBusinessEntityVector(); if (businessEntities.size() > 0) { BusinessEntity returnedBusinessEntity = (BusinessEntity)(businessEntities.elementAt(0)); String businessKey = returnedBusinessEntity.getBusinessKey(); System.out.println("创建的businessKey : "+businessKey); } } public Vector findBusinessKeys(String bename,UDDIProxy proxy) { Vector names = new Vector(); names.add(new Name(bename)); //Represents the name element within the UDDI version 2.0 schema FindQualifiers findQualifiers = new FindQualifiers(); //Represents the findQualifier element within the UDDI version 2.0 schema Vector qualifier = new Vector(); qualifier.add(new FindQualifier("exactNameMatch")); findQualifiers.setFindQualifierVector(qualifier); BusinessList list; Vector bkeys = new Vector(); try { list = proxy.find_business(names,null,null,null,null,findQualifiers,5); Vector bis = list.getBusinessInfos().getBusinessInfoVector(); for(Iterator it = bis.iterator();it.hasNext();){ BusinessInfo bi = (BusinessInfo) it.next(); String bkey = bi.getBusinessKey(); showServiceInfos(bi.getServiceInfos()); System.out.println(bkey); bkeys.add(bkey); } } catch (Exception e) { e.printStackTrace(); } return bkeys; } public BusinessEntity createBusinessEntity() { BusinessEntity businessEntity = new BusinessEntity("", "testHello"); businessEntity.setAuthorizedName("testHello"); businessEntity.setDefaultDescriptionString("xmessenger 消息服务 "); Contact contact = new Contact ("liuyang"); Email email = new Email("jdcyang@sina.com"); Vector emailVector = new Vector(); emailVector.addElement(email); contact.setEmailVector(emailVector); Contacts contacts = new Contacts(); Vector contactvt = new Vector(); contactvt.addElement(contact); contacts.setContactVector(contactvt); businessEntity.setContacts(contacts); return businessEntity; } public void showServiceInfos(ServiceInfos sifs){ Vector sivt = sifs.getServiceInfoVector(); for(Iterator it = sivt.iterator();it.hasNext();){ ServiceInfo si = (ServiceInfo) it.next(); System.out.println("服务名称 : "+si.getName().getText()); System.out.println("服务的ServiceKey : "+ si.getServiceKey()); System.out.println("服务供应商的BusinessKey : "+si.getBusinessKey()); } } } 运行提示: Try to insert null into a non-nullable column in statement [INSERT INTO BUSINESS_ENTITY (BUSINESS_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,LAST_UPDATE) VALUES ('CADEC0B0-BE09-11DA-A492-BCB2AB5E2344',NULL,'user1','J.B.Oss','2006-03-28 11:22:04.0')] 将null值插入到非空的authorized_name列中 请问怎么处理? BUSINESS_KEY、authorized_name、OPERATOR不是都由uddi提供的吗? 谢谢
|