⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 savebinding.java

📁 OpenWeb-UDDI是UDDI V2标准的实现
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    void saveTmodelInstanceInfo(TModelInstanceInfo tmiInfo, String bindingKey)
        throws SQLException, UDDIXmlException, ClassNotFoundException
    {
        System.out.println("saveTmodelInstanceInfo begin");
        Statement stmt1 = con.createStatement();
        Enumeration enum = tmiInfo.getDescription();
        System.out.println("after getDescription");
        String tModelInstdesc;
        for(tModelInstdesc = ""; enum.hasMoreElements(); tModelInstdesc = tModelInstdesc + ((UddiObject)enum.nextElement()).getValue());
        System.out.println(tModelInstdesc);
        String tmodelKey = tmiInfo.getTModelKey().getValue();
        InstanceDetails insDetails = new InstanceDetails();
        insDetails = null;
        if(tmiInfo.getElement("instanceDetails") != null)
            insDetails = tmiInfo.getInstanceDetails();
        String instanceDetailDesc = null;
        String overViewDesc = null;
        String overViewUrl = null;
        String inParms = null;
        if(insDetails != null)
        {
            for(enum = insDetails.getDescription(); enum.hasMoreElements();)
                instanceDetailDesc = ((UddiObject)enum.nextElement()).getValue();

            OverviewDoc ovDoc = new OverviewDoc();
            ovDoc = null;
            if(insDetails.getElement("overviewDoc") != null)
                ovDoc = insDetails.getOverViewDoc();
            System.out.println(ovDoc);
            if(ovDoc != null)
            {
                for(Enumeration enum1 = ovDoc.getDescription(); enum1.hasMoreElements(); System.out.println(overViewDesc))
                    overViewDesc = ((UddiObject)enum1.nextElement()).getValue();

                overViewUrl = ovDoc.getUrl();
            }
            inParms = insDetails.getInstanceParms().getValue();
        }
        String query = "INSERT into InstanceDetails values('" + bindingKey + "','" + tmodelKey + "','" + tModelInstdesc + "','" + instanceDetailDesc + "','" + overViewDesc + "','" + overViewUrl + "','" + inParms + "','" + 0 + "')";
        System.out.println(query);
        stmt1.executeUpdate(query);
        stmt1.close();
    }
    
	private UddiObject saveBindToOpBusinessEntity(BindingTemplate bindingTemplate)
		throws SQLException, UDDIXmlException, ClassNotFoundException{
		BindingTemplate bindingT=bindingTemplate;
		
//TODO:设置Operational businessEntity中一个固定的serviceKey.
		ServiceKey serviceKey=new ServiceKey();

		bindingT.setServiceKey(serviceKey);
		
		String description = "";
		for(Enumeration enum = bindingT.getDescription(); enum.hasMoreElements();)
			description = ((UddiObject)enum.nextElement()).getValue();
		
		//找到这一个验证服务的服务绑定所要验证的分类tModel的tModelKey
		String tModelKeyforValid_Service="";
		//描述调用验证服务的服务描述tModel,服务描述一般是wsdl的文档
		String tModelKeyforServiceSpec="";
		TModelInstanceDetails tmiDetails = new TModelInstanceDetails();
		tmiDetails = null;
		if(bindingT.getElement("tModelInstanceDetails") != null)
			tmiDetails = bindingT.getTModelInstanceDetails();
		for(Enumeration infoEnum = tmiDetails.getTModelInstanceInfo(); infoEnum.hasMoreElements();)
		{
			TModelInstanceInfo tmiInfo = (TModelInstanceInfo)infoEnum.nextElement();

			String tModelKey=tmiInfo.getTModelKey().getValue();
			//由这个tModelKey检查这个tModelKey是否存在,然后再检查它是否checked和unvalidate
			if(tModelKey!=""){
				if(validTModelKey(tModelKey)){
					tModelKeyforValid_Service=tModelKey;
					break;
				//验证服务的wsdl描述文档
				}else if(!tModelKey.equalsIgnoreCase("uuid:1E3E9CBC-F8CE-41AB-8F99-88326BAD324A")){
					if(isServiceSpecTModel(tModelKey)){
						tModelKeyforServiceSpec=tModelKey;
					}
				}
			}
		}
		if(tModelKeyforValid_Service==""){
//TODO:需要报错信息,说明这个发布的服务绑定消息不正确
		}
		//检查在注册中心上的Operational businessEntity中对于这个tModelKey对应的分类的验证服务的服务绑定是否已经存在
		//如果已经存在,则更新这个服务绑定,否则是新发布一个服务绑定
		Statement stmt = con.createStatement();
		boolean isPresent = false;
		String query = "";
		String bindingKey = "";
		query = "SELECT * from Valid_Services where tModelKeyforValid_Service = '" + tModelKeyforValid_Service + "'";
		ResultSet rs = stmt.executeQuery(query);
		if(!rs.next()){
			bindingKey = JavaUUIDGenerator.uuidgen();
			BindingKey bindKey = new BindingKey();
			bindKey.setValue(bindingKey);
			bindingT.setBindingKey( bindKey);
		}else{
			DispositionReport dr1 = new DispositionReport();
			String sk = rs.getString("servicekey");
			Statement stmt11 = con.createStatement();
			String query1 = "select * from businessservice where servicekey='" + sk + "'";
			ResultSet rs11 = stmt11.executeQuery(query1);
			String bk = rs11.getString("businesskey");
			stmt11.close();
			Statement stmt22 = con.createStatement();
			String query2 = "select * from businessdetails where businesskey='" + bk + "'";
			ResultSet rs22 = stmt22.executeQuery(query2);
			String userid_1 = rs22.getString("userid");
			stmt22.close();
			rs22.close();
			Statement stmt33 = con.createStatement();
			String query3 = "select * from authentikokens where keys='" + getuserkey() + "'";
			ResultSet rs33 = stmt33.executeQuery(query3);
			String userid_2 = rs33.getString("useid");
			stmt33.close();
			rs33.close();
			if(!userid_1.equals(userid_2))
			{
				Result result = Result.getResult(10120, "Auth token is not valid");
				dr1.setResult(result);
				return dr1;
			}
			isPresent = true;
		}

		AccessPoint aPoint = bindingT.getAccessPoint();
		String accessPoint = aPoint.getUrl();
		String urlType = aPoint.getUrlType();
		String hostRedirector = "";
		if(bindingT.getHostingRedirector() == null)
			hostRedirector = "";
		else
			hostRedirector = bindingT.getHostingRedirector().getBindingKey().getValue();
		if(isPresent)
			query = "UPDATE Valid_Services set description = '" + description + "', accesspoint = '" + accessPoint + "', servicetype = '" + urlType + "', hostingRedirector = '" + hostRedirector + "',tModelKeyforWSDL=" + tModelKeyforServiceSpec + "'";
		else
			query = "INSERT into Valid_Services values('" + bindingKey + "','" + description + "','"  + accessPoint + "','" + hostRedirector + "','" + urlType + "','" + tModelKeyforValid_Service +"','" + tModelKeyforServiceSpec + "',"+ "'uuid:1E3E9CBC-F8CE-41AB-8F99-88326BAD324A'"+")";
		stmt.executeUpdate(query);

		stmt.close();
		return bindingT;	
	}
	
	private boolean validTModelKey(String tModelKey)throws SQLException{
		Statement stmt = con.createStatement();
		boolean isCategory=false;
		boolean isChecked=false;
		boolean isUnvalidate=false;
		ResultSet rs=stmt.executeQuery("select * from TModelDetails where tmodelkey='"+tModelKey+"'");
		if(!rs.next()){
			rs.close();
			stmt.close();
		}else{
			//在categoryBag找到这个分类tModel的种类包信息,判断是否category,checked,unvalidate
			stmt = con.createStatement();
			rs=stmt.executeQuery("select * from categoryBag where keys="+tModelKey+"'");
			while(rs.next()){
				String tmodelkey=rs.getString("tmodelkey");
				String Keyvalue="";
				if(tmodelkey!="" && tmodelkey.equalsIgnoreCase("uuid:c1acf26d-9672-4404-9d70-39b756e62ab4")){
					Keyvalue=rs.getString("Keyvalue");
					if(Keyvalue!=""){
						if(Keyvalue.equalsIgnoreCase("categorization")){
							isCategory=true;
						}else if(Keyvalue.equalsIgnoreCase("checked")){
							isChecked=true;
						}else if(Keyvalue.equalsIgnoreCase("unvalidate")){
							isUnvalidate=true;
						}
					}
				}
			}
			rs.close();
			stmt.close();
		}
		return isCategory && isChecked && isUnvalidate;
	}
	
	private boolean isServiceSpecTModel(String tModelKey)throws SQLException{
		boolean isValid=false;
		Statement stmt = con.createStatement();
		ResultSet rs=stmt.executeQuery("select * from TModelDetails where tmodelkey='"+tModelKey+"'");
		if(!rs.next()){
			rs.close();
			stmt.close();
		}else{
			//在categoryBag找到这个分类tModel的种类包信息,判断是否category,checked,unvalidate
			stmt = con.createStatement();
			rs=stmt.executeQuery("select * from categoryBag where keys="+tModelKey+"'");
			while(rs.next()){
				String tmodelkey=rs.getString("tmodelkey");
				String Keyvalue="";
				if(tmodelkey!="" && tmodelkey.equalsIgnoreCase("uuid:c1acf26d-9672-4404-9d70-39b756e62ab4")){
					Keyvalue=rs.getString("Keyvalue");
					if(Keyvalue!=""){
						if(Keyvalue.equalsIgnoreCase("wsdlSpec")|| Keyvalue.equalsIgnoreCase("specification")||
						Keyvalue.equalsIgnoreCase("xmlSpec")||Keyvalue.equalsIgnoreCase(" protocol")||
						Keyvalue.equalsIgnoreCase("transport")){
							isValid=true;
							break;
						}
					}
				}
				rs.close();
				stmt.close();
			}
		}
		return isValid;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -