我正在用QuickFIX/J (版本1.6.0)编写一个Java程序。
只要我只登录到文件,一切都很好..现在,我想添加JDBC日志:
SessionSettings sessionSettings = null;
try {
sessionSettings = new SessionSettings(pathToFixConfigFile);
logger.info("Everything okay");
} catch (ConfigError e) {
logger.error("Error: ", e);
throw (e);
}
MessageStoreFactory messageStoreFactory = new JdbcStoreFactory(
sessionSettings);
LogFactory[] factorioes = { new FileLogFactory(sessionSettings),
new JdbcLogFactory(sessionSettings) };
LogFactory logFactory = new CompositeLogFactory(factorioes);
MessageFactory messageFactory = new DefaultMessageFactory();
try {
socketInitiator = new SocketInitiator(xitaroApplication,
messageStoreFactory, sessionSettings, logFactory,
messageFactory);
} catch (ConfigError e) {
logger.error("Error: ", e);
throw (e);
}我得到了以下错误:
quickfix.ConfigError: error during session initialization
at quickfix.mina.initiator.AbstractSocketInitiator.createSessions(AbstractSocketInitiator.java:168)
at quickfix.mina.initiator.AbstractSocketInitiator.createSessionInitiators(AbstractSocketInitiator.java:83)
at quickfix.SocketInitiator.initialize(SocketInitiator.java:114)
at quickfix.SocketInitiator.start(SocketInitiator.java:89)
at de.my.program.main(MyProgram.java:191)
Caused by: java.lang.NoClassDefFoundError: org/logicalcobwebs/cglib/proxy/Callback
at org.logicalcobwebs.proxool.ConnectionPool.getConnection(ConnectionPool.java:261)
at org.logicalcobwebs.proxool.ProxoolDataSource.getConnection(ProxoolDataSource.java:97)
at quickfix.JdbcUtil.determineSessionIdSupport(JdbcUtil.java:127)
at quickfix.JdbcLog.<init>(JdbcLog.java:88)
at quickfix.JdbcLogFactory.create(JdbcLogFactory.java:38)
at quickfix.CompositeLogFactory.create(CompositeLogFactory.java:55)
at quickfix.Session.<init>(Session.java:460)
at quickfix.DefaultSessionFactory.create(DefaultSessionFactory.java:183)
at quickfix.mina.SessionConnector.createSession(SessionConnector.java:141)
at quickfix.mina.initiator.AbstractSocketInitiator.createSessions(AbstractSocketInitiator.java:162)
... 4 more
Caused by: java.lang.ClassNotFoundException: org.logicalcobwebs.cglib.proxy.Callback
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 14 more我已经将QuickFIX中的所有库添加到类路径中,但错误不会消失:/
我知道,我的问题有点笨拙..但是我越来越绝望,希望通过这种方式得到帮助..
谢谢你们!
发布于 2016-09-01 00:32:57
此问题是quickfix二进制发行版缺少proxool-cglib.jar文件。当您在会话settins文件中指定JDBC驱动程序时,quickfix会自动尝试使用proxool创建连接池。它依赖于proxool-cglib.jar jar中的一个类。要进行修复,只需下载proxool-cglib.jar文件并将其添加到类路径中即可。你可以在这里下载:http://proxool.sourceforge.net/download.html
发布于 2015-04-23 01:23:48
显然,您仍然缺少一些依赖项。您的问题听起来很像this one,其中还需要包含Apache Logging Commons jar文件。
发布于 2015-04-24 22:32:51
如果你使用Intellij IDE,这将会很容易。如果你需要,我可以给你一个工作项目。:)
我想你的POM file.check你的依赖一定有问题。我认为一些lib仍然缺失。
https://stackoverflow.com/questions/29801358
复制相似问题