2013-06-25 24 views
2

,這是例如與API SDK彭博無法啓動會話

package blpapi; 

import com.bloomberglp.blpapi.CorrelationID; 
import com.bloomberglp.blpapi.Element; 
import com.bloomberglp.blpapi.Event; 
import com.bloomberglp.blpapi.Message; 
import com.bloomberglp.blpapi.MessageIterator; 
import com.bloomberglp.blpapi.Name; 
import com.bloomberglp.blpapi.Request; 
import com.bloomberglp.blpapi.Service; 
import com.bloomberglp.blpapi.Session; 
import com.bloomberglp.blpapi.SessionOptions; 

public class SimpleRefDataExample { 
    private static final Name SECURITY_DATA = new Name("securityData"); 
    private static final Name SECURITY = new Name("security"); 
    private static final Name FIELD_DATA = new Name("fieldData"); 
    private static final Name FIELD_EXCEPTIONS = new Name("fieldExceptions"); 
    private static final Name FIELD_ID = new Name("fieldId"); 
    private static final Name ERROR_INFO = new Name("errorInfo"); 
    private CorrelationID d_cid; 

    public static void main(String[] args) throws Exception { 
     SimpleRefDataExample example = new SimpleRefDataExample(); 
     example.run(args); 
     System.out.println("Press ENTER to quit"); 
     System.in.read(); 
    } 

    private void run(String[] args) throws Exception { 
     String serverHost = "localhost"; 
     int serverPort = 35230; 

     SessionOptions sessionOptions = new SessionOptions(); 
     sessionOptions.setServerHost(serverHost); 
     sessionOptions.setServerPort(serverPort); 

     Session session = new Session(sessionOptions); 

     System.out.println("Connecting to " + serverHost + ":" + serverPort); 
     if (!session.start()) { 
      System.err.println("Failed to start session."); 
      return; 
     } 
     System.out.println("Connected successfully."); 

     if (!session.openService("//blp/refdata")) { 
      System.err.println("Failed to open //blp/refdata"); 
      return; 
     } 

     Service refDataService = session.getService("//blp/refdata"); 
     Request request = refDataService.createRequest("ReferenceDataRequest"); 

     // append securities to request 
     Element securities = request.getElement("securities"); 
     securities.appendValue("IBM US Equity"); 
     securities.appendValue("/cusip/[email protected]"); 

     // append fields to request 
     Element fields = request.getElement("fields"); 
     fields.appendValue("PX_LAST"); 
     fields.appendValue("DS002"); 

     System.out.println("Sending Request: " + request); 
     d_cid = session.sendRequest(request, null); 

     while (true) { 
      Event event = session.nextEvent(); 
      MessageIterator msgIter = event.messageIterator(); 
      while (msgIter.hasNext()) { 
       Message msg = msgIter.next(); 
       if (msg.correlationID() == d_cid) { 
        processMessage(msg); 
       } 
      } 
      if (event.eventType() == Event.EventType.RESPONSE) { 
       break; 
      } 
     } 
    } 

    private void processMessage(Message msg) throws Exception { 
     Element securityDataArray = msg.getElement(SECURITY_DATA); 
     int numSecurities = securityDataArray.numValues(); 
     for (int i = 0; i < numSecurities; ++i) { 
      Element securityData = securityDataArray.getValueAsElement(i); 
      System.out.println(securityData.getElementAsString(SECURITY)); 
      Element fieldData = securityData.getElement(FIELD_DATA); 
      for (int j = 0; j < fieldData.numElements(); ++j) { 
       Element field = fieldData.getElement(j); 
       if (field.isNull()) { 
        System.out.println(field.name() + " is NULL."); 
       } else { 
        System.out.println(field); 
       } 
      } 
      Element fieldExceptionArray = 
       securityData.getElement(FIELD_EXCEPTIONS); 
      for (int k = 0; k < fieldExceptionArray.numValues(); ++k) { 
       Element fieldException = 
        fieldExceptionArray.getValueAsElement(k); 
       System.out.println(
         fieldException.getElement(ERROR_INFO).getElementAsString("category") 
         + ": " + fieldException.getElementAsString(FIELD_ID)); 
      } 
      System.out.println("\n"); 
     } 
    } 
} 

收到此錯誤給出:

run: 
Connecting to localhost:35230 
Failed to start session. 
Press ENTER to quit 

本地主機上運行我的系統通過xampp,我嘗試默認端口:8080,沒有端口也沒有工作,然後我開始玻璃魚服務器也在工作 http://localhost:35230但仍然得到這個錯誤什麼更多的配置是必需的?

+0

什麼產品BB的您使用的是臺式機或ServerAPI? –

回答

2

本地bbcomm進程的默認端口一般爲8194.您需要運行bbcomm.exe進程並通過彭博終端連接到彭博。

+0

嗨我已經運行bbcomm.exe文件,然後也出現同樣的問題。 –

1

如果您使用的是桌面API,彭博API不會讓您連接到本地主機以外的任何其他機器。這是設計。

如上所述,對於DesktopAPI的默認端口是解釋檢查8194.在BBCOMM.CFG文件,看看是否您正在使用端口8194.

而且直接在命令提示符下運行BBCOMM文件,看看是否出現錯誤。

如果您正在使用ServerAPI讓我知道...