3

私は FIX に比較的慣れていないため、接続を試みるのはこれが初めてです。QuickFixJ ライブラリを使用して、提供された UAT 環境に接続しようとしています。具体的には、quickfixj-all-1.6.0.jar を使用しています

ここからサンプル コードを実装しましたsocketAcceptor.start()

完全なコード サンプルは次のとおりです。

SocketAcceptor socketAcceptor = null;
   try {
       SessionSettings executorSettings = new SessionSettings(
               "quickFixTester/acceptorSettings.txt");
       Application application = new TestTradeAppExecutor();
       FileStoreFactory fileStoreFactory = new FileStoreFactory(
               executorSettings);
       MessageFactory messageFactory = new DefaultMessageFactory();
       FileLogFactory fileLogFactory = new FileLogFactory(executorSettings);
       socketAcceptor = new SocketAcceptor(application, fileStoreFactory,
               executorSettings, fileLogFactory, messageFactory);
       socketAcceptor.start();
   } catch (ConfigError e) {
       e.printStackTrace();
   }

私が得ているエラーは

2312 [main] INFO quickfix.SessionSchedule - [FIX.4.4:[SenderCompID]->[TargetCompID]] weekly, SUN 00:00:00-UTC - FRI 00:00:00-UTC
     Executor Session Created with SessionID = FIX.4.4:[SenderCompID]->[TargetCompID]
2327 [main] INFO quickfix.SocketAcceptor - SessionTimer started
2371 [main] INFO quickfix.mina.NetworkingOptions - Socket option: SocketTcpNoDelay=true
2371 [main] INFO quickfix.mina.NetworkingOptions - Socket option: SocketSynchronousWrites=false
2371 [main] INFO quickfix.mina.NetworkingOptions - Socket option: SocketSynchronousWriteTimeout=30000
Exception in thread "main" java.lang.NoSuchMethodError: quickfix.mina.message.FIXProtocolCodecFactory.addMessageDecoder(Ljava/lang/Class;)V
      at quickfix.mina.message.FIXProtocolCodecFactory.<init>(FIXProtocolCodecFactory.java:31)
      at quickfix.mina.acceptor.AbstractSocketAcceptor.startAcceptingConnections(AbstractSocketAcceptor.java:109)
      at quickfix.SocketAcceptor.initialize(SocketAcceptor.java:86)
      at quickfix.SocketAcceptor.start(SocketAcceptor.java:80)
      at quickFixTester.TestTradeAppExecutorApp.main(TestTradeAppExecutorApp.java:38)

「SenderCompID->TargetCompID」変数が提供されていますが、ここのサンプルからは削除されています。

quickfix.mina.message.FIXProtocolCodecFactory.addMessageDecoder(Ljava/lang/Class;)V socketAcceptor.start メソッド内でスローされます。FIX UAT環境を指すように構成例を変更しただけなので、これの原因はわかりません

jar に含まれるメソッドがこのエラーをスローする理由がわかりません。この段階でメッセージを送信しようとしているのではなく、接続を開こうとしているだけです。この例は、他の人にとってはうまくいったようです。

ここにあるFIXクライアントの例を使用してもまったく同じエラーが発生します

4

2 に答える 2

0

私自身の Eclipse プロジェクトに実装しようとする代わりに、 2 番目の例をそのままインポートするとうまくいきました。この問題は、quickfix-all jar からの不適切なインポートを使用して、起動時に間違ったメソッドが呼び出されたために発生したようです。

于 2015-06-08T09:12:38.237 に答える
0

mina-core jarも参照しましたか?libディレクトリに...

mina SSLフィルターはどうですか?私のコメントによると、quickfix.mina の NoSuchMethodError は、ライブラリが参照されていないことを意味します。

于 2015-06-05T11:37:02.527 に答える