我已经设置了WSO2 API Manager(版本1.9.1),并按照此处提供的说明将其配置为BAM(版本2.5.0): https://docs.wso2.com/display/AM191/Publishing+API+Runtime+Statistics
我正在使用MySQL服务器,可以看到创建的api_ *表,并在我进行API调用时进行更新。但是,当我查看统计信息时,我在控制台上看到一个异常,而UI告诉我需要配置BAM以查看仪表板。
以下是wso2carbon.log中的ERROR片段
TID: [0] [AM] [2015-11-19 11:27:39,110] ERROR {org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject} - Error while invoking APIUsageStatisticsClient for ProviderAPIUsage {org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject}
org.wso2.carbon.apimgt.usage.client.exception.APIMgtUsageQueryServiceClientException: Error occurred while querying from JDBC databasecom.mysql.jdbc.driver
at org.wso2.carbon.apimgt.usage.client.APIUsageStatisticsClient.queryFirstAccess(APIUsageStatisticsClient.java:2762)
at org.wso2.carbon.apimgt.usage.client.APIUsageStatisticsClient.getFirstAccessTime(APIUsageStatisticsClient.java:2706)
... 65 more
Caused by: java.sql.SQLException: com.mysql.jdbc.driver
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:128)
at org.wso2.carbon.apimgt.usage.client.APIUsageStatisticsClient.queryFirstAccess(APIUsageStatisticsClient.java:2730)
... 65 more
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.driver
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:475)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:246)
... 71 more
TID: [0] [AM] [2015-11-19 11:27:39,138] ERROR {JAGGERY.modules.statistics.usage:jag} - java.lang.NullPointerException: null {JAGGERY.modules.statistics.usage:jag}
我看了其他类似的帖子,但似乎没有什么是完全相关的。最接近的类似帖子有一个特定于SQL Server的问题,但我使用的是MySQL。
其他信息:我在同一台计算机上运行BAM和API Manager。我按照指南中的建议将BAM的偏移量设置为3。
答案 0 :(得分:0)
显然,您尚未将SQL连接器添加到/ repository / components / lib和/ repository / components / lib文件夹。这在https://docs.wso2.com/display/AM191/Publishing+API+Runtime+Statistics的第5步中提到。
确保SQL连接器正确放置在这些位置
答案 1 :(得分:0)
如果您在Windows环境中尝试上述方案,请使用" mysql-connector-java-5.1.30"连接器并将其放在/ repository / components / lib和/ repository / components / lib文件夹中。这可能是由于连接器版本问题。