📄 savebinding.java
字号:
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 + -