以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Web Services & Semantic Web Services 』  (http://bbs.xml.org.cn/list.asp?boardid=10)
----  在JBoss.net集成的juddi中发布服务的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=10&rootid=&id=29443)


--  作者: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提供的吗?
谢谢


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
3,570.313ms