2013-06-25 2 views
2

를 시작할 수 없습니다이이 오류를 얻는 API의 SDK블룸버그 내가 시장 데이터를 가져 블룸버그 API를 사용하고 세션

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의 어떤 제품을 데스크톱, 서버 API를 사용하고 있습니까? –

답변

2

로컬 bbcomm 프로세스의 기본 포트는 일반적으로 8194입니다. Bloomberg 터미널을 통해 Bloomberg에 연결하고 실행하려면 bbcomm.exe 프로세스가 필요합니다.

+0

안녕하세요, bbcomm.exe 파일을 실행 한 다음 동일한 문제도 발생합니다. –

1

데스크톱 API를 사용하는 경우 Bloomberg API는 로컬 호스트가 아닌 다른 컴퓨터에 연결할 수 있도록 "하지 않음"을 수행합니다. 이는 의도적으로 설계된 동작입니다.

바와 같이 DesktopAPI의 기본 포트 위에 설명 된 것은 8194. 확인 BBCOMM.CFG의 파일이 당신이 오류를 얻을 수 있는지 확인하기 위해 또한 명령 프롬프트에서 직접 BBCOMM 파일을 실행

포트 8194.를 사용하고 있는지 확인하는 것입니다.

ServerAPI를 사용하는 경우 ...

관련 문제